LINUX.ORG.RU

Была недавно новость о том, что вроде какой-то там oberon в опенсорс втащили или что-то около того, которую тут на LOR обсуждали.

А так, у нас есть апологеты Pascal, и соотв., Delphi и Lasarus. Кто-то из-них даже использует Lasarus на работе!

seiken ★★★★★
()
Ответ на: комментарий от seiken

А есть какие-нибудь open source проекты на Обероне (Component Pascal, AOS и т.д.)?

Язык интересный, тот же Go от Google это фактически диалект Оберона с другим синтаксисом, он успешно пошел в массы.

Жаль, что C/C++ популярнее виртовских языков.

Den_Zurin
() автор топика
Ответ на: комментарий от seiken

Сам я Oberon не нюхал

Какова сила метафоры, а!

anonymous
()

Никлаус Вирт рассказывает о влиянии Oberon на Java. Sun украла у него идею и выдала за свою «революционную технологию».

http://alenacpp.blogspot.ru/2005/09/blog-post_21.html

  • Я слышал, что Sun купила Оберон. Значит ли это что для создания компилятора Оберона надо покупать лицензию?

  • Sun не покупала Оберон. Она купила исходники компилятора Оберон. Кстати, очень за дешево. А через 7 лет они выпустили Java, используя идеи Оберона в слегка извращенном виде.

http://www.computer-museum.ru/frgnhist/wirth.htm

Михаэль Франц в феврале 1994 г. защитил в ETH диссертацию, которая называлась «Динамическая кодогенерация – ключ к переносимому программному обеспечению». В ней были четко обозначены проблемы виртуальных машин и предложен крайне простой и довольно необычный подход к достижению переносимости. В диссертации Франца не только подробно разбирался принцип формирования и хранения промежуточного представления, но и делался вывод о том, что для подобного класса языков он остается практически неизменным. Другими словами, для языка Java этот принцип вполне подходил. Кстати, понятие applet тоже фигурировало в работах Франца. Через год после появления Java Михаэль Франц к лету 1996 г. подготовил среду под названием Juice, выполненную в виде подключаемого модуля для браузеров Netscape и Microsoft. Модуль состоял из компактного варианта ОС Oberon и полнофункционального компилятора Oberon, размер которых (в Oberon-формате) в общей сложности составляет всего лишь 100 Кбайт. В марте 1994 г. Михаэль Франц сделал в Sun Labs несколько докладов, и к весне того же года Билл Джой (вице-президент Sun и идеолог проекта создания Java) уже имел на руках всю необходимую информацию, включая и диссертацию Франца.

Den_Zurin
() автор топика
Ответ на: комментарий от seiken

Да, Turbo Pascal был крут, единственный минус это 16 bit и отсутствие в графике VESA режимов (но можно было работать с прерываниями). Многое в нем было взято из виртовской Модулы-2, в результате вышел отличный язык для системного программирования, без костылей C++ и быстрой компиляцией.

Den_Zurin
() автор топика
Ответ на: комментарий от Den_Zurin

без костылей C++

Да, только эти костыли к современным версиям паскаля таки приделали. Ту же киллер-фичу С++, шаблоны, без которых проблематично создавать те же библиотеки контейнеров. Хотя, не знаю, на сколько криво шаблоны реализованы в Лазаре.

seiken ★★★★★
()
Последнее исправление: seiken (всего исправлений: 1)
Ответ на: комментарий от Den_Zurin

Ну и в чем проблема-то? Они там какие-то патенты или копирайты что ли нарушили? А про диссер - так это вообще нормально. Если диссер не засекречен спецслужбами, то нет никакого криминала заюзать идеи из него. А Линус использовал идеи UNIX. И что дальше?

seiken ★★★★★
()
Ответ на: комментарий от seiken

Костыли - это const, friend, различные типы конструкторов и т.д. Доведенная до маразма перегрузка (например, для запятой) ту да же. По сравнению со всем этим ООП в Турбо Паскале выглядело проще и понятнее.

Шаблоны в C++ - это заимствования generics из Ады (куда, в свою очередь попали из ML языков). Во Free Pascal/Lazarus используются именно эти generics, как и в Java и C#. В Обероне их действительно не хватает, из-за чего нельзя написать полноценные коллекции.

Den_Zurin
() автор топика
Последнее исправление: Den_Zurin (всего исправлений: 1)

А есть ли здесь любители этого языка, написанной на нем операционной системы и других технологий гениального Никлауса Вирта?

Коля Вирт оказался не только гениальным, но даже и умным - сообразил (хотя и с запозданием во много лет), что его языки никому не нужны, и пообещал больше их не изобретать. Oberon уже был никому не нужен для практического использования.

Влияние Oberon-а на другие языки было, но это тоже дело далёкого прошлого. Так что некоторые тут занялись мифотворчеством. Каждый новый язык создаётся с использованием идей из нескольких существующих. Это нормально. Но вряд ли Sun что-то украла у Вирта. Выполнение программ в виртуальной среде уже было и в других языках, и на Java по-видимому повлиял Smalltalk (широко применялся фирмой IBM, но потом она перешла на Java). В отличие от Java, виртуальная среда Oberon-а могла быть установлена и на голое железо, чем напоминала возникшие ещё раньше P-системы. Аплеты во время поячвления Java были популярной идеей, так что нельзя с уверенностью сказать, у кого заимнствованы. Но аплеты на Oberon-е никого не заинтересовали.

Утверждение, что Go это модифицированный Oberon - полная нелепость. Я задумался: а в чём сходство? Припомнил только сопрограммы (появились в языке Modula, если не раньше), но ко времени создания Go эта идея была общеизвестной, и если авторы Go её заимствовали, то не из Oberon, а из Erlang - это успешный функциональный язык программирования, который как и Go имеет хорошую поддержку распределённой обработки (для неё и придуман). В отличие от сопрограмм в Modula, сопрограммы в Erlang и Go имеют механизм взаимодействия в виде сигналов и слотов (не знаю, кем придуман, но давно и не Колей).

В общем, что у Коли было полезного, то есть в современных языках (независимо от того, кто у кого заимствовал). Но нередко попадаются кучки психов, которые воображают, что только им открыта Великая Истина, не известная всему остальному миру. Так что не удивлюсь, если откликнутся любители Oberon. Но если такие найдутся, то окажется, что программировать они не умеют, потому что те, кто умеет, использует для этого современные средства.

Partisan ★★★★★
()
Ответ на: комментарий от Partisan

Я задумался: а в чём сходство?

Если кратко, то вот: https://ru.wikipedia.org/wiki/Active_Oberon

Семантически почти полная копия с некоторыми расширениями (лямбды, интерфейсы и др.). Общий минимализм, строгая типизация, ООП в форме привязанных к структурам процедур, нативный код с использованием GC, модульная система… А вот с Эрлангом у Go кроме зеленых потоков (которые в упомянутом Active Oberon тоже есть) ничего общего. Go пошел в массы, потому что он проще C++. И быстрее языков на виртуальных машинах.

Но вряд ли Sun что-то украла у Вирта.

Технология Juice, от которой произошли Java апплеты: http://oberon2005.oberoncore.ru/paper/obe_java5.pdf

Просто у Вирта не было таких маркетологов, как у Sun.

и на Java по-видимому повлиял Smalltalk

Не вижу навскидку такого влияния. В Smalltalk принцип «все есть объект», в Java (как и в C++) его нет. Например, методы не объекты, из-за этого вплоть до 8-й версии не было лямбд и приходилось для их эмуляции писать анонимные классы. Более близкие потомки Smalltalk - это языки Objective-C и Swift.

Den_Zurin
() автор топика
Последнее исправление: Den_Zurin (всего исправлений: 1)
Ответ на: комментарий от Partisan

Утверждение, что Go это модифицированный Oberon - полная нелепость

Страница xii доступна для просмотра: https://www.amazon.com/Programming-Language-Addison-Wesley-Professional-Computing/dp/0134190440

Evenik ★★
()
Последнее исправление: Evenik (всего исправлений: 2)
Ответ на: комментарий от Den_Zurin

Go пошел в массы, потому что он проще C++

Нет, не поэтому, а потому что Google развел вокруг него хайп.

И быстрее языков на виртуальных машинах.

У Go тоже есть VM, очевидно. И нет, он не быстрее ни .Net Core, ни java -server, ни даже SBCL https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/binarytrees.html

lovesan ★★★
()
Ответ на: комментарий от lovesan

Java, в свою очередь, это упрощенный C++ с GC, от авторов Common Lisp

lovesan ★★★
()
Ответ на: комментарий от anonymous

Это вообще в Visual Basic было.

Я уж не говорю про старые ОО-языки.

lovesan ★★★
()
Ответ на: комментарий от anonymous

На обероне (на его сильно расширенной разновидности) есть ОС A2, которую я сейчас потихоньку перепиливаю под себя. Она существует в трёх видах, как ОС на железе (на нескольких платформах) и как приложение под Windows/Linux. Например, вот как она выглядит у меня:

https://www.youtube.com/watch?v=-n19nX_-Umc&t=500s

Из приятного - в ней всего 700 тыс. строк и это включает в себя драйвера нескольких железок (тоже на обероне, там есть рилтайм задачи, могущие прерывать сборку мусора), компилятор, библиотеку UI, среду разработки, средство редактирования структурированных документов а-ля вордпад, какую-то криптографию и даже веб-браузер (правда, в наше время он как-то безнадёжно устарел). Полная сборка занимает около минуты!

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

Любители Оберона в России пасутся в основном на oberoncore.ru . Была даже конференция любителей Оберона совсем недавно.

Можно я тут заодно запишу свои заметочки?

TFTypeSys.ReadSymbolFile - по имени модуля возвращает объект «модуль», в т.ч. именно он извлекает имя исходного файла. Коллекция модулей может храниться в объекте NameSpace (типо кешироваться). TFModuleTrees / FindIdentByPos - для перехода к определению. Использует GetSourceReference, к-рый лезет за именем в модули (но не читает его, поэтому в прямом виде не годится) и затем onGotoDefintion.Call - разобраться потом.

Пользуясь случаем, хочу отметить, что Лавсан - лох!

den73 ★★★★★
()
Ответ на: комментарий от den73

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

А golang? Сам не тыкал его, но это очевидный кандитат на будущее. Совсем всё плохо?

anonymous
()
Ответ на: комментарий от anonymous

Go - это квадратно-гнездовой язык для написания сервисов, при этом спроектирован так, чтобы даже обезьяну можно было научить делать на нём довольно шустро и стабильно. Тем хорош. Тем одновременно же и плох.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от anonymous

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

den73 ★★★★★
()
Последнее исправление: den73 (всего исправлений: 2)

Excelsior Jet по кр. мере под одну из платформ (то ли Linux/x86, то ли Windows/x86) был написан как раз на Oberon.

Сейчас команда целиком куплена Huawei, судьба проекта Excelsior Jet неясна.

Bass ★★★★★
()

А есть ли здесь любители этого языка

Есть Oberon for Microcontrollers // Astrobe ©антиподы в южной Австралии программируют МК на Обероне и «ходют вверх ногами» :)

quickquest ★★★★★
()
Ответ на: комментарий от lovesan

И нет, он не быстрее ни .Net Core

.NET задает довольно высокую планку производительности среди managed языков.

seiken ★★★★★
()

Добро пожаловать в секту, бугага. Нет, тут на лоре ее почти нет, den73 и анонимус какой-то (не я).

(* Оберона не знаю, но паскаль в 9.7 раз лучше чем C. Умел человек языки делать! *)

anonymous
()

Компилятор оберона есть в колибри-ос, там и примеры граф.приложений включены. Можно скачать 20мб образ этот, на флешку записать и делать свои гениальные программы.

Deleted
()
Ответ на: комментарий от anonymous

паскаль в 9.7 раз лучше чем C

Практика показала, что на си писать можно и обезьяну научить писать. Что в паскале зарубит компилятор как быдлокод, си радостно скомпилит и запустит.

Скомпилилось же? Скомпилилось. А сегфолты будут завтра, завтра и будем разбираться.

anonymous
()
Ответ на: комментарий от anonymous

Я не соглашусь, что я в секте. Я не отрицаю минусов оберона и не считаю Вирта гением, а все его решения - правильными. Тем не менее, аналогов той же A2 не нашёл. Если есть - назовите. Я видел кстати и ОС на CL, Mezzano, но CL уже давно потерял моё доверие. Трагически неудачная версия лиспа.

den73 ★★★★★
()
Ответ на: комментарий от den73

аналогов той же A2 не нашёл

На Модуле-3 была ОС SPIN, но а) это был исслед. проект, а не полноценная ОС, б) модула-3 практически сдохла, хотя CM3 ещё конвульсирует, так что и ОС туда же улетела, не успев как следует родиться.

anonymous
()
Ответ на: комментарий от Den_Zurin

Шаблоны в C++ - это заимствования generics из Ады

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

anonymous
()
Ответ на: комментарий от den73

Что хорошего сделала эта Astrobe?

Astrobe © is a complete integrated embedded software rapid development system running on Windows. It includes a multi-file, fully featured, syntax-aware programmer’s editor, native code compiler, linker and builder, program uploader and a serial terminal. Use it to develop reliable software to run on the powerful 32-bit ARM Cortex-M3, Cortex-M4 and Cortex-M7 families of microcontrollers.

There is also a free version available for developing software to run on Xilinx Artix-7, Spartan-7 and Spartan-6 FPGA-based systems.

quickquest ★★★★★
()
Ответ на: комментарий от seiken

и соотв., Delphi и Lasarus. Кто-то из-них даже использует Lasarus на работе! соотв. сишарп и джава ещё, потому что примерно такое же отношение имеют к вирту

anonymous
()
Ответ на: комментарий от anonymous

К тому графу есть вопросы: они Си ведут от Алгола.

от алгола-68, критикуемого виртом. в пику которому и был создан паскаль, через алгол-в

anonymous
()
Ответ на: комментарий от anonymous

Тогда уж сразу от Алгола-60. А потом все свести к Аде, которая дочка Байрона, гулять так гулять.

anonymous
()
Ответ на: комментарий от anonymous

алгол-68 - это похеренный алгол-60. пиндосы занесли бабла комиссии чтобы похерить европейский язык, плюс рептилоиды своей командой продвигали этот стандарт с той же целью

anonymous
()

Деду Вирта я очень уважаю, но по-моему, его в последних языках несёт куда-то не туда. Модула-2 ещё была для тех, кто пишет программы, а вот Оберон и его диалекты — уже для любителей любоваться на минимализм.

В этом смысле линия Delphi->Free Pascal, направленная на создание удобного ЯП для прикладного программирования, мне симпатична гораздо больше. Несмотря на ряд отвратительных технических решений (например, ключевые слова object и class, которые делают по сути одно и то же), в целом получилась няшка. Тоже детище Вирта, которое Вирт забросил, и его воспитали другие люди.

Ну и предвзятое отношение Вирта к опенсорсу весьма печально. Опенсорс даёт разнобой, и получается говно, ага. А то у корпораций говна нет. Только в опенсорсе говно из-за недостатка ресурсов (что поправимо), а корпорации говно плодят сознательно — на нём проще деньги зарабатывать.

hobbit ★★★★★
()
Ответ на: комментарий от quickquest

Это продукт, к-рый они предлагают. Вот я например могу сказать, что компания, дочерняя от Oberon Microsystems, выпустила реализацию j2me под названием jbed, у к-рого в своё время было около 10% рынка мобильных устройств, и который дожил аж почти до сего дня в виде эмулятора для андроида. Вот это похоже на историю успеха. А что сделали на этой астробе?

Также интересуют пруфы про влияние оберона на java. Пока что они в основном сводятся к высказываниям. Вот влияние оберона на голанг признано авторами голанга в официальной библии. А для java всё опирается на то, что они купили лицензию на какую-то оберон-систему и сразу же выпустили java. Но java существенно по-другому устроена. Да и была бы одинаково устроена - это могло быть случайным совпадением.

den73 ★★★★★
()
Последнее исправление: den73 (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.