Re[7]: _
От: Дарней Россия  
Дата: 18.10.04 12:46
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

LVV>Algol-W — впервые в строго определенном языке появились записи.

LVV>Eiler — Эйлер так пишется? К сожалению, ничего не знаю про этот язык
LVV>PL-360 — язык высокого уровня для программирования как на ассемблере. Регистры входили в описание языка

(интересно, а чем плох макроассемблер?)

LVV>Pascal -!!!!!!!

LVV>Modula, Modula-2, Modula-3
LVV>Oberon, Oberon-2.
LVV>Это только то, что я знаю.

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

LVV>Нифига себе теоретик!!!!


И где же сейчас все эти языки?
Да, конечно, порочный круг — я понимаю. НО тем не менее, новые языки появляются и принимаются общественностью. При одном условии — если они действительно решают насущные проблемы и при этом не требуют выбросить на свалку все существующие наработки.
Значит — просто что-то было сделано не так, где-то развитие пошло не в нужном направлении.

Что касается критики C — то это выглядит просто смехотворно. Разносить язык в пух и прах за мелочи вроде = и == и при этом оставить "за кадром" кучу действительно серьезных проблем?
Возможно, паскалевская нотация выглядит немного более естественной для математика. (вопрос только — насколько много настоящих математиков среди программистов? )
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[7]: _
От: Дарней Россия  
Дата: 18.10.04 13:00
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Что и требовалось доказать. И заметьте, я Вас за язык не тянул. Вы сами согласились с Виртом в том что большинство современных программистов малограмотны.


Они достаточно грамотны, чтобы выполнять свою работу.

СГ>Из этой фразы я делаю заключение о том, что Вы не компетентны в этой области. (Вирт не имеет отношения к Delphi. Delphi создал Андерс Хейльсберг, кстати, он же создал C#. Вирт создал Pascal, Modula, Modula-2, Oberon + различные клоны Оберона в соавторстве с другими людьми, в том числе OLGA, Oberon-2, Component Pascal, Active Oberon и т.д; а также ряд операционных систем).


Ваши выводы настолько же поспешны, насколько и однобоки. Вероятно, моя некомпетентность очень сильно бы Вас утешила
Я просто привел пример единственного практически успешного творения Вирта (пусть и только в какой-то степени — его).
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[8]: _
От: Quintanar Россия  
Дата: 18.10.04 14:37
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Ваши выводы настолько же поспешны, насколько и однобоки. Вероятно, моя некомпетентность очень сильно бы Вас утешила

Д>Я просто привел пример единственного практически успешного творения Вирта (пусть и только в какой-то степени — его).

А что этого мало? Вот когда ты создашь язык, на котором будет программировать больше пары десятков человек, тогда и поговорим о теоретиках и практиках. А пока, прости, мнение Вирта на несколько порядков весомее твоего.
Re: Читать всем!!!! ОБЯЗАТЕЛЬНО!!!!
От: Dervish Россия http://www.dervish.ru
Дата: 18.10.04 17:23
Оценка: 53 (6) +1
Здравствуйте, Все, Вы писали...

[поскипано]

Вот ведь какие бурные дебаты вызвали откровения г-на Вирта...

Позвольте и мне мои пять копеек!

Друзья мои, скажите, пожалуйста, какая разница, что именно написал уважаемый г-н Вирт? Разве это окажет влияние на индустрию программного обеспечения? Сейчас окажет? Потом окажет? Разве можно "столкнуть" с выбранного направления уже прилично разогнавшийся паровозик?

Споры о достоинствах и недостатках тех или иных платформ (языков) мне жутко напоминают религиозные споры (между протестантами и католиками, между исламистами и христианами, между идолопоклонниками и атеистами — тоже вера, разве нет?). Эти споры на почве веры всегда были самыми кровавыми и абсолютно бессмысленными, поскольку недоказуемо само существование Всевышнего.

Точно так же и в индустрии ПО. Вы заметили, как именно называется раздел форума для таких споров на RSDN? Очень точное название, "Священные войны"! Священные!

А между тем, в Москве, например, действует закон, согласно которому улицам можно давать названия знаменитых людей только по прошествии 10 лет с момента их смерти (правда, в отношении Кадырова сами же власти этот закон нарушили и не поморщились, но это уже совсем другая история).

На мой взгляд, очень хороший закон. Большое видится на расстоянии. Ведь через 100 лет неизвестно, будут ли вообще потомки помнить про С++? Будут ли помнить про Паскаль (Модулу, Оберон и прочая и прочая)? Или это будет таким же дремучим раритетом для них, как для нас сейчас языки программируемых калькуляторов?

Впервые с Паскалем мне довелось познакомиться в 1984 году, когда на втором курсе института мне попал в руки учебник по этому языку и методам объектно-ориентированного программирования. До этого мне приходилось сталкиваться с ассемблером, Фортраном и Бейсиком, причём именно в такой последовательности. Вы представляете, насколько я был поражён Паскалем? Я зачитывался этой книжкой, несколько раз перечитывал её, затёр от корки до корки. И это при том, что у меня в это время не было компилятора под рукой. Это была настоящая программистская любовь!

Но прошло время. Прошла любовь, завяли помидоры. На смену старому увлечению пришло новое. Было увлечение Адой (до сих пор дома книжки лежат по ней). Перечитал море литературы по самым разным языкам, многие из них искренне нравились. Кстати, интересно наблюдать, как знакомые конструкции одного языка проявляются в других. Скажем, регэкспы Перла вызвали явное узнавание Снобола-4 (не берусь утвержать, что именно оттуда пришло, но, чёрт возьми, до чего же похоже!).

И сейчас у меня есть стойкое убеждение: не бывает "плохих" и "хороших" языков (сред программирования). Каждый язык предназначен для своей цели, каждая платформа программирования имеет свою нишу в индустрии. Иначе, она бы не выжила. Разве мало примеров мёртворожденных систем программирования?

А такие люди как г-н Вирт (искренне мною уважаемый) выполняют, на самом деле, важную функцию: пусть в небольших пределах, но они всё-таки корректируют главную линию развития индустрии. Да, паровозик не столкнуть, но хоть чуть-чуть повернуть его. Сделать так, чтобы оператор присваивания записывался как :=, а не как просто = и то уже будет неплохо. И не нужно его (Вирта) строго за это судить, он имеет на это право.

Вот почему лично моё отношение к статье г-на Вирта таково: принято к сведению. Ни больше и ни меньше.

И напоследок. Друзья, давайте не будем тратить своё время на священные войны, нам ведь ещё столько предстоит сделать...
... << RSDN@Home 1.1.4 beta 3 rev. 194>>
Re[9]: _
От: Дарней Россия  
Дата: 19.10.04 04:04
Оценка:
Здравствуйте, Quintanar, Вы писали:

Q>А что этого мало? Вот когда ты создашь язык, на котором будет программировать больше пары десятков человек, тогда и поговорим о теоретиках и практиках. А пока, прости, мнение Вирта на несколько порядков весомее твоего.


поживем — увидим
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[2]: Читать всем!!!! ОБЯЗАТЕЛЬНО!!!!
От: LaptevVV Россия  
Дата: 19.10.04 04:28
Оценка:
Здравствуйте, Dervish, Вы писали:

D>Друзья мои, скажите, пожалуйста, какая разница, что именно написал уважаемый г-н Вирт? Разве это окажет влияние на индустрию программного обеспечения? Сейчас окажет? Потом окажет? Разве можно "столкнуть" с выбранного направления уже прилично разогнавшийся паровозик?

Уже оказал. Не было б паскаля — сидели бы мы сейчас на Алголе-68! Блестящий язык, но как же сложно с него полного писать транслятор! Заслуга Вирта хотя бы в том, что он доказал, что транслятор может быть простым! Недаром он отказался войти в комитет по созданию нового алгола! И вместо него создал Паскаль!

D>И сейчас у меня есть стойкое убеждение: не бывает "плохих" и "хороших" языков (сред программирования). Каждый язык предназначен для своей цели, каждая платформа программирования имеет свою нишу в индустрии. Иначе, она бы не выжила. Разве мало примеров мёртворожденных систем программирования?


D>А такие люди как г-н Вирт (искренне мною уважаемый) выполняют, на самом деле, важную функцию: пусть в небольших пределах, но они всё-таки корректируют главную линию развития индустрии. Да, паровозик не столкнуть, но хоть чуть-чуть повернуть его. Сделать так, чтобы оператор присваивания записывался как :=, а не как просто = и то уже будет неплохо. И не нужно его (Вирта) строго за это судить, он имеет на это право.

D>Вот почему лично моё отношение к статье г-на Вирта таково: принято к сведению. Ни больше и ни меньше.

D>И напоследок. Друзья, давайте не будем тратить своё время на священные войны, нам ведь ещё столько предстоит сделать...

Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[12]: Читать всем!!!! ОБЯЗАТЕЛЬНО!!!!
От: Xenia США  
Дата: 19.10.04 04:51
Оценка:
Здравствуйте, Serginio1, Вы писали:

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



WH>> В С++ таких проблем нет. Ибо всегда сравниваются объекты. Указатели тоже объекты.

S> Согласно принципам ООП
S>f*=(a/x+5)*b-(y*c-d/5)/e-z;

S>Ну зачем так

S>f= f.mull( a.div(x).add(5).mull(b).sub( y.mull(c).sub(d.div(5)) ).div(e).sub(z) )

S> Чуть длинее, но понимание это уже дело привычки.


Вот уж действительно — человек ко всему привыкает
Re[3]: Читать всем!!!! ОБЯЗАТЕЛЬНО!!!!
От: Дарней Россия  
Дата: 19.10.04 05:32
Оценка:
Здравствуйте, LaptevVV, Вы писали:
LVV>Уже оказал. Не было б паскаля — сидели бы мы сейчас на Алголе-68!

а как же K&R?

LVV>Блестящий язык, но как же сложно с него полного писать транслятор!


Да уж.. хотя кажется мне, у С++ с этим всё намного хуже
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[2]: Читать всем!!!! ОБЯЗАТЕЛЬНО!!!!
От: Дарней Россия  
Дата: 19.10.04 05:38
Оценка:
Здравствуйте, Dervish, Вы писали:

D>Споры о достоинствах и недостатках тех или иных платформ (языков) мне жутко напоминают религиозные споры (между протестантами и католиками, между исламистами и христианами, между идолопоклонниками и атеистами — тоже вера, разве нет?).


Могу из этих слов предположить, что Вы сами являетесь как раз не атеистом

D>На мой взгляд, очень хороший закон. Большое видится на расстоянии. Ведь через 100 лет неизвестно, будут ли вообще потомки помнить про С++?


Наверняка будут. В качестве примера, как не надо проектировать языки :-D

D>Впервые с Паскалем мне довелось познакомиться в 1984 году, когда на втором курсе института мне попал в руки учебник по этому языку и методам объектно-ориентированного программирования. До этого мне приходилось сталкиваться с ассемблером, Фортраном и Бейсиком, причём именно в такой последовательности. Вы представляете, насколько я был поражён Паскалем? Я зачитывался этой книжкой, несколько раз перечитывал её, затёр от корки до корки. И это при том, что у меня в это время не было компилятора под рукой. Это была настоящая программистская любовь!


Аналогичная последовательность — хотя Паскаль особого впечталения не произвел. А вот C — это да

D>И сейчас у меня есть стойкое убеждение: не бывает "плохих" и "хороших" языков (сред программирования). Каждый язык предназначен для своей цели, каждая платформа программирования имеет свою нишу в индустрии. Иначе, она бы не выжила. Разве мало примеров мёртворожденных систем программирования?


Главное, чтобы эта цель была правильно поставлена

D>Сделать так, чтобы оператор присваивания записывался как :=, а не как просто = и то уже будет неплохо.


Вот уж не надо, спасибо-спасибо, как-нибудь без этого

D>И напоследок. Друзья, давайте не будем тратить своё время на священные войны, нам ведь ещё столько предстоит сделать...


И то верно... надо найти наконец достаточно времени и проверить некоторые идеи
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[2]: *
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 19.10.04 06:58
Оценка: :)
Здравствуйте, Dervish, Вы писали:

D>Друзья мои, скажите, пожалуйста, какая разница, что именно написал уважаемый г-н Вирт? Разве это окажет влияние на индустрию программного обеспечения? Сейчас окажет? Потом окажет? Разве можно "столкнуть" с выбранного направления уже прилично разогнавшийся паровозик?


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

Кроме того, программирование — это важнейшая дисциплина постиндустриальной эпохи, следовательно в 21 веке программистов на нашей планете будет жить больше чем когда-либо до этого, а значит в 21 веке ожидается написание такого огромного количества всякого разного софта, какого раньше еще никто не видел. Кто будет писать это потрясающее воображение количество софта? Его писать будут те, кто сейчас еще ходит в школу. Кем они вырастут: грамотными специалистами во главу угла ставящие надежность и дисциплину или "кул-хацкерами" которым лишь бы повыпендриваться, а потом хоть трава не расти?

Вот именно, что сейчас отрасль ПО всего лишь "разогнавшийся паровозик", а через 50 лет, этот паровозик экспоненциально вырастет до супер-гига-архипаровозища...
Re[3]: *
От: FR  
Дата: 19.10.04 07:50
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:


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


Объясни пожалуйста чем именно Оберон лучше C++.
И почему именно Оберон, ведь и без него много альтернатив.
Может лучше учить Ocaml или Python или ... ?

СГ>Кроме того, программирование — это важнейшая дисциплина постиндустриальной эпохи, следовательно в 21 веке программистов на нашей планете будет жить больше чем когда-либо до этого, а значит в 21 веке ожидается написание такого огромного количества всякого разного софта, какого раньше еще никто не видел. Кто будет писать это потрясающее воображение количество софта? Его писать будут те, кто сейчас еще ходит в школу. Кем они вырастут: грамотными специалистами во главу угла ставящие надежность и дисциплину или "кул-хацкерами" которым лишь бы повыпендриваться, а потом хоть трава не расти?


А что грамотность специалиста так сильно зависит от используемого языка?

СГ>Вот именно, что сейчас отрасль ПО всего лишь "разогнавшийся паровозик", а через 50 лет, этот паровозик экспоненциально вырастет до супер-гига-архипаровозища...


Через 50 лет мир может так сильно изменится, что я не решился бы прогнозировать на такой срок
... << RSDN@Home 1.1.3 stable >>
Re[4]: Читать всем!!!! ОБЯЗАТЕЛЬНО!!!!
От: Dervish Россия http://www.dervish.ru
Дата: 19.10.04 07:55
Оценка:
Здравствуйте, Дарней, Вы писали:

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

LVV>>Уже оказал. Не было б паскаля — сидели бы мы сейчас на Алголе-68!
LVV>>Блестящий язык, но как же сложно с него полного писать транслятор!

Д>Да уж.. хотя кажется мне, у С++ с этим всё намного хуже


Это вам только кажется, уверяю вас! Наверное вы не видели "Пересмотренное сообщение об Алголе-68". Читать это просто невозможно.

Что касательно компилятора, то мне доводилось читать мотивированное мнение специалиста по теории компиляции, который утверждал, что для компиляции Алгола-68 требуется минимум три прохода. А для С++, если не ошибаюсь, вполне достаточно одного. Не стопроцентный, но всё же показатель, вы не находите?
... << RSDN@Home 1.1.4 beta 3 rev. 194>>
Re[5]: Читать всем!!!! ОБЯЗАТЕЛЬНО!!!!
От: Дарней Россия  
Дата: 19.10.04 08:58
Оценка:
Здравствуйте, Dervish, Вы писали:

D>Это вам только кажется, уверяю вас! Наверное вы не видели "Пересмотренное сообщение об Алголе-68". Читать это просто невозможно.


нет, не видел... хотя это наверно и к лучшему?

D>Что касательно компилятора, то мне доводилось читать мотивированное мнение специалиста по теории компиляции, который утверждал, что для компиляции Алгола-68 требуется минимум три прохода. А для С++, если не ошибаюсь, вполне достаточно одного. Не стопроцентный, но всё же показатель, вы не находите?


Совершенно верно — одного. Другой вопрос только, какой ценой это достигается.
Лучше уж многопроходный компилятор, чем та порнография, которая существует сейчас в C++. Куча усилий уходит просто на то, чтобы уменьшить количество связей между файлами при компиляции. А уж скорость оной — это просто песня. Время полной компиляции проекта в сутки — это еще не предел Даже "заплатки" в виде предкомпилированных хэдеров не всегда помогают.
Ну и это не говоря еще о тех конструкциях языка, которые при одинаковой нотации могут обозначать совершенно разные вещи.
В общем, слишком велик груз прошлого, который тянет C++ на дно Вот только Оберона я в нашем будущем все равно не вижу. Скорее уж — C#

PS Кстати, довольно забавный факт. Не очень много знаю про Active Oberon, поэтому могу в чем то и ошибаться. Но похожая концепция — активные объекты — широко используется в ОС Symbian. Что самое интересное, реализованы они там поверх (кто бы мог подумать) — C++ Хотя этот диалект C++ во многом отличается от стандартного. Ну а для переключения контекстов там используются fibers. И даже придумывать под активные объекты специальное железо не понадобилось, как это делают некоторые особо рьяные реформаторы
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[7]: _
От: WolfHound  
Дата: 19.10.04 09:02
Оценка: 15 (4) +2
Здравствуйте, Сергей Губанов, Вы писали:

Д>>Я как раз и написал, что с EBNF мало кто знаком, уж тем более — среди начинающих.

СГ>Что и требовалось доказать. И заметьте, я Вас за язык не тянул. Вы сами согласились с Виртом в том что большинство современных программистов малограмотны.
1)Все начинающие программисты малограмотны.
2)Я не вижу объективных причин благодаря которым знание EBNF помогает писать программы. Ибо это специфические знания необходимые при разработке компиляторов.
Что действительно нужно всем программистам так это знание алгоритмов и паттернов.

Д>>единственный стоящий упоминания (в практическом плане) это Pascal, точнее — Delphi

СГ>Из этой фразы я делаю заключение о том, что Вы не компетентны в этой области. (Вирт не имеет отношения к Delphi.
Дельфи прямой потомок паскаля. Болие того язык этой среды довольно долго назывался object-pascal'ем.
Короче как ни крути но в дельфе очень много Виртовского.
СГ>Delphi создал Андерс Хейльсберг, кстати, он же создал C#.
ИМХО зря его к .NET и C# вобще пустили. В этой системе совершенно не учтена необходимость детерминированой финализации. А она необходима как не крути. И не надо мне расказывать про всякие чисто теоритические поделки типа оберонОС где все на ГЦ. Ну не работает ГЦ на распределенных системах. Ну ни как.
Да и реалтайм ни кто не отменял, а он не совместим с ГЦ. Ибо реалтайм это гарантированое время отклика, а когда начнет работать ГЦ и когда он закончит предсказать не возможно тут уже ни о каких гарантиях говорить нельзя.
СГ>Вирт создал Pascal, Modula, Modula-2, Oberon + различные клоны Оберона в соавторстве с другими людьми, в том числе OLGA, Oberon-2, Component Pascal, Active Oberon и т.д; а также ряд операционных систем).
Один мой друг тоже создал несколько языков и написал операционку... И что с того? Этим занимаются все кому не лень.
Вирт застрял на уровне чуть выше ассемблера и ГЦ ему не поможет. Сложность современных систем такова что этого мягко говоря не достаточно.

Короче ИмеюМнениеХренОспоришь:
Сейчас нужны языки которые позволяют как можно сильнее повышать абстракцию. И старичек С++ со своими тупыми шаблонами, дебильными макросами и прочими Сишными дебилизмами и анахренизмами справляется с этим на порядок лучше любой Виртовской поделки. А рассуждения типа = vs == это ламерство!
... << RSDN@Home 1.1.4 rev. 185 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: *
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 19.10.04 09:47
Оценка:
Здравствуйте, FR, Вы писали:

FR>Объясни пожалуйста чем именно Оберон лучше C++.


Своей целостностью.

FR>И почему именно Оберон, ведь и без него много альтернатив.


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

FR>А что грамотность специалиста так сильно зависит от используемого языка?


Мы думаем на том же языке что и говорим. Корявый язык принуждает коряво думать. Грамотность связана с тем как человек думает.
Re[16]: Читать всем!!!! ОБЯЗАТЕЛЬНО!!!!
От: vdimas Россия  
Дата: 19.10.04 09:55
Оценка: 1 (1)
Здравствуйте, Kh_Oleg, Вы писали:

K_O>Е-мое, "и эти люди запрещают мне ковыряться в носу?!"

K_O>И это все ради того, чтобы вместо Add писать +, опускать индексы у массивов и не писать явно оператор цикла?!

Есть такое правило проектирования — интерфейс важнее реализации.
Реализация однократна, а интерфейс может быть использован несчетное количество раз.
Re[8]: _
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 19.10.04 10:29
Оценка: 14 (1) :)
Здравствуйте, WolfHound, Вы писали:

WH>2)Я не вижу объективных причин благодаря которым знание EBNF помогает писать программы. Ибо это специфические знания необходимые при разработке компиляторов.


Все знания о том что такое EBNF умещаются на одной странице. Это элементарщина которую в школе надо давать, а Вы о ней говорите как о высокой науке.


WH>ИМХО зря его к .NET и C# вобще пустили.


Вас не спросили!


WH>Один мой друг тоже создал несколько языков и написал операционку... И что с того?


Ну и как, создав их он понял как надо их грамотно создавать? Скольких студентов и аспирантов он научил тому как надо грамотно создавать языки и операционки? Кстати, Питер Мюллер (создатель Aos) был аспирантом у Вирта и Гуткнехта.


WH>Вирт застрял на уровне чуть выше ассемблера и ГЦ ему не поможет.


Сами поняли что сказали?

WH>Короче ИмеюМнениеХренОспоришь:

WH>Сейчас нужны языки которые позволяют как можно сильнее повышать абстракцию. И старичек С++ со своими тупыми шаблонами, дебильными макросами и прочими Сишными дебилизмами и анахренизмами справляется с этим на порядок лучше любой Виртовской поделки. А рассуждения типа = vs == это ламерство!

Правильно, надо повышать абстракцию. Вот Оберон ее и повышает. Например, еще со времен Модулы, в этом языке есть такая абстракция как "модуль" — это не только единица компиляции, но и динамически линкующаяся и загружаемая единица исполнения (в Си++ такой абстракции нет и не будет). Еще пример высокого уровня абстракции — "активный объект" (в Си++ такой абстракции нет и не будет). А Вы только посмотрите сколько новых абстракций в Zonnon — Оберон для .NET. Одни DEFINITION чего стоят. А еще, совсем убойная для всех рептилоидов вещь, там, представьте себе, какой ужас, протокол обмена сообщениями между двумя активностями пишется прямо в EBNF, то есть тот кто не знает EBNF не сможет писать программы на языке Zonnon!

11.3 Protocol EBNF
The definition of an activity can include a formal syntax specification of a communication protocol in EBNF as a modifier to an enumeration type which defines the alphabet of terminal tokens of the syntax. The name of an activity and its enumeration type constitute the activity’s signature. Note that in EBNF protocol specifications the communication of an item from the callee to the caller is prefixed by a ‘?’.

definition Fighter;
  activity (* Syntax of the protocol, in this case it is recursive too *)
    { fight    = { attack ( { defense attack } | RUNAWAY [ ?CHASE] | KO | fight ) }.
      attack   = ATTACK strike.
      defense  = DEFENSE strike.
      strike   = bodypart [ strength ].
      bodypart = LEG | NECK | HEAD.
      strength = integer. }
      Karate   = (RUNAWAY, CHASE, KO, ATTACK, DEFENSE, LEG, NECK, HEAD);
end Fighter.

object Opponent implements Fighter;
  activity Karate implements Fighter.Karate;
    var t: object;

    procedure fight;
    begin
      while t is ATTACK do
        receive t;
        while t is DEFENSE do receive t; strike
          if t is ATTACK then strike else halt(13) end
        end;
        if t is RUNAWAY then
          if (*not exhausted*) then send Karate.CHASE end;
          return (* fight over *)
        elsif t is KO then return (* fight over *)
        elsif t is ATTACK then fight (* recursion, continue the fight *)
        else halt(13) (* protocol error *)
        end
      end
    end fight;

    procedure strike;
    begin
      if (t is LEG) or (t is NECK) or (t is HEAD) then
        receive t;
        if t is integer then (* unusual strength *) receive t end
      end
    end strike;

    begin (* Karate*)
      receive t;
      fight
    end Karate;

end Opponent.


object Challenger;
  import Opponent, Fighter;
  var opp: Opponent; f: Fighter.Karate;
  begin
    opp := new Opponent; (* create opponent *) …
    f := new opp.Fighter.Karate; (* create dialog *)
    send Fighter.Karate.ATTACK => f; … (* fight according to the dialog protocol *)
    ... 
  
end Challenger.


Спрашивается, а как может повысить уровень абстракции старичек С++ со своими тупыми шаблонами, дебильными макросами и прочими Сишными дебилизмами и анахренизмами?
Re[9]: _
От: Дарней Россия  
Дата: 19.10.04 10:52
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Все знания о том что такое EBNF умещаются на одной странице. Это элементарщина которую в школе надо давать, а Вы о ней говорите как о высокой науке.


Другой вопрос — насколько много неспециалистов смогут ее понять и применить на практике. Если для них даже концепция переменной невообразимо сложна

СГ>Например, еще со времен Модулы, в этом языке есть такая абстракция как "модуль" — это не только единица компиляции, но и динамически линкующаяся и загружаемая единица исполнения (в Си++ такой абстракции нет и не будет).


э.... DLL?

СГ>Еще пример высокого уровня абстракции — "активный объект" (в Си++ такой абстракции нет и не будет).


Забавно, что как раз недавно я про это писал
http://gzip.rsdn.ru/Forum/Message.aspx?mid=858130&amp;only=1
Автор: Дарней
Дата: 19.10.04
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[5]: *
От: FR  
Дата: 19.10.04 10:53
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Здравствуйте, FR, Вы писали:


FR>>Объясни пожалуйста чем именно Оберон лучше C++.


СГ>Своей целостностью.


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

FR>>И почему именно Оберон, ведь и без него много альтернатив.


СГ>А какие еще альтернативы среди модульных императивных языков со строгой статической типизацией, безопасностью и т.д.? Оберон минимален и полон, его можно рассматривать как ОО ассемблер. Все остальные (предметно-ориентированные) языки можно строить как его расширения.


Если поискать то найдется наример "D" http://www.digitalmars.com/d/index.html
да и императивное подмножество Ocaml тоже удовлетворяет тому что ты перечислил.

FR>>А что грамотность специалиста так сильно зависит от используемого языка?


СГ>Мы думаем на том же языке что и говорим. Корявый язык принуждает коряво думать. Грамотность связана с тем как человек думает.


А ты думаешь что все люди думают одинаково?
Да еще почему практически все человеческие языки такие корявые и нелогичные? Может все-таки это как раз и естественно для человеческого мышления? И может именно поэтому корявый и не логичный, но выразительный C++ стал таким массовым?
... << RSDN@Home 1.1.3 stable >>
Re[10]: _
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 19.10.04 10:59
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>э.... DLL?


Что DLL? Вот именно, что "э....". В самом языке Си++ такой абстракции нет, а в Оберонах MODULE — есть еще со времен Модулы. Вот Вам и высокая абстракция!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.