Re[2]: Модульные системы программирования
От: varenikAA  
Дата: 09.07.20 00:26
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Просто на Обероне ничего существенного не написано, вот они и не знают какие проблемы бывают при работе в реальных условиях.

Просто на Обероне
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: Модульные системы программирования
От: Cyberax Марс  
Дата: 09.07.20 04:40
Оценка: :)
Здравствуйте, varenikAA, Вы писали:

C>>Просто на Обероне ничего существенного не написано, вот они и не знают какие проблемы бывают при работе в реальных условиях.

AA>Просто на Обероне
Вот-вот. Из этого списка только один проект имеет открытые исходники — BlackBox. И на большой проект он совсем не тянет.

Остальное всё прямо как в песне: "У нас есть ТАКИЕ приборы, но мы вам про них не расскажем".
Sapienti sat!
Re[3]: Модульные системы программирования
От: Cyberax Марс  
Дата: 09.07.20 04:59
Оценка: +1 :)
Здравствуйте, varenikAA, Вы писали:

C>>Просто на Обероне ничего существенного не написано, вот они и не знают какие проблемы бывают при работе в реальных условиях.

AA>Тут дело в качестве программирования. Если программист с первых дней надеется только на магию IDE(О! у нас же есть пошаговый отладчик,"счастливой отладки программисты на X!") да еще умножить
AA>на сложные конструкции языка в которых легко запутаться(привет siwtch по enum и switch по объекту(паттернматч), например), то мы получим то, что заслужили — сложную, полную скрытых багов систему.
Ерунда полная. Pattern matching на практике позволяет писать более надёжные системы, так как позволяет очень ясно формулировать логические условия. IDE с самого начала может быть противопоказана в начале обучения из-за того, что маскирует реальныую работу компилятора, но после этого она ничуть не вредит.

AA>В противовес IDE-шным языкам Oberon(Component Pascal) пердлагает минимум средств(но отлично продуманных — в его разработке был использован научный подход), используя которые программист дисциплинируется

AA>писать алгоритмы правильно.
Современный правильный минималистичекий язык — это Go. Он реально делает то, о чём оберонисты говорят.

AA>Скажу больше — модуль в обероне это не просто единица исходного кода, это именно модуль(сборка в дотнете), но только в режиме один файл — одна сборка. В отличие от дотнета модуль может быть выгружен, если на него нет ссылок.

И шо?

AA>Так же он может быть изменен, при условии, что используемые клиентским кодом функции не меняют свой интерфейс.

И шо?

AA>Это лишь часть того что есть в обероне, и да оберон не популярен у мэйнстрима, но существует пояс оберона в евразии, где он активно используется уже есть кросскомпиляторы и в js и в другие ахритектуры(арм и пр).

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

AA>И последнее, java, dotnet использовали концепции оберона. Go прямо пишут что были им вдохновлены.

Нет. Go был вдохновлён языком Limbo, который был наследником Alef. Они почти, но не совсем, непохожи на Oberon.

AA>Но к сожалению в java и dotnet рулят корпорации, эти языки и платформы поддерживаются деньгами.

AA>Чтобы были клиенты им постоянно нужно что-то новое предлагать.
Java не менялась существенно с 2005-го по 2015-й.

AA>Простота Оберонов проявляется в следующих характеристиках:

AA> (1) в малом объеме описаний этих языков, обычно в районе 20 стр.;
ISO стандарт на Паскаль (который по нынешним меркам — это язык Эллы-Людоедочки) — это 100 страниц. Любая детальная спецификация — многие сотни страниц.

То что помещается на 20 страниц — это описание по верхам.

AA> (2) в быстроте и компактности компилятора (компилятор первоначального Оберона имел размер около 40К; вообще компиляторы Оберонов более чем на порядок превосходят по быстродействию компиляторы С++).

Это всего-лишь означает, что компилятор не занималя оптимизацией.

AA>Н.Вирт, создавший Оберон, является авторитетом и в проектировании компиляторов, причем язык проектировался одновременно с созданием компилятора. Поэтому не удивительно, что Обероны поддаются быстрой и эффективной компиляции, а код, который порождают компиляторы Оберона, чист и эффективен даже без оптимизации.

И потому на Обероне вообще ничерта не написано, что заслуживало бы уважения.

AA>Именно благодаря этому Обероны нашли первые промышленные применения при создании встроенных управляющих систем, где ресурсы жестко ограничены (например, полетным весом беспилотного летательного аппарата), а требования на надежность очень высоки

Нету такого софта, это всё враньё оберонистов. Максимум какие-то курсовики/дипломы, которые после написания отправляются в прямиком в утиль.

И про "там всё суперсекретно" не надо. Вот примеры софта для дронов на С++: https://www.dronecode.org/#projects
Sapienti sat!
Re[2]: Модульные системы программирования
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 09.07.20 19:08
Оценка:
Здравствуйте, ole!, Вы писали:

O>И вот интересно, на самом деле. Чем Уолтер Брайт пользуется для работы с кодом?


У него полусамодельная версия MicroEmacs, ей пользуется.

А что "для мощного и выразительного языка IDE нинужен" — это ж стандартная пестня, звучащая от адептов самых разных немейнстримных языков, для которых нормальных IDE нет. Причем для тех же языков другие люди постоянно пытаются таки сделать IDE, но получаются обычно всякие недоделки, быстро протухающие. Чего стоит эпопея с IDE для хаскеля.
Re[3]: Модульные системы программирования
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 09.07.20 19:14
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>В противовес IDE-шным языкам Oberon(Component Pascal) пердлагает минимум средств(но отлично продуманных — в его разработке был использован научный подход), используя которые программист дисциплинируется писать алгоритмы правильно.

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

А вот скажи, можно ли в этом научном обероне сделать модуль, описывающий интересную структуру данных, например, какую-нибудь эффективную хэш-таблицу?
Можно ли будет применить ее из других модулей для разных типов элементов (разных размеров)? Как это будет работать по эффективности?
Re[4]: Модульные системы программирования
От: varenikAA  
Дата: 10.07.20 03:51
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Здравствуйте, varenikAA, Вы писали:


AA>>В противовес IDE-шным языкам Oberon(Component Pascal) пердлагает минимум средств(но отлично продуманных — в его разработке был использован научный подход), используя которые программист дисциплинируется писать алгоритмы правильно.

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

DM>А вот скажи, можно ли в этом научном обероне сделать модуль, описывающий интересную структуру данных, например, какую-нибудь эффективную хэш-таблицу?

DM>Можно ли будет применить ее из других модулей для разных типов элементов (разных размеров)? Как это будет работать по эффективности?

Там доступно и расширение типов и специализация функций явно как в лиспе
т.е. допустим,
есть
TYPE person;
PROCDURE hello (p : person);

hello(person);


TYPE person;
PROCDURE (p : person) hello, NEW ;

person.hello();


Причем, потом hello можно расширять для подтипов, ну т.е. полноценное ООП.
Выглядит это конечно страшно, но сама идея довольно крута — язык действительно максимально простой но мощный.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[5]: Модульные системы программирования
От: Cyberax Марс  
Дата: 10.07.20 06:45
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Там доступно и расширение типов и специализация функций явно как в лиспе

Вас спрашивают про generic'и...
Sapienti sat!
Re[6]: Модульные системы программирования
От: varenikAA  
Дата: 10.07.20 11:22
Оценка: :)
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, varenikAA, Вы писали:


AA>>Там доступно и расширение типов и специализация функций явно как в лиспе

C>Вас спрашивают про generic'и...

Оставлю это вам
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[5]: Модульные системы программирования
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 10.07.20 11:46
Оценка:
Здравствуйте, varenikAA, Вы писали:

DM>>А вот скажи, можно ли в этом научном обероне сделать модуль, описывающий интересную структуру данных, например, какую-нибудь эффективную хэш-таблицу?

DM>>Можно ли будет применить ее из других модулей для разных типов элементов (разных размеров)? Как это будет работать по эффективности?

AA>Там доступно и расширение типов и специализация функций явно как в лиспе

AA>Причем, потом hello можно расширять для подтипов, ну т.е. полноценное ООП.

Тут я не понял, как ответ с вопросом связан.
Спросим по-другому. Можно ли там в модуле описать функцию count, которая берет массив чего-то и одно значение этого чего-то, и считает, сколько раз такое значение встречается в том массиве?
И нужно, чтобы она могла работать с массивами разнообразных типов, в том числе тех, что описаны в других модулях, которые будут ее использовать.
Т.е. да, вопрос про генерики/шаблоны/полиморфизм и его реализацию.
Re[7]: Модульные системы программирования
От: Voivoid Россия  
Дата: 10.07.20 11:51
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Здравствуйте, Cyberax, Вы писали:


C>>Здравствуйте, varenikAA, Вы писали:


AA>>>Там доступно и расширение типов и специализация функций явно как в лиспе

C>>Вас спрашивают про generic'и...

AA>Оставлю это вам


Это значит что их нет, или как? Не нужны? Ради интереса попробовал нагуглить генерики в обероне, может плохо искал, но не нашел. Ну думаю ладно, посмотрю на код стандартной библиотеки, сразу станет понятно. Не нашел стандартную библиотеку ( ну, кроме каких-то формочек и работы с консолью, это уже видимо компоненты blackbox? ). В стандартной библиотеке оберона есть алгоритмы и коллекции? Где-то на них посмотреть можно?
Re[4]: Модульные системы программирования
От: varenikAA  
Дата: 11.07.20 00:55
Оценка:
Здравствуйте, Cyberax, Вы писали:

AA>>И последнее, java, dotnet использовали концепции оберона. Go прямо пишут что были им вдохновлены.

C>Нет. Go был вдохновлён языком Limbo, который был наследником Alef. Они почти, но не совсем, непохожи на Oberon.

Тут говорят обратное

go это оберон с синтаксисом c

☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[8]: Модульные системы программирования
От: varenikAA  
Дата: 11.07.20 01:07
Оценка:
Здравствуйте, Voivoid, Вы писали:

V>Здравствуйте, varenikAA, Вы писали:


AA>>Здравствуйте, Cyberax, Вы писали:


C>>>Здравствуйте, varenikAA, Вы писали:


AA>>>>Там доступно и расширение типов и специализация функций явно как в лиспе

C>>>Вас спрашивают про generic'и...

AA>>Оставлю это вам


V>Это значит что их нет, или как? Не нужны? Ради интереса попробовал нагуглить генерики в обероне, может плохо искал, но не нашел. Ну думаю ладно, посмотрю на код стандартной библиотеки, сразу станет понятно. Не нашел стандартную библиотеку ( ну, кроме каких-то формочек и работы с консолью, это уже видимо компоненты blackbox? ). В стандартной библиотеке оберона есть алгоритмы и коллекции? Где-то на них посмотреть можно?


В стандарте нет, но есть реализация градиент паскаль для жавы и дотнета. Там скорее всего есть

Компонентный Паскаль
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[9]: Модульные системы программирования
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 11.07.20 01:55
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>В стандарте нет, но есть реализация градиент паскаль для жавы и дотнета. Там скорее всего есть


Похоже, речь про Gardens Point Component Pascal, https://github.com/k-john-gough/gpcp

Это реализация https://en.wikipedia.org/wiki/Component_Pascal в котором никакими генериками не пахнет. Да и вообще ничем интересным не пахнет.
Re[10]: Модульные системы программирования
От: varenikAA  
Дата: 11.07.20 03:11
Оценка:
Здравствуйте, D. Mon, Вы писали:

DM>Здравствуйте, varenikAA, Вы писали:


AA>>В стандарте нет, но есть реализация градиент паскаль для жавы и дотнета. Там скорее всего есть


DM>Похоже, речь про Gardens Point Component Pascal, https://github.com/k-john-gough/gpcp


DM>Это реализация https://en.wikipedia.org/wiki/Component_Pascal в котором никакими генериками не пахнет.

Да и вообще ничем интересным не пахнет.

Похоже, именно в этом и кроется проблема, программирование не должно быть интересным, оно должно быть простым и надежным.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Модульные системы программирования
От: vsb Казахстан  
Дата: 11.07.20 09:06
Оценка:
В D можно генерировать код во время компиляции (продвинутые макросы). Но если сравнивать с Java, мне подход последней нравился больше. Когда генерируется текст на Java отдельным этапом, обычной программой (ну точней плагином системы сборки). И этот код являются частью кода проекта. Ты можешь щёлкнуть "перейти к реализации" и открыть этот самый код. Отладить его, если он не тривиальный. Например у меня есть antlr-парсер и при проблемах я проваливался в кишки сгенерированного кода и это было полезно. Если бы это был D, в котором сгенерированный код существует только в памяти компилятора в момент компиляции, это было бы куда сложней.
Re[11]: Модульные системы программирования
От: D. Mon Великобритания http://thedeemon.livejournal.com
Дата: 11.07.20 10:55
Оценка: +1
Здравствуйте, varenikAA, Вы писали:

DM>>Это реализация https://en.wikipedia.org/wiki/Component_Pascal в котором никакими генериками не пахнет.

AA>

AA>Да и вообще ничем интересным не пахнет.

AA>Похоже, именно в этом и кроется проблема, программирование не должно быть интересным, оно должно быть простым и надежным.
AA>

Ну так возможность запрограммировать и отладить стандартные алгоритмы и структуры данных один раз и затем переиспользовать их для разных конкретных типов элементов — это именно способ сделать программирование простым и надежным. Ведь иначе программист должен реализовывать их опять и опять, каждый раз рискуя ошибиться, каждый раз отлаживаться заново. Что в этом простого, что в этом надежного?

Зачем нужен этот оберон или паскаль, когда можно писать на ассемблере? А если переход на язык "высокого" уровня оправдан, то почему именно эта "высота" оптимальна, а не хотя бы Java 1.5 или C# 3?
Re[11]: Модульные системы программирования
От: ole! США http://files.rsdn.org/4543/rsdn.gif
Дата: 12.07.20 18:17
Оценка:
Здравствуйте, varenikAA, Вы писали:


DM>>Это реализация https://en.wikipedia.org/wiki/Component_Pascal в котором никакими генериками не пахнет.

AA>

AA>Да и вообще ничем интересным не пахнет.

AA>Похоже, именно в этом и кроется проблема, программирование не должно быть интересным, оно должно быть простым и надежным.
AA>

Это не взаимно исключающие понятия. Простое и надёжное может как быть интересным так и не быть им.
Интересен ли молоток?
my $.02
Re[5]: Модульные системы программирования
От: Cyberax Марс  
Дата: 12.07.20 22:34
Оценка: :)
Здравствуйте, varenikAA, Вы писали:

AA>Тут говорят обратное

AA>

AA>go это оберон с синтаксисом c

Нет, Оберон — это один из предков Go, с похожими идеями. Go пошёл дальше в области упрощения (остался только цикл for, например) и в области распределённого программирования.
Sapienti sat!
Re[2]: Модульные системы программирования
От: T4r4sB Россия  
Дата: 12.07.20 22:56
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>Но если сравнивать с Java, мне подход последней нравился больше.

То есть язык без мета, но с внешним кодогенератором — оптимальный вариант?
Re[3]: Модульные системы программирования
От: pagid Россия  
Дата: 13.07.20 04:10
Оценка:
AA>....максимальная известная стоимость одной программной ошибки — полмиллиарда у.е., это стоимость потерпевшей катастрофу на взлете европейской космической ракеты Ариан-5 в
1996 г.).
И как Оберон помог бы в случае с той ошибкой приведшей к катастрофе Ариана в 1996 году?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.