Как стать автором
Обновить

Комментарии 25

Оберон лучше всех бы подошёл в качестве первого языка программирования. Самый простой язык из всех. Все основные идеи на нем можно объяснить прекрасно и доступно. Но почему-то все хотят в качестве первого языка иметь промышленный язык, который изначально совсем не предназначен для обучения.

Чисто ради интереса спрошу, чем оберон лучше того же паскаля, питона или бейсика? Питон как по мне очень простой и вполне подходит для обучения ещё и промышленным является, паскаль я особо не трогал, но он, вроде как, предшественник оберона. Бейсик очень простой, у меня в своё время сложностей, связанных конкретно с использованием бейсика в качестве обучающего языка не было.

Оберон я как-то хотел потрогать, но так и не понял, какой компилятор использовать и забил

У Оберона синтаксис, пожалуй, ещё проще паскалевского, хотя все достоинства Паскаля он сохранил. На классическом Бейсике нельзя изучить изрядную часть полезностей -- в частности, там нет процедур/функций, только подпрограммы с передачей параметров через глобальные переменные (так как локальных переменных или параметров тоже нет).

На классическом Бейсике

Я имел дело только с Visual Basic, там таких проблем не было. Насчёт простоты оберона могу только поверить на слово, так как дел с ним не имел

Ну, у ВизуалБейсика от классического только название; ничего общего они не имеют.

Ну возьмите более поздний BASIC, например QBasic из какой-то поставки MS-DOS или более современный какой-нибудь - полноценные процедуры-функции там есть. Оберон же, если использовать - тоже явно не версию из 80х)

На классическом Бейсике нельзя изучить изрядную часть полезностей

Вы всерьёз думаете, что под словом Basic сегодня все понимают то, что было 60 лет назад? Это всё равно, что говорить Fortran и представлять именно тот, которым он родился. Посмотрите самый доступный на всех платформах

https://www.freebasic.net/wiki/DocToc

p.s. и особенно вот по этой ссылке весело про полезности

https://www.freebasic.net/wiki/CatPgUserDefTypes

На классическом Бейсике нельзя изучить изрядную часть полезностей -- в частности, там .

Классический Basic закончился на восьмибитных машинах во второй половине 80-х, и все те ужасы которые вы расписываете (нет процедур/функций, только подпрограммы с передачей параметров через глобальные переменные (так как локальных переменных или параметров тоже нет) уже отсутствуют. Что в TurboBasic, что в QBasic/Quick/PDS/Visual Basic for DOS.

Python выглядит простым. Но внутри очень очень непрост. Лазить в кишки этого языка школьнику...

У Оберона же есть книжка средней толщины, внутри которой учебник, полный код компилятора и операционной системы. Просто у Вирта была идея создать простой язык с минимальным синтаксисом. Он ее с успехом выполнил, правда прошло немало итераций.

Лазить в кишки этого языка школьнику...

Не помню, чтобы мне приходилось лазить. Я не питонист, но периодически пишу простые скрипты. Полагаю, что школьникам с их задачами тоже лазить не придётся. Как по мне тому же школьнику сложнее разобраться, а где мне взять компилятор оберона и какой именно?

найдите в телеге группу - там быстрее ответят. Их просто несколько разных, каждый может под себя компилятор подкрутить.

найдите в телеге группу

Уже сложнее, чем пайтон. Совершать столько усилий ради языка, который почти нигде не используется, мне лень.

Присоединюсь к соседнему комментарию: есть ли возможность использовать Оберон как промышленный язык? Если да, то какой стэк окружения вы посоветуете?

Лучше вам задать вопрос на их форуме, или в группе в Телеграме. Там есть специалисты, которые используют Оберон на БПЛА и атомных электростанциях.

Сразу оговорюсь, что я не призываю на этих языках разрабатывать (хотя это было бы неплохо), нужны очень веские причины, чтобы принять такое решение. Но знакомство с ними — важная часть профессионального роста.

Однако, после прочтения не понятно, почему стоит попробовать форт. Тут даже примеров кода на нём не было. Было интересно прочитать историческую справку, но всё равно хотелось бы примеров и подтверждения данного в начале тезиса. Сразу скажу, что немного на форте я писал, так разные простые задачки чисто для гимнастики, но не сказал бы что его прямо стоит попробовать. Гораздо больше мне в своё время сломали шаблон язык ассемблера и хаскель.

Добавил в статью ссылку на краткий вводный материал с примерами.

У Форта поучительно написать интерпретатор в качестве простейшего примера реализации языка программирования. Но использовать сам Форт в наше время, когда из коробки есть тот же Питон, странно.

В языке статьи есть запах ChatGPT и нет примеров кода на Форте. А Оберон имхо язык просто никакой, зачем его вспоминать?

Языков много не потому, что старые хуже. Просто есть разные сферы использования языков, каждая из которых имеет свои особенности и свои требования к языку. Оберон по сочетанию многих характеристик уникален.

Насколько я понимаю, Оберон - это Модула-2 с наследованием типа. А сама Модула-2 - это Паскаль с модулями/пакетами. А Паскаль - это Алгол-60 с указателями и записями. Где уникальность Оберона? Это все было в других языках.

Уникальные языки: Фортран, Алгол-58 (предшественник Алгол-60, не путать с Алгол-68), Симула-67 (классы до C++), Лисп (списки), Пролог (ленивая эвалюация), Verilog (моделирование сигналов и вентилей), Snobol (шаблоны), Форт (стековая машина с минимализмом), Occam (каналы для многопроцессорныз систем) итд

  1. Смотрите на уникальное сочетание характеристик, а не на одну. Вы же в работе при выборе смотрите на комплекс характеристик, а не одну единственную.

  2. Оберон (и его вариант Компонентный Паскаль) в отличие от Модула-2 имеют автоматическое управление памятью, что как бы существенно разделяет сферы применения этих языков.

  3. Тут задача понять не в каком первом языке появились какие-то фичи, а в котором они сейчас пригодны для использования. Уникальность - это уже давно не про одну характеристику. Какой из перечисленных языков имеет автоматическое управление памятью, компактен снаружи и внутри? Разве что Лисп с Фортом могут конкурировать с Обероном по своей простоте. В этом смысле автор правильно их хочет рассматривать группой. Но к последним двум надо немного дольше привыкать.

  4. Ветка потомков Алгола вообще очень разделилась.

Автоматическое управление памятью - вы имеете в виду garbage collection? Дык она появилась еще в 1960-е годы, это не уникальная фича.

В 50-е, это с Лиспа пошло.

Я имел опыт работы с языком Fift (это язык для TON блокчейна), который мало чем отличается от Forth. Так вот это было моим худшим опытом работы с новым языком программирования.

Во-первых, data flow через стек это просто ужасно. Мне много приходилось разбираться в чужом коде, если в обычных языках все данные кладутся в переменные - все наглядно, все можно отследить. То тут они лежат где-то в стеке, и каждая команда может изменить этот стек, поэтому приходится постоянно держать в уме что где лежит.

Во-вторых, (возможно актуально только для Fift) сложно отличить встроенные функции, функции из стандартной библиотеки и команды виртуальной машины. Непонятно, что сколько функция берет со стека, сколько кладет, приходится постоянно смотреть на ее реализацию. А их там сотни.

В общем никому не советую :)

Языки-потомки Forth, конечно, своеобразны. И работа через стек требует сноровки и насмотренности, согласен. Но в определенных условиях это оправдано, плюсы определенно есть.

Непонятно, что сколько функция берет со стека

Решается документацией, в шапке указывается сколько снимается со стека и сколько возвращается в стек. Не знаю, правда, как это сделано в TON.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации