голанг vs оберон

Только технические вопросы по ЯОС и MINOS. Терминология и прочее - в других форумах.
Ответить
БудДен
Сообщения: 2865
Зарегистрирован: 07.10.18 14:01

голанг vs оберон

Сообщение БудДен » 08.02.19 22:54

#оберон #голенг

Смотрю я на этот голенг и он напоминает оберон просто до боли.

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

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

А также я не понимаю пока, насколько вывод типов сделает программу невнятной по смыслу.

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

Но даже система с пакетами и репозиториями похожа на то, как устроена работа с файлами в blackboxcomponentbuilder.

Надо будет потом потроллить оберонщиков на эту тему. Например, можно вдохнуть новую жизнь в A2OS, канторизовав голенг. Я думаю, что это возможно.

Здесь я пишу затем, чтобы не забыть. Буду дополнять по ходу изучения голанга.

Ещё раз:
  • жёсткая связь между именем модуля, расположением исходников и местом файла на диске - похоже на ББЦБ, но в голенге лучше
  • Отсутствие явного преобразования типов - как в лучших оберонах
  • сериализация примитивных типов данных - лучше, чем в оберонах (оберонщики вряд ли признают нужность, они любят колоться и жрать кактус)
  • отсутствие исключений - одинаково
  • defer - важная вещь, в оберонах её нет
  • культ простоты просматривается
  • scope переменные - я их сторонник, в голенге есть, но с культом простоты плохо сочетается
  • контроль переполнения при умножении отсутствует - плохо, но в оберонах вроде это тоже не всегда
  • синтаксис - почти то, что надо. Я пытался придумать подобный, до сих пор не преуспел. Изобилие точек с запятой - это бред, но и в голенге мне не нравится
  • многострочные строки - без них жизни нет, и в оберонах их нет
  • срезы - есть мутные моменты, например, при apply срезы внезапно и неконтролируемо могут начать указывать на разные массивы. Но в целом концепция полезная, она напоминает изрядно доработанные массивы неопределённой длины из оберона. А точнее - displaced arrays из лиспа.
  • обероновские вложенные комментарии зря из голенга выкинули, это просто конфета
  • необязательность разыменовывания указателя на структуру - я вот прямо предчувствовал, что голангщики сопрут это из оберона - и оно так и оказалось.
  • оформление сигнатуры метода взято прямо из оберона
  • я хотел сделать для оберона ANYTHING в дополнение к ANYREC, в голанге он уже есть: interface{}
  • switch с типами - это ровно WITH
  • вроде отсутствуют перечисления (выбор сомнительный, но по-обероновски)
  • есть new integer - как в Аде - лучше, чем в Обероне
Последний раз редактировалось БудДен 09.02.19 13:45, всего редактировалось 4 раза.

atz
Сообщения: 139
Зарегистрирован: 21.12.18 22:45

Re: голанг vs оберон

Сообщение atz » 08.02.19 23:17

Дык голанг - это гугловый оберон же. Там даже картинка в книжке была (пруфов не будет).

atz
Сообщения: 139
Зарегистрирован: 21.12.18 22:45

Re: голанг vs оберон

Сообщение atz » 08.02.19 23:25

Насчёт канотризации, надеюсь у Влада всё хорошо (ну тоесть лучше чем совсем плохо). Давно его не слышно.

БудДен
Сообщения: 2865
Зарегистрирован: 07.10.18 14:01

Re: голанг vs оберон

Сообщение БудДен » 08.02.19 23:47

Всё же это скорее недооберон, чем переоберон. Поскольку динамика выкинута.

Ответить