Есть ли плюсы у Оберона?
От: AVC1  
Дата: 02.11.04 12:32
Оценка: 37 (3) -1
Когда-то в мае я "заглянул" на RSDN и, возможно, частично ответственен за то, что разгорелась такая неожиданно долгая полемика вокруг Оберона.
Причина тому была простая: я взял описание Оберона, взял критическую статью Кернигана "Why Pascal is not my favorite language", затем сопоставил их. Выяснил, что критика Кернигана к Оберону уже неприменима.
Потом установил BlackBox и переписал на Обероне решение системы линейных уравнений методом Гаусса. Выяснилось, что, благодаря открытым массивам, решение для матриц разной размерности формулируется очень легко и без всяких "обходных маневров", в отличие от Си (где пришлось бы пользоваться макросами) и от Си++ (где пришлось бы вводить классы).
Об этом я и написал тогда.
Потом была критика, из которой я узнал, что (из современных языков с Си-подобным синтаксисом) С# (и, похоже, только он один) позволяет сформулировать этот алгоритм столь же элегантно. Я поблагодарил за ценную информацию и "отчалил" по своим делам.
Но вот сейчас заглянул на сайт и с удивлением вижу, что полемика продолжается (и даже с
участием тех же лиц).
Причины этого мне не очень понятны, но хочу предложить одну гипотезу: борьба идет между
сторонниками "многоязычных" систем и систем, основанных на "моноязыке".
Например, система UNIX — "многоязычная" (тут и Си, и Си++, и Shell, и AWK, и Perl, и прочая, прочая, прочая...). А вот виртовские системы Lilith и Ceres основаны на одном языке (Modula-2 и Oberon соответственно).
Что касается синтаксиса отдельных языков, то, например, шаблоны в Си++ и C# — тоже ведь
"языки в языке".
То, что многоязычие может быть принципиальной позицией можно вычитать из книги Кернигана и Пайка "Практика программирования", там достаточно говориться об использовании
специализированных нотаций.
Так как польза многоязычия видна каждому (удобство), то возникает вопрос: а есть ли польза в использовании одного языка?
Выскажу предположение, что есть, но проявляется она в основном на системном уровне.
Oberon позволяет решать именно системные задачи самыми простыми средствами.
Чтобы пользоваться выгодами компонентного программирования, здесь не нужно изучать талмуды с названиями вроде "Сущность COM" (!?). Достаточно просто импортировать модуль.
Для защиты адресного пространства процесса не нужно опираться на многомощные и чрезмерно
сложные операционные системы, ведь контроль индексов для массивов и "сборка мусора" для
указателей решают эту проблему.
Так что и виртовский подход имеет свои преимущества; особенно для создания надежных
автономных систем.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.