Оберон действительно «лучший Паскаль»? [закрыто]

12

Читая Никлауса Вирта , можно заметить, что, несмотря на некоторую популярность Паскаля, он не рад, что Оберон (как «отполированный» преемник Паскаля и Модулы) не получил большой популярности. Я никогда ничего не делал в Обероне, но читая страницу « Оберон для разработчиков на Паскале», мне действительно не понравились многие изменения, например, для разработчика на Delphi / pascal.

  • заставляя зарезервированные слова всегда быть заглавными
  • делая язык чувствительным к регистру
  • избавление от типов перечисления

Что вы думаете об Обероне, действительно ли это «лучший Паскаль» с вашей точки зрения?

Maksee
источник
3
Оберон кажется отдаленным отголоском эры Ада / Паскаль в программировании. Он может быть немного лучше оригинального языка Паскаля Вирта, но, очевидно, он уступает Турбо Паскалю / Дельфи.
Моджуба
2
@mojuba, это похоже на ответ мне ...
glenatron
Разве это уже не было закрыто? Что случилось с историей редактирования?
Роберт Харви
У меня было краткое увлечение Обероном в студенческие годы. Я хотел бы знать больше об этом, чтобы иметь мнение.
Барри Браун
1
Требование зарезервированных слов в верхнем регистре было бы для меня нарушителем. Я считаю, что строчные буквы гораздо легче читать.
GrandmasterB

Ответы:

8

Да, я бы назвал Оберона лучшим Паскалем. С Обероном профессор Вирт получил ядро ​​объектно-ориентированного программирования с расширением типов и переменными процедур. Я нахожу это элегантным, что Оберон - меньший язык, чем Паскаль с гораздо большей силой.

Оберон 2 продвинул язык дальше, связав методы с записями.

Мне не нравятся заглавные слова в верхнем регистре. Я нахожу синтаксис улучшением с устранением многих начинается и заканчивается.

Оберон был использован для написания очень интересной операционной системы, описанной в Project Oberon: Проектирование операционной системы и компилятора .

Блейк
источник
Согласитесь, Оберон лучше. Проблема с Обероном в том, что он пришел слишком поздно. Многие другие улучшили Fortran, Basic, Pascal, C, поэтому у Оберона есть серьезные конкуренты. Тогда язык - это только часть решения. «Лучший» язык имеет хорошие библиотеки или инфраструктуру. Javascript великолепен из-за привязки к веб-приложениям. Тогда реагируйте еще сильнее, опираясь на JS. Кого волнует простота языка? Нам нужны простые объекты, такие как реагирующие компоненты, для создания веб-приложений.
Роланд
6

Это лучше и хуже по-разному:

Приятно иметь сборку мусора и возможности для модульного и объектно-ориентированного программирования. Это относительно маленький язык; легко разбирать и внедрять.

Недостаток перечислений - это боль (действительно, в расширенном диалекте оберона, который мы используем, мы добавили их обратно).

По сравнению с более современными языками, его минимализм немного грубоват, и обрабатывать строки как массивы символов на любом языке ужасно.

Конечно, Паскаль тоже немного развился, например, см. Компонентный Паскаль.

grrussel
источник
Как вы делаете расширение типов для перечисленных типов в вашем расширенном диалекте Оберона? Причина, по которой я спрашиваю: профессор Вирт сказал, что не может найти хороший способ сделать это, и именно поэтому он удалил перечисляемые типы из языка.
Джон Р. Штром
2
На самом деле, я считаю, что, несмотря на свое название, Компонент Паскаль является преемником Оберона, а не Паскаля (за исключением косвенного, конечно). Это выглядит как Algol-X (никогда не реализовано) -> Algol-W -> Pascal -> Modula (никогда не реализовано) -> Modula-2 -> Oberon -> (некоторые ревизии Oberon) -> Component Pascal.
Йорг Миттаг
2
Вирт был пуристом; он решил, что было бы лучше потерять тип безопасности enums для расширяемости и ортогональности. Мы пишем много кода, который выигрывает от проверки типов перечислений, где коллизии случайных значений в противном случае привели бы к незначительным ошибкам. Короче говоря, поскольку мы контролируем как всю кодовую базу Oberon, так и компилятор, мы обходимся без расширения типов в перечислениях, чтобы предотвратить класс чрезвычайно раздражающих программных ошибок.
grrussel