LINUX.ORG.RU

Component Pascal и Oberon


0

2

Собственно, сабж. Был ли у кого опыт программирования и каковы впечатления. Нужно ли это знать как разработчику?

★★★★★

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

Ответ на: комментарий от geekless

>Я думаю, после откровения о си-подобном синтаксисе в Ruby

Пример из Ruby:

(0..10).collect{|v| v ** 2 }.select{ rand(2) == 1 }.each_with_index{|v,i| printf «%2d\t%2d\n», i, v }

«Кто скажет, что это не „си-звращённый“ синтаксис, пусть бросит в меня камень» (с) О.Бендер :)

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

> динамически типизированному интерпретатору (да ещё и с таким плохим дизайном, как у Питона)

Ну открой же нам, что не так с дизайном интерпретатора Питона.

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

1) Интерпретатор (внезапно!)
2) GIL
3) Уёбищная модель управления памятью (подсчет ссылок плюс подтирание говна за ним с помощью отслеживающего GC, вместо просто GC)

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

> Вы имеете сказать что-то против дизайна интерпретатора Питона?
Уже сказал, в конкретику погружаться нет желания.

Речь идет не о пацкале, а о Component Pascal и Oberon

Сборщик мусора я вижу, виртуальной машины не вижу. Впрочем, и бенчмарков для оберона я не вижу тоже. Может быть, уважаемые пользователи оберона внесут ясность? Оберон исползует виртуальную машину или компилирует в нативный код?

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

> 1) Интерпретатор (внезапно!)

После этого можно не продолжать %)

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

Made my day

Фигурные скобочки. Паскалист увидел фигурные скобочки. Си-звращённый си-синтаксис, ААААА!!!

Немедленно в гугл! И больше так не позориться.

А в Обероне есть круглые скобочки. Значит в Обероне лисповый синтаксис — так что ли? Логика за гранью разума.

Внезапно...

(0..10).collect do |v|
  v ** 2
end.select do
  rand(2) == 1
end.each_with_index do |v,i|
  printf "%2d\t%2d\n", i, v
end
...а где же скобочки?! Обманули? Украли?

Если серьёзно, не объясните ли, какое отношение имеют рубивские замыкания к оператору {} в Си? Более, чем никакого.

Или может вы | за бинарную операцию OR приняли?

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

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

> > Вы имеете сказать что-то против дизайна интерпретатора Питона?

Уже сказал, в конкретику погружаться нет желания.

Из-под анонимуса, что ли?

По факту Blender работает шустрее и отзывчивее NetBeans.

Сборщик мусора я вижу, виртуальной машины не вижу.

Да, пардон, облажался: кляты пасквилянты весь мозг проели гениальностью своего учителя, который изобрел и ВМ, и сборку мусора и чуть ли не колесо.

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

P.S. BlackBox не идеален, но в его нише конкурентов не видно, к сожалению.

Я не против блекбоса, но вот в это утверждение не верю. Чисто на вскидку: lua. Он довольно быстр, встраиваем, реализация компактна, синтаксис достаточно лаконичен. Отличный игрушечный язык.

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

> то не так с дизайном интерпретатора Питона.

По-моему фраза о плохом дизайне относилась к самому питону, а не к его интерпретатору. С нею кто-то не согласен? ;)

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

>Оберон исползует виртуальную машину или компилирует в нативный код?

Оберонов много и они разные. Например Native XDS-x86 компилирует в нативный код, XDS-C транслирует в «с», а используя Gardens Point Component Pascal - можно получить как IL-код для платформы Microsoft.NET, так и байт-код для виртуальной машины Java (JVM).

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

Хотя нет, если Питон с Обероном, то вернее будет «Говно vs. Отблев»

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

А на ЛОРе что, остались адекватные(в плане знания языка) лисперы? Последнего(love5an) вон недавно забанили.

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

На этом сайте обсуждение любого языка сводится к обсуждению CL и Python. )) Печально... Просто хотел понять имеет ли смысл использовать Oberon-подобные языки как альтернативу вездесущему С++, ну или C#.

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

>Чисто на вскидку: lua... Отличный игрушечный язык.

Язык симпатичный, но пока «игрушечный».
BlackBox - это не просто «IDE+Component Pascal», это неплохо отлаженный каркас со встроенным редактируемым гибким «гуем». И всё это занимает 50 МиБ. Где конкуренты? Ау! :)

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

Не уверен. Иначе бы не создал эту тему. По возможностям, вроде, системы равны...

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

> Писать-то не пишут, однако при печати всё равно всё выводится в верхнем регистре.

а поменять значение отвечающей за это переменной не судьба?

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

Область применения C# - формошлепство на винде плюс asp.net
Как ты собрался там использовать Оберон?
У него стандартной библиотеки уровня .NET нэт. Да и «нестандартных» библиотек тоже не особо.

Область C++ - поддержка старого софта на C++, плюс, м.б., геймдев. Опять же - какой там Оберон? Инфраструктуры - ноль.

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

это неплохо отлаженный каркас

lua во стольких играх испольщуется, что про отлаженность говрить даже неудобно как-то.

со встроенным редактируемым гибким «гуем».

Не знаю о чем речь, но у lua есть привязки к популярным тулкитам.

И всё это занимает 50 МиБ.

Только что собрал у себя lujit - 200 с лишним килобайт получилось. Правда это только интерпретатор.

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

>Язык симпатичный, но пока «игрушечный».

Он не игрушечный, он встраиваемый. И довольно узко специализированный, на текущий момент(оно и к лучшему).

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

Почему бы и нет. Думаю, питон и его фанаты - занятная тема. Хотя, конечно, не полноценная замена лиспосрачу.

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

не спец в этой области, но у С++ альтарнатив походу тольку 2: Си и Ди. Второй пока слишком молод, в первом как-то не хватает нормальных абстрактных структур данных. C# это вообще не из той оперы.

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

> По-моему фраза о плохом дизайне относилась к самому питону, а не к его интерпретатору. С нею кто-то не согласен? ;)

Ну, тогда пример языка с хорошим дизайном - в студию.

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

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

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

Ну, тогда пример языка с хорошим дизайном - в студию

Ой, а можно я?

Вот самые удачные имхо:

1) Си

2) Java (эх лямбд нету, но все же)

3) Pascal

Но Си вообще непревзойденный эталон языкостроения.

dizza ★★★★★
()
Ответ на: /лицоладонь от geekless

Ну еще из нормальных Ruby, но там автор, придумав гениальный синтаксис, не осилил класс строк стандартной библиотеки и зафейлился на реализации интерпретатора. Может, лет через 10 допилят.

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

Не знаю о чем речь

BlackBox поддерживает модель графического интерфейса, основанную на составных документах, состоящих из объектов-контейнеров, различным образом комбинирующие в себе иерархию других графических объектов. Если говорить по-простому - это редактируемый GUI/он-же_тулкит с неограниченной вложенностью графических объектов. Подробности на сайте.

Только что собрал у себя lujit - 200 с лишним килобайт получилось. Правда это

только интерпретатор.

Дык, надо считать [язык+все_библиотеки+тулкит], тогда и меряться будем.

quickquest ★★★★★
()
Ответ на: /лицоладонь от geekless

Правильный вариант ответа: * Си * Лисп * Tcl

s/Лисп/Haskell/

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

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

Фанаты немало доставляют. Сегодня особенно отличился tia. О, бедные рубисты, как им досталось от него!

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

Я бы взял всё же C вместо оберона. Для высокоуровневых конструкций я не погнушался бы пользоваться макропроцессором. Если времени нет, то M4. Если время есть, то написать свой на базе какого-нибудь открытого парсера заголовочной части С, например, SWIG, opencxx, генераторов FFI для лиспа, doxygen, любого компилятора С (например, pcc). Я этого до сих пор не сделал только потому, что не было задачи.

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

Питон, Хаскель, Лисп, Ява, C#, Оберон в области рилтайма ИМХО малопригодны.

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

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

Увы! А я, вот, не могу найти совершенства.

  • Си ужасно медленно компилируется и собирается.
  • Яву переплюнул C#, но последний превратился в монстра. Плюс тяжелая виртуальная машина. Ну, на фиг.
  • (Турбо-)паскаль. Когда-то много писал на нем. Язык оставил очень приятные впечатления. Но многословен.
  • Хаскель. Нельзя так отрываться от «нечистой» реальности.
  • Питон. Вроде и прост, но чего-то постоянно не хватает. То ли лямбд, то ли скобочек.
  • Коммон лисп. Отошел от функциональной идеи. Lisp-N и необязательность TCO немного напрягают.
  • Схема. Нет единого ООП.
  • и т.д.
dave ★★★★★
()
Ответ на: комментарий от quickquest

>Дык, надо считать [язык+все_библиотеки+тулкит], тогда и меряться >будем.
Clipper 5. Однопользовательская СУБД, виртмашина, компилятор в байт-код, лямбды (хотя не знаю, обладают ли свойствами замыкания или просто анонимные функции), препроцессор с возможностью определения новых команд, eval, гуй текстового режима, кажется, даже есть декларативные языки разметки форм, но точно не помню. Вполне работал на машине 286 AT с 512 Кб памяти.

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

> Си ужасно медленно компилируется и собирается.
Необязательно пользоваться GCC. Есть другие компиляторы, например, pcc (portable C compiler) и tinycc, оба вроде на порядок быстрее gcc.

Коммон лисп. Отошел от функциональной идеи. Lisp-N и

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

У меня два языка выбора для кросс-платформенной разработки - это С и Common Lisp. Для винды также очень хорош Дельфи.

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

>Си++ ужасно медленно компилируется и собирается

fixed

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

> а поменять значение отвечающей за это переменной не судьба?
Может, я что-то не знаю в CL? Как называется эта переменная?

den73 ★★★★★
()

>Нужно ли это знать как разработчику?

После ML и его потомков, все эти языки заслуживают место на свалке истории. Sad, but true.

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

Компактность - главное преимущество BlackBox. 50 МиБ в распакованном виде мало кто может предложить

Tcl может предложить 5. REBOL - 0.5

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

как может сочетаться что-то встраиваемое со сборкой мусора

очень хорошо. повешенный на предвыделенную память менеджер кучи со сборкой мусора (в рамках системы навигации) великолепно показывает себя на железе с требованием мягкого RT

я чего-то не знаю о новых технологиях?

вполне может быть. сборщики мусора бывают разные

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

Оберон скажет: «отстаньте от меня, ракетами занимается аппаратная жёсткая логика», у которой нет «санитарного часа»:)

именно что

jtootf ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.