Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 19 июн 2019, 09:47

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
СообщениеДобавлено: 22 май 2014, 03:23 
Не в сети

Сообщения: 25
Простота этих языков компенсируется их количеством.

У новичка, конечно, закружится голова от столь большого списка названий. А ведь они ещё бывают и "вторые" и "активные".

Из википедии "Разработка семейства языков ALGOL — Pascal — Modula-2 — Oberon — Oberon-2 — Component Pascal отмечена редукцией сложности синтаксиса языка."
"Редукция в логике и математике — логико-методологический приём сведения сложного к простому."

Вопрос 1. Когда я открыл BlackBox, создал новый документ odc, и начал писать, то на каком из этих языков я пишу?
В обзоре написано: "В системе Блэкбокс приложения и их компоненты пишутся на Компо­нен­т­ном Паскале — наследнике Паскаля, Модулы-2 и Оберона." Значит всё-таки Компонентный Паскаль. Язык с самой простой сложностью. :)

Всё вроде хорошо, изучай Компонентный Паскаль и радуйся. У него самая редуцированная сложность. Но, небольшие сомнения остаются.
Вопрос 2. Могу я изучать только Компонентный Паскаль, а про ALGOL — Pascal — Modula-2 — Oberon — Oberon-2 забыть и не вспоминать, радуясь достигнутой простоте?


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 22 май 2014, 09:57 
Не в сети
Аватара пользователя

Сообщения: 65
Пишите на Компонентном Паскале и не думайте ни о чём :) Инженерные принципы Оберона проявлены в КП вполне отчётливо.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 22 май 2014, 10:55 
Не в сети

Сообщения: 25
Спасибо, это успокаивает! :)


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 22 май 2014, 19:44 
Не в сети
Аватара пользователя

Сообщения: 938
Откуда: Днепропетровская обл.
Reobne писал(а):
Вопрос 2. Могу я изучать только Компонентный Паскаль, а про ALGOL — Pascal — Modula-2 — Oberon — Oberon-2 забыть и не вспоминать, радуясь достигнутой простоте?
С учётом того, что КП в себя включает и Оберон-1, и Оберон-2 :) можно считать его уточнением Оберона для промышленного программирования. И совсем даже неплохо если его будут уточнять и дальше. А, ввиду простоты языка и стабильной устойчивости языкового ядра, обилие диалектов не запутывает. Мне кажется, делать диалекты и надмножества — это всяко лучше, чем непрерывно наращивать количество языковых возможностей (и сложности) без их пересмотра и отбрасывания (из соображений совместимости).

P.S. Модула-2 имеет некоторые преимущества перед Обероном в системном программировании, ровно как и некоторые недостатки.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 23 май 2014, 02:33 
Не в сети

Сообщения: 25
Zorko писал(а):
С учётом того, что КП в себя включает и Оберон-1, и Оберон-2 :)

1. Это означает, что любой правильный текст программы на одном из Оберонов, будет также правильным текстом на КПаскале, и результат работы программы будет тем-же?
2. Это означает, что любая правильная литература по Оберону, если в её тесте заменить слово "Оберон" на "КПаскаль", станет правильной литературой по КПаскалю?

Zorko писал(а):
можно считать его уточнением Оберона для промышленного программирования.

Нет, меня словом "промышленное" не запугаешь. Вот школьников, которые не работали в промышленности, которые не сделали открытие, что и промышленники обычные люди, вот таких может и напугать.
- "Ой, тут промышленнось, массовость! Куда уж мне, самоучке-одиночке, пойду поищу чего попроще!"
(сарказм on) А нам только этого и надо! Чем меньше народу будет изучать Оберон-программирование, тем мы будем чувствовать себя элитнее! (сарказм off)

Zorko писал(а):
И совсем даже неплохо если его будут уточнять и дальше.

Конечно! Если Уточнят неправильно, то всегда можно вернуться назад. Только один минус, к страшным словам (компонентный, активный, паскаль, оберон, модула) добавятся ещё более страшные слова.

Zorko писал(а):
А, ввиду простоты языка и стабильной устойчивости языкового ядра, обилие диалектов не запутывает.

Ну, как не запутывает? Само понимание что диалектов много - пугает. В первую очередь хочется разобраться насколько они отличаются. Несмотря на то что КПаскаль ближе всего к Оберону2, в интернете ищутся статьи сравнивающие КПаскаль с простым Паскалем.(Похоже на попытку переманить паскалистов на Оберон) А если КПаскаль сравнивается с Обероном, то это скорее популярная статья, где процветают обороты вроде: "Воплощение идей", "вся мощь", и ничего по существу. :( Так что, милый друг, изучи сначала Оберон2, потом изучи КПаскаль, и только тогда поймёшь как они похожи.
Короче говоря, мне кажется, что не хватает вводной статьи для новичков, где бы рассказывалось что язык КПаскаль простой. Что он имеет большое общее ядро с языками Модула и Оберон, и это только на пользу, потому что можно смело читать литературу по этим языкам и относить её к КПаскалю. Что на КПаскале вырабатывается хороший стиль сразу писать программы с минимумом ошибок. :) А не пугать новичков "промышленностью", знаменитыми предками, знаменитым создателем. Может даже такая статья где-то есть, но она затерялась среди тех, которые мне не понравились. Те которые мне попадались, ориентированы на то чтобы создать впечатление среди начальничьих мозгов, которые не собираются сами программировать, а только руками махать - дирижировать.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 23 май 2014, 13:30 
Не в сети
Аватара пользователя

Сообщения: 938
Откуда: Днепропетровская обл.
Reobne писал(а):
1. Это означает, что любой правильный текст программы на одном из Оберонов, будет также правильным текстом на КПаскале, и результат работы программы будет тем-же?
Абсолютно да, за исключением косметики — некоторых отличий в синтаксисе. У этого есть свои причины. Например, в Обероне-2 нельзя запретить наследовать запись. В КП можно это сделать — появился атрибут записи EXTENSIBLE. Поэтому, переписывая с Оберона-2 на КП мы можем его добавить если наследование предусматривается, и не добавлять если нет.

Ещё навскидку приходит на ум, что в Обероне и Обероне-2 есть встроенная процедура COPY для копирования строк. А в КП уже нету:
Код: "OBERON"
  1. (* Oberon, Oberon-2: *)
  2. COPY("This is a string", str);
  3. (* Component Pascal: *)
  4. str := "This is a string";
Вариант Оберона явнее показывает, что осуществляется не просто присваивание, а копирование целого массива данных, а эта операция может быть ёмкой. Вариант КП более традиционный.

Может что-то ещё упустил, но Оберон-программы переписываются на КП легко.

Reobne писал(а):
2. Это означает, что любая правильная литература по Оберону, если в её тесте заменить слово "Оберон" на "КПаскаль", станет правильной литературой по КПаскалю?
Уверен, что да (за исключением сказанного выше).

Reobne писал(а):
Конечно! Если Уточнят неправильно, то всегда можно вернуться назад. Только один минус, к страшным словам (компонентный, активный, паскаль, оберон, модула) добавятся ещё более страшные слова.
Наверное диалекты это всё-таки чем-то лучше, чем совсем разные языки. И портировать легче — языковое ядро общее. Вспоминаются Visual C++ и Borland C++ Builder. И язык вроде один, а попробуй-ка перенеси, особенно что-то связанное с GUI.

Reobne писал(а):
Само понимание что диалектов много - пугает. В первую очередь хочется разобраться насколько они отличаются.
Можно провести 3 линии диалектов.

  1. Oberon => Oberon-2 => Component Pascal: наращивающаяся линия по превращению языка из академической игрушки или, если угодно, эксперимента в язык, подходящий для решения различных практических задач, притом с выводом его из экзотических Оберон-систем в те, которыми мы пользуемся.
  2. Oberon => Active Oberon => Zonnon: AO: эксперименты с какой-то хитрой очень эффективной многозадачностью. Zonnon — даже уже не совсем диалект Оберона — развитие идей, воплощённых в .NET. Мне эта ветвь как-то не пригодилась. В AO уже отошли от принципа "запись как объект", к тому же он работает только внутри ОС A2. Впрочем, есть версии этой ОС, работающие поверх Windows и Linux.
  3. Oberon => Oberon-07 (Revised Oberon): некоторые господа считают его наиправильнейшим и наикошернейшим Обероном. Ввиду простоты это самый лёгкий в реализации диалект. Последняя работа Н.Вирта в области языкостроения. До сих пор уточняется — выходят новые поправки к репортам. Можно сказать, ультрарадикальный диалект. Очень маленький, урезано такое, от чего даже я могу смело назвать его маргинальным. Но кое-что и добавилось, например, цикл Дейкстры:
    Код: "OBERON"
    1. WHILE a < b DO
    2. ...
    3. ELSIF a = b DO
    4. ...
    5. END;
Всё перечисленное пусть будет моё "имхо", кто-то, быть может, и не согласится. Но для меня вывод очевиден: для целей традиционной разработки под традиционные ОС больше всего подходят Оберон-2 и КП. Они могут составить в этом смысле конкуренцию и Си, и Паскалю, и Модуле-2, и Java/C#.

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

Reobne писал(а):
Несмотря на то что КПаскаль ближе всего к Оберону2, в интернете ищутся статьи сравнивающие КПаскаль с простым Паскалем.(Похоже на попытку переманить паскалистов на Оберон)
Да, наверное OMinc хотели сыграть на популярности имени Паскаля. Кому-то это не нравится. Но имидж Паскаля всё ещё котируется. :)

Reobne писал(а):
Короче говоря, мне кажется, что не хватает вводной статьи для новичков, где бы рассказывалось что язык КПаскаль простой. Что он имеет большое общее ядро с языками Модула и Оберон, и это только на пользу, потому что можно смело читать литературу по этим языкам и относить её к КПаскалю. Что на КПаскале вырабатывается хороший стиль сразу писать программы с минимумом ошибок. :) А не пугать новичков "промышленностью", знаменитыми предками, знаменитым создателем. Может даже такая статья где-то есть, но она затерялась среди тех, которые мне не понравились. Те которые мне попадались, ориентированы на то чтобы создать впечатление среди начальничьих мозгов, которые не собираются сами программировать, а только руками махать - дирижировать.
Вот Илья Евгеньевич недавно новой статьёй порадовал. И вроде совсем неплохо. И ваш покорный слуга как-то пытался что-то такое на Хабре писать, только ниасилил. :) Вернее, сумел получить самую большую посещаемость форума за всё время его существования. ;)

Такие статьи должны быть. Алекс Черемхин неплохо обосновал достоинства Оберона. Ещё можно посмотреть у И.Ермакова на сайте. В связи с этим вспоминаются и статьи Р.Богатырёва. Что-то такое есть в торрент-раздаче литературы по Оберон-технологиям, это вообще бомба нашего местного разлива. :)

Не, популяризация Оберона — больная тема, лучше будем элитарными товарищами. ;) А если серьёзно, то нужен повод заняться Обероном. Кто его находит — тот к нам и приходит. И обычно остаётся.

А господа менеджеры и дирижёры обычно больше тяготеют к тому, что у всех на ушах. Их убедить в пользе Оберона — это как объяснить юзеру с пылающими глазами, что Windows 8.1 примерно ничем не лучше Windows XP, т.е. она где-то рядом, а очи-то горят недоверием. Ведь юзер искренне считает, что ему принесли на блюдечке за его деньги чудо технического прогресса.

P.S. Под "адаптацией к промышленности" я имел ввиду: бери, изучи и решай задачи. А не принимайся сразу допиливать юникод, стыковку с популярными ОС и т.п.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 24 май 2014, 08:53 
Не в сети

Сообщения: 25
Reobne писал(а):
Zorko писал(а):
С учётом того, что КП в себя включает и Оберон-1, и Оберон-2 :)
1. Это означает, что любой правильный текст программы на одном из Оберонов, будет также правильным текстом на КПаскале, и результат работы программы будет тем-же?
2. Это означает, что любая правильная литература по Оберону, если в её тесте заменить слово "Оберон" на "КПаскаль", станет правильной литературой по КПаскалю?
Рискну ещё уточнить:
1,2. Да, если программа/документ писались сразу с учётом возможности такой замены. :) Т.е. "на общий для всех принимаемых во внимание частностей случай". Всегда ли возможна такая замена в программах как "императивах", наверное, должен объяснять документ как "дескриптив". Предложил бы такие источники:
Reobne писал(а):
Zorko писал(а):
можно считать его уточнением Оберона для промышленного программирования.
Нет, меня словом "промышленное" не запугаешь. Вот школьников, которые не работали в промышленности, которые не сделали открытие, что и промышленники обычные люди, вот таких может и напугать.
...
- так тут смысл слова другой... как раз что "промышленники" - обычные люди... :) Которым надо дать инструменты, усложнённые "не больше, чем нужно"... ;) Ну, об общих проблемах в промышленности Грабин вполне сказал... и не похоже, что за три четверти века что-то особо изменилось... ;)

Reobne писал(а):
... Короче говоря, мне кажется, что не хватает вводной статьи для новичков, где бы рассказывалось что язык КПаскаль простой. Что он имеет большое общее ядро с языками Модула и Оберон, и это только на пользу, потому что можно смело читать литературу по этим языкам и относить её к КПаскалю. Что на КПаскале вырабатывается хороший стиль сразу писать программы с минимумом ошибок. :) А не пугать новичков "промышленностью", знаменитыми предками, знаменитым создателем. Может даже такая статья где-то есть, но она затерялась среди тех, которые мне не понравились. Те которые мне попадались, ориентированы на то чтобы создать впечатление среди начальничьих мозгов, которые не собираются сами программировать, а только руками махать - дирижировать.
Ну может не статья, а книги Потопахина, представленные здесь и в связанных постах (вообще в ветке), особо "... с нуля". Но систематически и содержательно об общности/различиях КомПаса с названными языками да, как-то не находилось (хотя глубоко не искал). Наверное, тема ждёт своих авторов... :)
Только думается, это для новичков лучше раскрывать с графикой, прежде всего схемами программ (и на базе не Янова только, а Лаврова). В принципе в посте вышеупомянутом (об "Искусстве алгоритмизации") основные подходы можно найти (в т.ч. по ссылкам). Но языки схем нужны будут... разные (подробнее в этой ветке проблематика)... Кстати, многое ведь делается не через базу языка, а через библиотеки (это уже у Ткачёва есть - как со строками работать)...


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 27 май 2014, 14:24 
Не в сети
Аватара пользователя

Сообщения: 65
Zorko писал(а):
Не, популяризация Оберона — больная тема, лучше будем элитарными товарищами. ;)
Только не элитность :) Фишка Оберона - в возможности массового применения в непрофессиональной среде.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 27 май 2014, 21:21 
Не в сети
Аватара пользователя

Сообщения: 938
Откуда: Днепропетровская обл.
Это безусловно верно, и потенциально Оберон — самый подходящий для непрофессионалов ЯП. Но, мне кажется, в сложившихся условиях путь непрофессионала в Оберон-мир ещё более тернист, чем путь профессионала. Влияет всё. И "тёплая домашняя привязка", и на чём обучался студент — будущий программист (или непрофессиональный программист, изучавший компьютерные технологии), и насколько быстро и легко (в основном за счёт большого количества готовых компонентов и библиотек) решаются не специфические, а массовые задачи. А это веб-технологии, карманные платформы, www-бизнес, причём для каждой из этих ниш есть десятки других языков/средств разработки. А в рассылке ETH вот задали вопрос про "well-maintained Oberon-2 compiler", так я не знал что ответить. XDev пока стыдно предлагать, всё-таки сборки мусора нету.

Поэтому и элитность. Как же ещё это назвать. :)


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Тех.поддержка phpBB