Здравствуйте, Павел Кузнецов, Вы писали:
>> компонентное программирование есть просто естественное развитие идеи раздельной компиляции. Что именно поэтому в Обероне нет шаблонов.
ПК>Не очень понял данный фрагмент. Подразумевается, что (1) шаблоны не вписываются в компонентное программирование (aka раздельная компиляция), и поэтому их нет в Обероне, или же подразумевается, что (2) благодаря компонентному программированию как развитию идеи раздельной компиляции Оберону шаблоны не нужны, т.к. он позволяет делать те же вещи, что делаются шаблонами, другими способами?
ПК>Если второе или что-то иное, то можно здесь чуть подробнее?
Я имел в виду, что шаблоны компилируются как часть исходного кода импортирующего их модуля. Здесь нет раздельной компиляции, это соответствует варианту (1) в Вашем вопросе. Т.е. шаблоны (на мой взгляд) не вписываются в компонентное программирование.
Как мне кажется, в других языках дело обстоит также.
Что же касается варианта (2), то я не очень ясно понимаю, что же именно "такое" позволяют делать шаблоны? Автоматизировать операцию "copy-and-paste"?
Я сам одно время достаточно активно пользовался STL с целью сэкономить время разработки. Экономия времени — минимальная, код почти нечитаем, его эффективность — гораздо ниже кода, написанного самим. В итоге — скорее минус, чем плюс. То, что внедрение STL было поспешным, подтверждает и факт отсутствия в ней хэш-таблиц. (Конечно, я знаю о "самопальных" вариантах: boost и т.п., но факт
показательный.)
А сколько раз ко мне обращались за помощью молодые ребята, недавно начавшие пользоваться STL: помоги найти ошибку. И правда, вместо внятного сообщения об ошибке — какая-то "простыня" на весь экран, приводящая "новичков" (и не только!) просто в отчаяние.
Уверяю Вас, что 95% программистов на Си++
не понимают свой код, написанный с применением STL, и, следовательно, не могут быть за него ответственными.
Еще раз оговорюсь: все это — мое
личное мнение, я просто пытаюсь создать целостную картину, взвесить "за" и "против" Оберона; при этом меня может немного "заносить", так что не стесняйтесь — критикуйте.