Ada_Ru форум

Обсуждение языка Ада

Re: Re: [ada_ru] ????????

Оставить новое сообщение

Сообщения

Cyril Sazonov
Re: Re: [ada_ru] ????????
2007-05-21 07:59:21

Hello!

 

Хоть убейте, но не понимаю я, зачем *всем* в обязательном

порядке знания про кодогенерацию.

 

а что, есть другой способ понять что и как работает? :)

 

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

 

Хотя, конечно, построение компиляторов и кодогенерация -- очень интересная тема.

 

язык вообще без привязки к маш коду, то придется выбрать ассемблер. Да, на асме скорость программирования будет раз в 6 меньше,

примерно во столько-же раз больше ошибок, но зато хоть как-то будет работать, причем с использованием всей мощи процессора, а чисто

 

Только в этом коде потом _другие_ будут разбираться со стократными трудозатратами по сравнению с ЯВУ.

 

Но это уже совсем другая история - по сути им не требуется чтобы вообще что-то работало, поэтому и предлагаю подсунуть что-то что извращать не жалко, паскаль например.

 

Не надо спиритических сенсов! Принесите цветы на могилу дедушке, снимите шляпу, а душу его не тревожте. У него есть две прекрасные умные внучки -- Ada и Modula-2. Они пусть и пашут, благо живы.

 

Pascal безнадёжно устарел, кроме того над чистым Pascal'ем потрудились пристраивая к нему совершенно чуждые вещи, в результате чего доступные сейчас реализации потеряли изначальную строгость и логичность _абсолютно_ необходимые для обучения.

 

 

Есть идея. А что если сделать такое разделение по числу часов?

Допустим мини-курс на паскале(для тех кто учит ради галочки),

 

Есть прекрасная идея, ещё аж примерно 1972..1975 годов, -- PDF ( Programm Design Language ), абсолютно абстрактный, достаточно строго определённый язык с алгольного дерева ( как и Pascal, Modula, Ada ). В принципе, в этом качестве пойдёт любой достаточно хорошо структурированный ЯВУ, в том числе и Ada.

 

А нужные для практики тонкости конкретного языка дожимаются соответствующим параллельным ( синхронным (?) ) курсом.

 

 

примеры на Ада привести думаю можно... Даже нужно :) Причем хитро, в сравнении с другими языками, с этаким хитрым намеком - типа так-то оно все впринципе одно и то-же, но прочуйствуйте разницу... ;} Как идейка?

 

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

 

Кое-кто из моих начальников матом ругается на выбор C++ в качестве рабочего инструмента, а сделать уже ничего не может , наработана такая карма, что и за сто жизней на разгрести. А большая часть программеров просто ничего кроме C не знает и, опять же, знать не хочет...

 

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

остальную нечисть надо гнать любыми способами. Либо хоть

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

 

Знание особенностей кодогенерации не помогает писать хорошо работающие программы. К сожалению. Я в этом убедился на своей шкуре. Мне кто-то из моих нынешних коллег впаривал, на моё удивлнение по поводу некоторых использованных программных структур, о том, что, мол, это извращение даёт более быстрый код, а это для нас критично. Но я потом выгреб из этих модулей такой алгоритмический бред высокого уровня, что никакой низкоуровневой оптимизацией не нагонишь ( в смысле скорости программы в целом ). Всё должно быть сбалансировано. Техника в руках дикаря... Лучше б они об этом низком уровне вообще ничего не знали -- легче было б глюки выгребать.

 

Это абсолютно правильный подход -- допуск в более высоким ( глубоким ) ступеням знания, только для посвящённых ( правильно обученных основам ).

 

Sinserely yours Cyril Sazonov

Кирилл Сазонов пишет:

Но это уже совсем другая история - по сути им не требуется чтобы

вообще что-то работало, поэтому и предлагаю подсунуть что-то что

извращать не жалко, паскаль например.

Не надо спиритических сенсов! Принесите цветы на могилу дедушке, снимите шляпу, а душу его не тревожте. У него есть две прекрасные умные внучки -- Ada и Modula-2. Они пусть и пашут, благо живы.

Мне даже уже интересно стало, про генеалогию... :) Модула-2 - дочь Паскаля, это однозначно. Т.к. Ада того же ранга язык (и времени создания), то и Ада тоже дочь. А у Модулы-2, тем не менее есть еще ребенок 1988 г. р. :):):) А есть ещё Модула-3... э-э-э... дочь Модулы-2... от других отцов.... :):):):):)

 

Лучше б они об этом низком уровне вообще ничего не знали -- легче было б глюки выгребать.

Понимание "как работает?" - нужно. Однако очень хорошо, когда язык ограничивает это "понимание" (ну, к примеру, запрет адресной арифметики). Правда сразу визги раздаются: "Так это ж нарушение свободы среди бела дня!!!"

 

 

___________________________________________________________ All new Yahoo! Mail "The new Interface is stunning in its simplicity and ease of use." - PC Magazine http://uk.docs.yahoo.com/nowyoucan.html

Boris wrote:

 

Лучше б они об этом низком уровне вообще ничего не знали -- легче было б глюки выгребать.

 

Понимание "как работает?" - нужно. Однако очень хорошо, когда язык ограничивает это "понимание" (ну, к примеру, запрет адресной арифметики). Правда сразу визги раздаются: "Так это ж нарушение свободы среди бела дня!!!"

 

http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

 

Один авторитет пишет, что на CS-специальности однозначно полезно учить

Си и Лисп.

 

В школьном компьютере OLPC используется Python и Smalltalk.

 

Я также считаю, что очень неплохо ознакомиться хотя бы по верхам

с Ruby, Haskell и Erlang. Ну ещё с Forth и TCL.

Ну и с Unix-shell тоже непременно :>

 

Ada, несомненно, весьма прогрессивная технология для 70-х-80-х годов.

Её безусловно стОит изучать в курсе инженерной истории компьютерных

технологий, знать её место в генеалогическом дереве в районе Алгола и

Паскаля. Но стОит ли в наше время выпускать из ВУЗа именно

Ада-программера ? Сильно сомневаюсь. Сейчас для каждой позитивной фичи

Ады можно подыскать технологию, в которой та же фича реализована короче и понятнее для изучения.

 

Даже Пентагон понял, что сказать всем поездам "стой, раз-два!"

и перевести их всех на единую ширину колеи у них не получится.

Не знаю, погубит ли это его in the long run :>

Ada, несомненно, весьма прогрессивная технология для 70-х-80-х годов.

Е ёбезусловн остОи тизучат ь вкурс еинженерно йистори икомпьютерны

хтехнологи, йзнат ье ёмест о вгенеалогическо мдерев е врайон еАлгол а

иПаскал. яН остОи тл и внаш еврем явыпускат ьи зВУЗ аименн

оАд-апрограммер ? аСильн осомневаюс. ьСейча сдл якаждо йпозитивно йфич

иАд ыможн оподыскат ьтехнологи, ю вкоторо йт аж ефич ареализован акороч е ипонятне едл яизучени.

 

я Ака кбыт ь стаким ифичам, ика:

 

- квысокоуровневы есредств аработ ы сасинхронным ипроцессам;

- имодульност (ьн епсевд-омодульност ьС-ишны хинклюдо, в анормальна,

ячеловеческа ямодульност);

- ь, инаконе, цсамо еглавно - еподдержк анаписани янадежног окод

а ипрепятстви енаписани юненадежног окод?

Sergey I. Rybin wrote:

Ada, несомненно, весьма прогрессивная технология для 70-х-80-х годов.

Её безусловно стОит изучать в курсе инженерной истории компьютерных

технологий, знать её место в генеалогическом дереве в районе Алгола и

Паскаля. Но стОит ли в наше время выпускать из ВУЗа именно

Ада-программера ? Сильно сомневаюсь. Сейчас для каждой позитивной фичи

Ады можно подыскать технологию, в которой та же фича реализована короче и понятнее для изучения.

 

А как быть с такими фичами, как:

 

- высокоуровневые средства работы с асинхронными процессами;

 

Erlang. На этом языке Ericsson пишет софтик для своих АТС.

(PSTN-switchей). СтОит отказаться от императивщины,

от одновременной модификации общих структур данных,

как "высокоуровневые средства" становятся в большинстве своём

не нужными, и из средств синхронизации остаётся разве что обмен

данными через типизированные пайпы.

 

- модульность (не псевдо-модульность Си-шных инклюдов, а нормальная,

человеческая модульность);

 

Уж не знаю, какая у нас нынче модульность нормальная и

человеческая. Раздельная компиляция есть везде, где есть

компиляция вообще. Централизованные схемы хранения и именования

модулей тоже есть куда ни поглядишь.

Параметризированные модули ? Ну, в этом, возможно,

Ада где-то местами получше, чем C++. Но с другой стороны,

если отказаться от строгой типизации, то польза от них

становится условной.

 

Ах да. В Smalltalke и Erlange есть механизмы замены модулей без

прекращения работы программы. Вот это стоило бы изучить ! :>

 

- и, наконец, самое главное - поддержка написания надежного кода

и препятствие написанию ненадежного кода?

 

Отказ от императивщины. Когда вычисления ведутся (в основном)

без сайд-эффектов, т.е. новые данные только порождаются из

старых, а не возникают как модифицированные старые, сразу у нас

появляется куча благ, в частности, существенно облегчается

верификация программ.

 

Целочисленные переполнения ? Отказ от строгой типизации.

В Python, Ruby, Smalltalk, Erlang используются целые числа

поризвольной точности. Что до прочих исключений, то они

весьма активно и регулярно бросаются и могут быть обработаны

во всех этих языках (деление на ноль, динамическое

несоответствие типов, нехватка памяти, сетевые отказы и

тайм-ауты, отказы в доступе от системы безопасности и пр.).

Ну а в Haskell, например, довольно глубокие умозаключения

и предупреждения могут быть выданы ещё на этапе компиляции.

 

Кстати, в Erlang встроены средства организации распределённых

и отказоустойчивых вычислений, например, переключение на

резервный узел сети, перезапуск упавшего процесса, всё та же

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

 

 

Это очень полезно - посмотреть за пределы алголоподобных языков.

Открываются кое-какие любопытные возможности.

Особенно это полезно для студентов, как я считаю.

21.05.07, Wladimir Mutel'<[email protected]> написал(а):

Sergey I. Rybin wrote:

...

Erlang. На этом языке Ericsson пишет софтик для своих АТС.

 

кстати wings3d вроде на эрланге (редактор 3х-мерный)

 

но что-то от его синтаксиса я не в восторге...

 

...

Ах да. В Smalltalke и Erlange есть механизмы замены модулей без

прекращения работы программы. Вот это стоило бы изучить ! :>

 

еще можно посмотреть на PHP и PERL - наверняка и там есть че-нить интересное...

 

вот только учить эти песочницы ради 10 строчек программ для сайта

нет ни времени ни желания, а других применений этим песочницам я не вижу.

 

...

Целочисленные переполнения ? Отказ от строгой типизации.

 

ну зачем отказ-то?

Никто же не запрещает определить новые типы на базе хоть списков.

(в reduce есть такой модуль произвольной точности)

 

В Python, Ruby, Smalltalk, Erlang используются целые числа

поризвольной точности. Что до прочих исключений, то они

 

я бы лучше смотрел в сторону REDUCE - пока это пожалуй единственная

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

(между прочим одна из первых систем, 1960х гг начала разработки)

 

весьма активно и регулярно бросаются и могут быть обработаны

во всех этих языках (деление на ноль, динамическое

несоответствие типов, нехватка памяти, сетевые отказы и

 

reduce и вообще прямо формулы в общем виде может щелкать,

типы ему в общем-то пофигу, всмысле что ошибки не будет,

просто выдаст выражение в общем виде и все

 

...

Кстати, в Erlang встроены средства организации распределённых

и отказоустойчивых вычислений, например, переключение на

резервный узел сети, перезапуск упавшего процесса, всё та же

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

 

кстати. У меня уже давно есть идея - а почему бы все эти фичи

не написать просто в виде библиотек, для Ада, например?

Тем более что реализация всяких лиспов и тп в общем-то не большая...

 

Скажем сделать библиотеки в стиле и с функциями того-же лиспа,

PHP, перла и тд и тп. Тогда и писать можно будет с человеческим

синтаксисом, и все вкусные фичи использовать. Резервирование это

тоже скорее просто идея, реализацию в библиотеках можно прикрутить хоть куда...

(заменить все хоть включая системные модули в Ада не проблема)

Как идейка?

 

 

Это очень полезно - посмотреть за пределы алголоподобных языков.

 

я называю это алгоритмическими языками.

(Тот-же reduce ближе всех к алголу-60 :) )

Вот пролог (и немного лисп) уже языки другого типа.

(yacc и тп из этой-же серии, только извращенные песочницы,

по мне дак лучше либо заменить их библиотеками для Ада с алгоритмическим

подходом, либо такие задачи решать на чем-то не алг вроде пролога)

 

Все что делают другие алгоритмические языки делает и Ада,

практически один-в-один по возможностям, но в Ада хорошо продуманы

некоторые "тонкости", так что для практики она подходит лучше,

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

все дело как всегда в "мелочах".

 

Проще говоря, у меня пока подход такой - все алгоритмическое

прекрасно заменит Ада, но не надо на алг Ада пытаться пропихнуть

туда где нужен другой подход, то есть возможно стоит поискать что-то

еще для таких задач(если конечно не удастся это все сделать в виде

библиотек для той-же Ады, ведь впринципе можно хоть реализацию

самого пролога как либу прилинковать :) ) в дополнение к Ада.

Ну и, конечно, DSL.

 

Открываются кое-какие любопытные возможности.

Особенно это полезно для студентов, как я считаю.

 

конечно, про такие вещи как лисп или форт надо бы знать.

Но это правда уже даже немного другой раздел, даже наверно

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

но такое конечно интересно и полезно. (для тех кому интересно программирование

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

но если кому-то станет интересно почему сделано именно так а не иначе,

и как вообще может быть по другому, то такой материал будет конечно полезен.

Как обязательным его наверно стоит включать только для тех у кого

наука в области

программирования специальность, для остальных только в случае интереса)

 

Vladimir

21.05.07, Sergey I. Rybin<[email protected]> написал(а):

> Ada, несомненно, весьма прогрессивная технология для 70-х-80-х годов.

> Её безусловно стОит изучать в курсе инженерной истории компьютерных

> технологий, знать её место в генеалогическом дереве в районе Алгола и

> Паскаля. Но стОит ли в наше время выпускать из ВУЗа именно

> Ада-программера ? Сильно сомневаюсь. Сейчас для каждой позитивной фичи

> Ады можно подыскать технологию, в которой та же фича реализована короче

> и понятнее для изучения.

 

А как быть с такими фичами, как:

 

- высокоуровневые средства работы с асинхронными процессами;

- модульность (не псевдо-модульность Си-шных инклюдов, а нормальная,

человеческая модульность);

- и, наконец, самое главное - поддержка написания надежного кода

и препятствие написанию ненадежного кода?

 

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

если курс не построен на основе сравнения разных языков?

 

при таком однобоком подходе внедрение Ады будет большинством

воспринято как очередная диверсия вроде внедрения виндуса микрософтом,

а вот если люди сами поймут в чем разница то лишних проблем уже не будет...

 

Vladimir

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

аналогично GPL использовать для какого-то дополнительного контроля и намекнуть

на соблюдение определенных правил и требований. Ну скажем так - при соблюдении

каких-то правил получают право на бесплатное использование материалов,

торговой марки и тп, в противном случае скажем лицензия будет

стоить 1000$ или ваще 1000000$.

А условия например такие(так, для примера, что сразу пришло в голову):

1) материал используют только если обучение проводиться до какого-то уровня,

пригодного для практики. (имеем возможность присеч извращения)

2) регистрация(бесплатно) (будем знать где применяется)

3) в случае необходимости предоставляют более полный материал который

может не входить в эту программу. Например, если задача стоит научить

просто программировать(или сопровождать готовое) на чем-то,

то материалы по теории программирования и сравнения языков можно

не включать в курс как обязательные, но если у кого-то возникнут вопросы

"а почему сделано так а не иначе" и тп, то обязаны предоставить их как

дополнительные тоже. Это будет гарантировать что если в группе вдруг

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

желание учиться...

ну и тд и тп. Как идейка?

21.05.07, Wladimir Mutel'<[email protected]> написал(а):

Boris wrote:

...

Один авторитет пишет, что на CS-специальности однозначно полезно учить

Си и Лисп.

 

в том что учить полезно сомнений нет,

только на практике на них программировать врядли целесообразно.

Дак зачем их учить если они для практики хуже подходят чем например Ада,

не проще ли сразу учить что-нить более полезное?

 

В школьном компьютере OLPC используется Python и Smalltalk.

 

тоже те еще извращения, проще сразу давать что-нить полезное

 

вот какой-нить лисп или пролог другое бы дело - это другой тип,

другой подход, но зачем школьникам морочить голову тем что

надо миниум аспирантам и то не всем, не понятно...

 

Я также считаю, что очень неплохо ознакомиться хотя бы по верхам

с Ruby, Haskell и Erlang. Ну ещё с Forth и TCL.

Ну и с Unix-shell тоже непременно :>

 

конечно, если реч вообще об программировании как науке или теории, системе

(для решения конкретной задачи "hello world" с этим можно и подождать)

 

 

Ada, несомненно, весьма прогрессивная технология для 70-х-80-х годов.

Её безусловно стОит изучать в курсе инженерной истории компьютерных

технологий, знать её место в генеалогическом дереве в районе Алгола и

 

вот историей точно можно пожертвовать без ущерба программированию,

хотя для общего развития этот предмет будет в программах наверняка...

 

Паскаля. Но стОит ли в наше время выпускать из ВУЗа именно

Ада-программера ? Сильно сомневаюсь. Сейчас для каждой позитивной фичи

 

если нет лишних 5-10 лет на тренировки и выработки стиля на опыте,

то стоит, и именно на Ада тк тут уже учтен опыт и сразу "навязываются"

правильные методы. (кстати для программистов пописать много на Ц и асме

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

не большой, этот опыт уже учтен в Ада)

 

Ады можно подыскать технологию, в которой та же фича реализована короче

и понятнее для изучения.

 

есть такое, поэтому я и предложил издеваться над паскалем,

если нет достаточно времени. Ада все-же гораздо больше по синтаксису(дольше

рассказывать), но зато и удобнее... Это думаю не большая плата за удобство

программирования, тем более что компилятор уже готов... (А с точки

зрения использования - удобство это главный плюс) Но это будет

заметно только на больших программах, так что при нехватке времени

преимуществ Ада нет, но зато паскаль потребует меньше времени.

И, главное, если все-же научат не правильно, то паскалю уже все равно,

и это не помешает(скорее поможет) потом если надо изучить Аду и правильно.

 

Даже Пентагон понял, что сказать всем поездам "стой, раз-два!"

и перевести их всех на единую ширину колеи у них не получится.

Не знаю, погубит ли это его in the long run :>

 

иногда есть польза и от такого подхода, особенно когда многие

начинают путать свободу и беспредел(гну от этого страдает)...

 

Vladimir

Vladimir Teplouhov wrote:

 

Erlang. На этом языке Ericsson пишет софтик для своих АТС.

 

кстати wings3d вроде на эрланге (редактор 3х-мерный)

 

А также eJabberd (русская разработка, кстати) и YAWS (web-сервер).

 

но что-то от его синтаксиса я не в восторге...

 

Да, его не мешало бы подчистить и сделать хотя бы как в Питоне.

 

Ах да. В Smalltalke и Erlange есть механизмы замены модулей без

прекращения работы программы. Вот это стоило бы изучить ! :>

 

еще можно посмотреть на PHP и PERL - наверняка и там есть че-нить интересное...

 

Нет. По-моему. Потому я их и не упомянул.

Эти языки хороши для практических нужд,

но не для изучения компьютерных наук.

То же касается Явы.

 

вот только учить эти песочницы ради 10 строчек программ для сайта

нет ни времени ни желания, а других применений этим песочницам я не вижу.

 

Ну так мог бы и не писать "ещё можно" в начала абзаца :>

 

Целочисленные переполнения ? Отказ от строгой типизации.

 

ну зачем отказ-то?

 

Чтобы не фиксировать тип возвращаемого значения функции.

т.е. если при сложении результат не влазит в long,

функция возвращает bignum.

 

Никто же не запрещает определить новые типы на базе хоть списков.

(в reduce есть такой модуль произвольной точности)

 

Оно везде есть или может быть, только в некоторых системах

им можно пользоваться не задумываясь с самого начала.

 

В Python, Ruby, Smalltalk, Erlang используются целые числа

поризвольной точности. Что до прочих исключений, то они

 

я бы лучше смотрел в сторону REDUCE - пока это пожалуй единственная

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

(между прочим одна из первых систем, 1960х гг начала разработки)

 

Reduce - это система компьютерной алгебры,

полезная для преобразования сложных математических выражений,

но вряд ли для программирования общего назначения.

 

весьма активно и регулярно бросаются и могут быть обработаны

во всех этих языках (деление на ноль, динамическое

несоответствие типов, нехватка памяти, сетевые отказы и

 

reduce и вообще прямо формулы в общем виде может щелкать,

типы ему в общем-то пофигу, всмысле что ошибки не будет,

просто выдаст выражение в общем виде и все

 

Не знаю, стОит ли продолжать уклонять дискуссию

от её первоначальной темы :>

 

Кстати, в Erlang встроены средства организации распределённых

и отказоустойчивых вычислений, например, переключение на

резервный узел сети, перезапуск упавшего процесса, всё та же

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

 

кстати. У меня уже давно есть идея - а почему бы все эти фичи

не написать просто в виде библиотек, для Ада, например?

Тем более что реализация всяких лиспов и тп в общем-то не большая...

 

Напиши, если считаешь это полезным и осуществимым.

Иначе - отбрось фантазии и маниловщину :>

 

Скажем сделать библиотеки в стиле и с функциями того-же лиспа,

PHP, перла и тд и тп. Тогда и писать можно будет с человеческим

синтаксисом, и все вкусные фичи использовать. Резервирование это

тоже скорее просто идея, реализацию в библиотеках можно прикрутить хоть куда...

(заменить все хоть включая системные модули в Ада не проблема)

Как идейка?

 

Просто все эти "фичи" и "фасилити" уже есть в других языках.

Не многие считают полезным занятием преобразование одного языка

в другой.

 

Это очень полезно - посмотреть за пределы алголоподобных языков.

 

я называю это алгоритмическими языками.

(Тот-же reduce ближе всех к алголу-60 :) )

 

Reduce написан на диалекта Лиспа, ключевые слова которого напоминают

об Алголе. Все знатоки и любители Лиспа в списке реальных и полезных

лисп-приложений обязательно упоминают reduce, emacs и autocad :>

 

Вот пролог (и немного лисп) уже языки другого типа.

 

Похоже, ты не всматривался ни в то, ни в другое. Ни в третье :>

 

(yacc и тп из этой-же серии, только извращенные песочницы,

по мне дак лучше либо заменить их библиотеками для Ада с алгоритмическим

подходом, либо такие задачи решать на чем-то не алг вроде пролога)

 

Ты пытаешься нагрести большую кучу топиков,

чтобы рассеять направление дискуссии ? :>

 

yacc и lex - крайне полезные вспомогательные средства

при организации работ с нестандартными входными языками.

Идеи, лежащие в их основе, весьма убедительны,

из-за чего люди не пожалели времени и сил на создание аналогов

yacc&lex для других языков, кроме Си.

 

Все что делают другие алгоритмические языки делает и Ада,

практически один-в-один по возможностям, но в Ада хорошо продуманы

некоторые "тонкости", так что для практики она подходит лучше,

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

все дело как всегда в "мелочах".

 

С этим не согласен, и сильно.

Сказал бы даже, что это глупости.

 

Проще говоря, у меня пока подход такой - все алгоритмическое

прекрасно заменит Ада, но не надо на алг Ада пытаться пропихнуть

туда где нужен другой подход, то есть возможно стоит поискать что-то

еще для таких задач(если конечно не удастся это все сделать в виде

библиотек для той-же Ады, ведь впринципе можно хоть реализацию

самого пролога как либу прилинковать :) ) в дополнение к Ада.

Ну и, конечно, DSL.

 

Почему ж мы видим такие DSL, как Ruby on Rails,

и не видим каких-либо интересных и полезных DSL на основе Ады ?

Разница-то ведь всего лишь в мелочах ?

Или это всё мода и шумиха ? :>

 

Открываются кое-какие любопытные возможности.

Особенно это полезно для студентов, как я считаю.

 

конечно, про такие вещи как лисп или форт надо бы знать.

Но это правда уже даже немного другой раздел, даже наверно

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

но такое конечно интересно и полезно. (для тех кому интересно программирование

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

но если кому-то станет интересно почему сделано именно так а не иначе,

и как вообще может быть по другому, то такой материал будет конечно полезен.

Как обязательным его наверно стоит включать только для тех у кого

наука в области

программирования специальность, для остальных только в случае интереса)

 

Форт, Лисп и TCL (да, и SmallTalk) показывают нам,

что очень сложные системы можно делать на основе очень простых,

красивых и кратко специфицированных вещей.

Си показывает нам, что можно не писать системный софт на асме

и не привязываться к конкретному процессору.

Языки функционального программирования (Haskell, Erlang, SML, Ocaml,

Lisp) показывают, что в массивно-параллельных вычислениях будущего

вряд ли найдётся достаточно места для императивщины, сайд-эффектов

и "высокоуровневых средств синхронизации".

Python достигает локального минимума в сложности своей грамматики

(в инете публиковались картинки-визуализации) и во времени на освоение

неспециалистом. Потому и попал в OLPC.

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

фичи из множества своих предшественников. Особая сила Ruby - это,

конечно, метапрограммирование - см. Ruby on Rails

Unix-shell показывает, как просто и быстро сочетать компоненты

и строить свои DSLы.

 

Все эти свойства весьма и весьма полезны и показательны

при изучении основ. Когда знаешь более чем один инструмент,

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

 

А вот Pascal/Modula/Ada (и Java с C#) показывают,

что если достаточно долго полировать технологию начала 70-х годов

(в основе которой лежат не академические соображения, а практические),

не особо меняя её нутрА, то она может протянуть и до 80-х,

а благодаря рыночным факторам - и до 90-х. Но сейчас всему этому

генеалогическому дереву уверенно приходит конец - по всем направлениям.

Даже нового программера на Дельфи нынче поди-поищи, а какая массовая

и полезная система была когда-то... Турбо-Паскаль v5 и 6 учат там,

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

он вряд ли кому нужен, кроме горстики ембеддщиков, пишущих под DOS.

С Адой сами видим что - то же, что и с Коболом. Оставшиеся бывалые

специалисты неплохо зарабатывают, а вот обучение и привлечение новых -

серьёзная проблема, при нынешнем разнообразии доступных информационных

технологий. Да и для новых проектов эти языки выбирают всё реже и реже.

Vladimir Teplouhov wrote:

 

Один авторитет пишет, что на CS-специальности однозначно полезно учить

Си и Лисп.

 

в том что учить полезно сомнений нет,

только на практике на них программировать врядли целесообразно.

 

А ведь люди пишут. Ещё один авторитет - Paul Graham.

Ещё и неплохо зарабатывает на этом.

И ведь разработчики других языков смотрят именно

на простое и красивое, что было до них,

чтоб позаимствовать оттуда безусловно хорошие фичи.

 

Дак зачем их учить если они для практики хуже подходят чем например Ада,

не проще ли сразу учить что-нить более полезное?

 

Самое полезное в учёбе, в высшем образовании -

научиться самостоятельно получать дальнейшие знания.

А полезно - сегодня одно, а завтра совсем другое.

 

В школьном компьютере OLPC используется Python и Smalltalk.

 

тоже те еще извращения, проще сразу давать что-нить полезное

 

У тебя странное определение слова "полезное".

Типа "изучил ПХП и сразу пошёл клепать вебсайты за деньги", да ? :>

 

вот какой-нить лисп или пролог другое бы дело - это другой тип,

другой подход, но зачем школьникам морочить голову тем что

надо миниум аспирантам и то не всем, не понятно...

 

Питон - он и школьнику под силу. И главное, основа языка

достаточно отвязана от "практики" и "пользы", в отличие от ПХП.

 

Я также считаю, что очень неплохо ознакомиться хотя бы по верхам

с Ruby, Haskell и Erlang. Ну ещё с Forth и TCL.

Ну и с Unix-shell тоже непременно :>

 

конечно, если реч вообще об программировании как науке или теории, системе

(для решения конкретной задачи "hello world" с этим можно и подождать)

 

Hello-world на Питоне или Шелле очень даже короткие.

И сразу показывают учащемуся, что он хоть немножко, но могуч :>

 

Ada, несомненно, весьма прогрессивная технология для 70-х-80-х годов.

Е ёбезусловн остОи тизучат ь вкурс еинженерно йистори икомпьютерны

хтехнологи, йзнат ье ёмест о вгенеалогическо мдерев е врайон еАлгол а

 

иво тисторие йточн оможн опожертвоват ьбе зущерб апрограммировани,

юхот ядл яобщег оразвити яэто тпредме тбуде т впрограмма хнаверняк...

 

аКт он езнае тистори, юто тобречё не ёповторят, ь ам ывед ьзнае,

мчт олучш еучитьс ян ачужи хошибка, хче мн асвои.

 

хПаскал. яН остОи тл и внаш еврем явыпускат ьи зВУЗ аименн

оАд-апрограммер ? аСильн осомневаюс. ьСейча сдл якаждо йпозитивно йфич

 

иесл ине тлишни 5-10 хле тн атренировк и ивыработк истил ян аопыт,

ет остои, т иименн он аАд ат кту туж еучте нопы т исраз "унавязываютс"

яправильны еметод. (ыкстат идл япрограммисто впописат ьмног он а Ц иасм

едума юпошл об ын апольз, уесл ипозволяе тврем, ян о ибе зэтог оубыто

кн ебольшо, йэто топы туж еучте н вАд)

 

аБе 5..10 зле тпрактик ивря дл иудастс яобойтис, ьдаж еесл иучит ьАд.

 

уАд ыможн оподыскат ьтехнологи, ю вкоторо йт аж ефич ареализован акороч

е ипонятне едл яизучени.

 

яест ьтако, епоэтом у я ипредложи лиздеватьс яна дпаскале,

месл ине тдостаточн овремен. иАд авс-еж егоразд обольш еп осинтаксис(удольш

ерассказыват), ьн озат о иудобне... еЭт одума юн ебольша яплат аз аудобств

опрограммировани, яте мболе ечт окомпилято руж егото... (в А сточк

изрени яиспользовани - яудобств оэт оглавны йплю) сН оэт обуде

тзаметн отольк он абольши хпрограмма, хта кчт опр инехватк евремен

ипреимущест вАд ане, тн озат опаскал ьпотребуе тменьш евремен.

и, Иглавно, еесл ивс-еж енауча тн еправильн, от опаскал юуж евс еравн,

о иэт он епомешае(тскоре епоможе) тпото месл инад оизучит ьАд у иправильн.

 

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

 

яТеплоухо, вт ыкако-йт отролл ь ифлейме, рчт ол...

и Ятеб яещ ёп ru.os.cmp о ru.linux изна.

юТа мтеб яуж еигнорирую, тта кт ысюд аперекатилс ? :>

22.05.07, Wladimir Mutel<[email protected]> написал(а):

Vladimir Teplouhov wrote:

 

>> Один авторитет пишет, что на CS-специальности однозначно полезно учить

>> Си и Лисп.

 

> в том что учить полезно сомнений нет,

> только на практике на них программировать врядли целесообразно.

 

А ведь люди пишут. Ещё один авторитет - Paul Graham.

Ещё и неплохо зарабатывает на этом.

 

много на чем пишут

 

и есть много способов делать бабки из воздуха

 

но боюсь что сейчас разговор не об этом,

если хочешь об маркетинге или лохотронах,

то можно продолжить, но в другом топике...

 

И ведь разработчики других языков смотрят именно

на простое и красивое, что было до них,

чтоб позаимствовать оттуда безусловно хорошие фичи.

 

если бы смотрели, то не использовали бы всякую дрянь

 

а смотрят как раз "а на чем это вон там программят" и при этом

не задумываются почему, и даже не спрашивают (а то бы честно

ответили "ну так получилось")

 

> Дак зачем их учить если они для практики хуже подходят чем например Ада,

> не проще ли сразу учить что-нить более полезное?

 

Самое полезное в учёбе, в высшем образовании -

научиться самостоятельно получать дальнейшие знания.

 

пока работает наоборот - только мозги отшибают тем у кого они еще есть

 

А полезно - сегодня одно, а завтра совсем другое.

 

вот именно

 

а чему там можно учить 5 лет, если через 3 уже поколение компов

идет полностью на свалку не представляю. Конечно можно учить

основам, но и им что-то учат не очень... (впрочем мне пофиг,

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

только врачей-недоучек, бо последствия от них куда более печальные)

 

 

>> В школьном компьютере OLPC используется Python и Smalltalk.

 

> тоже те еще извращения, проще сразу давать что-нить полезное

 

У тебя странное определение слова "полезное".

Типа "изучил ПХП и сразу пошёл клепать вебсайты за деньги", да ? :>

 

ну так и есть типа

клепают :)

 

тут один мой знакомый(старый хакер :) ) как-то устроился в такую фирму.

Ничего, через неделю выгнали - сильно умный говорят :) Ну объяснил

там пару раз начальнику что не хорошо блок в несколько страниц

копировать в 10 мест, можно бы и 1 подпрограмму сделать... Ну и тд и тп.

(кстати на изучение PHP у него ушло вроде дня два)

 

а бабок контора гребет наверно больше чем мы тут все вместе взятые

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

 

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

Зарабатывать просто надо уметь, причем совершенно не понятно почему

если на всяком дерьме зарабатывают, нельзя зарабатывать на нормальном...

 

> вот какой-нить лисп или пролог другое бы дело - это другой тип,

> другой подход, но зачем школьникам морочить голову тем что

> надо миниум аспирантам и то не всем, не понятно...

 

Питон - он и школьнику под силу. И главное, основа языка

достаточно отвязана от "практики" и "пользы", в отличие от ПХП.

 

меня все-же больше практика волнует, а не теория программирования

 

кстати теоретически у Ада вообще нет отличий, кроме этих важных

для практики мелочей.

 

 

>> Я также считаю, что очень неплохо ознакомиться хотя бы по верхам

>> с Ruby, Haskell и Erlang. Ну ещё с Forth и TCL.

>> Ну и с Unix-shell тоже непременно :>

 

> конечно, если реч вообще об программировании как науке или теории, системе

> (для решения конкретной задачи "hello world" с этим можно и подождать)

 

Hello-world на Питоне или Шелле очень даже короткие.

И сразу показывают учащемуся, что он хоть немножко, но могуч :>

 

на паскале хоть управление можно сделать, а куда девать этих? :)

Не, ну нафиг этот зоопарк. Единая технология для всего - рулез!

 

Я еще могу подумать не использовать ли пролог в дополнение к Ада тк он

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

И пусть лучше это будет Ада, чем писочница которая ничего не может,

либо не контролирует половину ошибок как Ц...

 

Java и C# идут лесом как раз из-за их сильного отрыва от реальности,

нельзя ничего сделать приличное если не знаешь ничего про процессор,

асм и тп. (теоретически можно, через точную эмуляцию, но судя по глюкам

они этого не смогли, так что идут лесом)

 

...

>> Паскаля. Но стОит ли в наше время выпускать из ВУЗа именно

>> Ада-программера ? Сильно сомневаюсь. Сейчас для каждой позитивной фичи

 

> если нет лишних 5-10 лет на тренировки и выработки стиля на опыте,

> то стоит, и именно на Ада тк тут уже учтен опыт и сразу "навязываются"

> правильные методы. (кстати для программистов пописать много на Ц и асме

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

> не большой, этот опыт уже учтен в Ада)

 

Без 5..10 лет практики вряд ли удастся обойтись, даже если учить Аду.

 

скоро проверим :)

 

но не вижу проблем, если можно паскаль жабу или C# выучить за пару

недель, почему бы не выучить и Аду. А вот с Ц сложнее, там действительно

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

 

...

>> Ады можно подыскать технологию, в которой та же фича реализована короче

>> и понятнее для изучения.

 

> есть такое, поэтому я и предложил издеваться над паскалем,

> если нет достаточно времени. Ада все-же гораздо больше по

синтаксису(дольше

> рассказывать), но зато и удобнее... Это думаю не большая плата за

удобство

> программирования, тем более что компилятор уже готов... (А с точки

> зрения использования - удобство это главный плюс) Но это будет

> заметно только на больших программах, так что при нехватке времени

> преимуществ Ада нет, но зато паскаль потребует меньше времени.

> И, главное, если все-же научат не правильно, то паскалю уже все равно,

> и это не помешает(скорее поможет) потом если надо изучить Аду и правильно.

 

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

 

когда-нибудь поймешь, но для этого боюсь что придется

позаниматься психологией и nlp хотябы сколько я... (тока не обижаться,

я серьезно, это очень тонкий момент)

 

Теплоухов, ты какой-то тролль и флеймер, что ли...

Я тебя ещё по ru.os.cmp и ru.linux знаю.

Там тебя уже игнорируют, так ты сюда перекатился ? :>

 

в os.cmp я никогда не тусовался, а ru.linux тот еще зверинец :)

Пользы от него не много - гораздо полезнее оказалось загрузить

исходники в базу поиска...

 

Vladimir

22.05.07, Wladimir Mutel<[email protected]> написал(а):

Vladimir Teplouhov wrote:

...

> еще можно посмотреть на PHP и PERL - наверняка и там есть че-нить

интересное...

 

Нет. По-моему. Потому я их и не упомянул.

Эти языки хороши для практических нужд,

но не для изучения компьютерных наук.

То же касается Явы.

 

хватит нам теорий.. как там раньше говорили - бросай кое-чего,

продукцию давай :)

 

а наука должна рассматриваться только когда есть практическое

применение, остальное готов обсуждать только под субжектом

про лохотроны, халяву, получение грантов и тд и тп :)

 

(но и полное игнорирование науки на практике тоже перекос - всего

должно быть в меру)

 

> вот только учить эти песочницы ради 10 строчек программ для сайта

> нет ни времени ни желания, а других применений этим песочницам я не вижу.

 

Ну так мог бы и не писать "ещё можно" в начала абзаца :>

 

я уже говорил - третий.. и даже второй алгоритмический явно лишний :)

 

 

>> Целочисленные переполнения ? Отказ от строгой типизации.

 

> ну зачем отказ-то?

 

Чтобы не фиксировать тип возвращаемого значения функции.

т.е. если при сложении результат не влазит в long,

функция возвращает bignum.

 

и даже не только bignum, но и любую формулу в общем виде - я же

и намекнул про reduce

 

но нет проблем просто описать такой тип данных с тегом(либо на основе

списков) и сделать такую либу для Ада.

 

То-же касается и всяких PHP и перловками - если кому-то нравиться

их система функций, то почему бы не сделать модули вроде PerlFuncs

или PhpFuncs и тп к Ада. (или MQL4 ;) )

 

Хотя может быть еще стоит подумать насчет какого-нить скриптового языка,

или расширения для Ада, хз... Но это уже не так уж сильно надо,

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

 

> Никто же не запрещает определить новые типы на базе хоть списков.

> (в reduce есть такой модуль произвольной точности)

 

Оно везде есть или может быть, только в некоторых системах

им можно пользоваться не задумываясь с самого начала.

 

вот по умолчанию не надо - это источник ошибок

 

кому сильно надо прицепит модуль с переопр. и все

 

>> В Python, Ruby, Smalltalk, Erlang используются целые числа

>> поризвольной точности. Что до прочих исключений, то они

 

> я бы лучше смотрел в сторону REDUCE - пока это пожалуй единственная

> система что заслуживает внимания, в тч и с целью практического применения.

> (между прочим одна из первых систем, 1960х гг начала разработки)

 

Reduce - это система компьютерной алгебры,

полезная для преобразования сложных математических выражений,

но вряд ли для программирования общего назначения.

 

скажи, тебя правда в институте учили? :) Хорошо научили,

годишься в современные программисты :)) Конечно если начальник

окажется такой-же лох после кафедры программирования :)))

 

а теперь внимание фокус :)

То что в лиспе программы и данные один фиг списки, наверно научили?..

Списком кодируют и алг выражения тоже.

А теперь скажи, что, так сложно догадаться прогнать

через аналогичную систему и саму программу хоть на Ада хоть на Ц,

ее ведь тоже конвертнуть в тот-же список не проблема?

Между прочим правил оптимизации программ куда как меньше

чем математических преобразований, но ничего, reduce даже на PC/XT

прекрасно справлялся и с алгеброй...

 

Ой, чую много халявщиков с этих кафедр остануться без работы

если до программирования доберуться те кто там не учился :)

 

...

> reduce и вообще прямо формулы в общем виде может щелкать,

> типы ему в общем-то пофигу, всмысле что ошибки не будет,

> просто выдаст выражение в общем виде и все

 

Не знаю, стОит ли продолжать уклонять дискуссию

от её первоначальной темы :>

 

ага, ага :)

 

...

> кстати. У меня уже давно есть идея - а почему бы все эти фичи

> не написать просто в виде библиотек, для Ада, например?

> Тем более что реализация всяких лиспов и тп в общем-то не большая...

 

Напиши, если считаешь это полезным и осуществимым.

Иначе - отбрось фантазии и маниловщину :>

 

ааа

гну в действии - вы там пишите, а мы за углом, готовое, подождем ;)

 

 

> Скажем сделать библиотеки в стиле и с функциями того-же лиспа,

> PHP, перла и тд и тп. Тогда и писать можно будет с человеческим

> синтаксисом, и все вкусные фичи использовать. Резервирование это

> тоже скорее просто идея, реализацию в библиотеках можно прикрутить хоть

куда...

> (заменить все хоть включая системные модули в Ада не проблема)

> Как идейка?

 

Просто все эти "фичи" и "фасилити" уже есть в других языках.

Не многие считают полезным занятием преобразование одного языка

в другой.

 

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

если их можно и к Ада прикрутить...

 

>> Это очень полезно - посмотреть за пределы алголоподобных языков.

 

> я называю это алгоритмическими языками.

> (Тот-же reduce ближе всех к алголу-60 :) )

 

Reduce написан на диалекта Лиспа, ключевые слова которого напоминают

об Алголе. Все знатоки и любители Лиспа в списке реальных и полезных

лисп-приложений обязательно упоминают reduce, emacs и autocad :>

 

reduce сделан гораздо проще и круче - там несколько уровней

 

это и идея раскрутки как в форте, и по сути DSL, хотя в те годы

и таких названий не было...

 

на лиспе написан сразу rlisp - тот-же лисп только с человеческим

алголовским синтаксисом, к алголу он ближе всех кстати по синтаксису.

 

а вот на нем уже и написано все остальное, только не в уродской

лисп форме, а по-человечески. При этом и фича лиспа (eval) никуда

не делась, для алгебры она aeval называется эта функция...

 

> Вот пролог (и немного лисп) уже языки другого типа.

 

Похоже, ты не всматривался ни в то, ни в другое. Ни в третье :>

 

нефиг

оно такое-же не доделанное, как Ц по ср с Ада.

В основе внутри приметивный алгоритм вычислений с замороченными

правилами сопоставления, а замашки на высокоуровневость как на уровне

математики... Короче от нормального языка для работы с правилами отличается

как Ц от Ада, но проблема в том что "Ады" в этой области еще нет...

Так что пишу как пример, чтобы ясно было хоть примерно на что похоже ;)

 

> (yacc и тп из этой-же серии, только извращенные песочницы,

> по мне дак лучше либо заменить их библиотеками для Ада с алгоритмическим

> подходом, либо такие задачи решать на чем-то не алг вроде пролога)

 

Ты пытаешься нагрести большую кучу топиков,

чтобы рассеять направление дискуссии ? :>

 

тебе бы клиентов на заказы разводить с таким подходом,

имел бы наверно самые большие заказы в отрасли :)

 

yacc и lex - крайне полезные вспомогательные средства

при организации работ с нестандартными входными языками.

 

полезные, только извращенные так что куда там лисп с прологом и Ц

вместе взятые попали ;)

 

Идеи, лежащие в их основе, весьма убедительны,

из-за чего люди не пожалели времени и сил на создание аналогов

yacc&lex для других языков, кроме Си.

 

тока на том-же прологе это все пишется тупо в лоб,

и еще много чего. А вот куда можно еще прикрутить yacc я так и не придумал,

разве что какие-нить автоматы лепить, но это уже извращение еще круче...

Короче тоже та еще писочница, хоть и полезная для практики.

Заменить бы весь этот зоопарк чем-нить поновее...

(кстати и не факт что это все либой к той-же Ада сделать нельзя :) )

 

> Все что делают другие алгоритмические языки делает и Ада,

> практически один-в-один по возможностям, но в Ада хорошо продуманы

> некоторые "тонкости", так что для практики она подходит лучше,

> хотя впринципе между всеми алг языками уже давно нет никакой разницы,

> все дело как всегда в "мелочах".

 

С этим не согласен, и сильно.

Сказал бы даже, что это глупости.

 

принципиальной разницы даже между бейсиком нынче нет - там тоже

можно все то-же писать. Впринципе... (ну лучше не писать :) )

 

все алгоритмические языки примерно одинаковы по всем параметрам,

хоть Ада хоть Ц хоть бейсик. Даже кодогенераторы нынче впринципе одни,

будь это gcc или мелкософтовский .net Но на практике особенно на больших

проектах разница существенная, думаю уже догадался в чью пользу :)

 

буржуи кстати мне на этот счет больше нравиться - они давно уже

ни о чем не спорят, типа "пишите на вашем любимом языке,

вот вам на выбор хоть васик хоть перл хоть Ц++"... Про мелочи

конечно молчат, мелочи же :) Да и основной юзер ничего большого

не пишет, а несколько строк я даже не знаю на чем проще писать,

может даже и на бейсике, хз. (а мы люди не гордые, спорить не будем - цеплят

будем по осени.. ну то есть на отладке считать :) )

 

> Проще говоря, у меня пока подход такой - все алгоритмическое

> прекрасно заменит Ада, но не надо на алг Ада пытаться пропихнуть

> туда где нужен другой подход, то есть возможно стоит поискать что-то

> еще для таких задач(если конечно не удастся это все сделать в виде

> библиотек для той-же Ады, ведь впринципе можно хоть реализацию

> самого пролога как либу прилинковать :) ) в дополнение к Ада.

> Ну и, конечно, DSL.

 

Почему ж мы видим такие DSL, как Ruby on Rails,

и не видим каких-либо интересных и полезных DSL на основе Ады ?

Разница-то ведь всего лишь в мелочах ?

Или это всё мода и шумиха ? :>

 

а с чего ты взял что DSL должен быть только на основе Ады?

Он и вообще может быть сам по себе...

 

если по выходному коду для конвертации дак лучше Ц,

тот-же асм по сути только маш-независимый, милое дело

для кодогенерации, и недостатки Ц при авт генерации пофиг...

 

хотя делать DSL на основе Ады наверно в этом тоже что-то есть, хз,

тут конкретно надо смотреть уже...

 

 

>> Открываются кое-какие любопытные возможности.

>> Особенно это полезно для студентов, как я считаю.

 

> конечно, про такие вещи как лисп или форт надо бы знать.

> Но это правда уже даже немного другой раздел, даже наверно

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

> но такое конечно интересно и полезно. (для тех кому интересно

программирование

> вообще, просто изучить какой-нить язык для практики можно и без этого,

> но если кому-то станет интересно почему сделано именно так а не иначе,

> и как вообще может быть по другому, то такой материал будет конечно

полезен.

> Как обязательным его наверно стоит включать только для тех у кого

> наука в области

> программирования специальность, для остальных только в случае интереса)

 

Форт, Лисп и TCL (да, и SmallTalk) показывают нам,

что очень сложные системы можно делать на основе очень простых,

красивых и кратко специфицированных вещей.

Си показывает нам, что можно не писать системный софт на асме

и не привязываться к конкретному процессору.

 

reduce и форт кстати сюда-же можешь приписать :)

но они отличаются же...

 

Языки функционального программирования (Haskell, Erlang, SML, Ocaml,

Lisp) показывают, что в массивно-параллельных вычислениях будущего

вряд ли найдётся достаточно места для императивщины, сайд-эффектов

и "высокоуровневых средств синхронизации".

Python достигает локального минимума в сложности своей грамматики

(в инете публиковались картинки-визуализации) и во времени на освоение

неспециалистом. Потому и попал в OLPC.

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

фичи из множества своих предшественников. Особая сила Ruby - это,

конечно, метапрограммирование - см. Ruby on Rails

Unix-shell показывает, как просто и быстро сочетать компоненты

и строить свои DSLы.

 

Все эти свойства весьма и весьма полезны и показательны

при изучении основ. Когда знаешь более чем один инструмент,

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

 

зоопарк нафиг не нужен

 

оставить по 1 каждого класса, и хватит

 

причем многое из этого можно заменить просто на библиотеки

 

 

А вот Pascal/Modula/Ada (и Java с C#) показывают,

что если достаточно долго полировать технологию начала 70-х годов

(в основе которой лежат не академические соображения, а практические),

не особо меняя её нутрА, то она может протянуть и до 80-х,

а благодаря рыночным факторам - и до 90-х. Но сейчас всему этому

 

хрен там

алг языки уже давно подошли близко к пределу развития,

и уж точно помирать не собираются. Другое дело что некоторые

вещи лучше делать на базе других подходов...

 

генеалогическому дереву уверенно приходит конец - по всем направлениям.

Даже нового программера на Дельфи нынче поди-поищи, а какая массовая

и полезная система была когда-то...

 

да фигня все, мне это очень сильно напоминает споры вокруг фортрана лет 10-20

назад, сейчас та-же история повторяется. Все проходит, и это пройдет :)

(кстати фортран как-то потеснили, а бейсик как видишь живее всех живых,

так что уж более эффективные технологии уж точно не помрут, а вот если

все-же надоест распыляться и вопрос встанет что оставить, скажем бейсик

или что-то еще, то думаю понятно у кого больше шансов)

 

Турбо-Паскаль v5 и 6 учат там, где нет шансов купить новое железо,

 

не только железо,

но еще и умные люди которые не ведуться на новомодные лохотроны

 

а после получения образования он вряд ли кому нужен, кроме горстики

ембеддщиков, пишущих под DOS.

 

только благодаря этой горстке производиться наверно 90% всех товаров,

а эти "современные программеры" ничем кроме глюков и лохотронов

похвастаться не могут...

 

С Адой сами видим что - то же, что и с Коболом. Оставшиеся бывалые

специалисты неплохо зарабатывают, а вот обучение и привлечение новых -

серьёзная проблема, при нынешнем разнообразии доступных информационных

технологий. Да и для новых проектов эти языки выбирают всё реже и реже.

 

не, нынче подход другой

 

есть некая потребность и некий процесс, будь то Ада или кобол все равно

задачи будем решать, и у лохотронов есть не много шансов туда попасть,

выберем то что лучше и больше подходит, нравиться это кому-то или нет

уже все равно...

 

Vladimir

Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти