iz56 писал(а):
У меня беседа о языках программирования вызывает ассоциации с беседой о инструментах авто-мастера.Да и смысл беседовать об универсальном инструменте? Совершенно очевидно - что их(и тех и тех) нужно ровно столько и ровно такого качества , что бы выполнить поставленную задачу на заявленном уровне.
Традиционный взгляд на языки программирования обычно выражается двумя заключениями:
1. Больше инструментов хороших и разных!
2. Универсального инструмента не бывает, каждый язык лучше заточен под определённые аспекты.
Я же сейчас придерживаюсь несколько иной точки зрения. Обилие разных инструментов приводит к необходимости постоянного переобучения, при этом те инструменты, которыми не пользуешься в данный момент, постепенно выветриваются из головы и возврат к ним также требует определённого усилия над собой. Поэтому определённая степень универсализма является благом, желанной целью при разработке языка. Конечно, совершенно универсального языка программирования быть не может, как минимум нужно выделить скриптовые языки и языки с совершенно иной, отличной от императивной, парадигмой программирования - Prolog, Fofth, языки ФП... Однако, я думаю, не стоит о языке думать как об
инструменте. Более правильным взглядом было бы представление о языке как о
наборе инструментов. Действительно есть разница между плотницким набором и набором космонавта для работы за бортом МКС. Однако, большинство согласится со следующими тезисами: 1) второй набор обладает намного большими возможностями, 2) использование всех его возможностей требует больше знаний и навыков в работе и 3) набор инструментов более гибок, чем один универсальный инструмент. Это означает, что более универсальные наборы возможны, но их разработка и использование – существенно более трудоёмкий и ответственный процесс. Что касается гибкости, посмотрите, – язык С прошёл почти полувековой путь развития, перешёл в С++, почти сохранив совместимость с чистым С, и продолжает активно развиваться и поныне. На протяжении длительного времени он был самым популярным инструментом и, пожалуй, во многих смыслах претендовал на универсальность. Да и сейчас он остаётся одним из самых популярных языков. Беда С++ заключается не в отсутствии возможности развития и не в недостаточной универсальности, а в том, что
от ряда критических недостатков невозможно избавиться, оставаясь в рамках совместимости. Тем не менее, я считаю, что гибкий, мощный и достаточно универсальный язык императивного программирования возможен.
Freeman писал(а):
С самого начала меня не покидало ощущение, что тут делается попытка переизобрести Кантор. Видимо, все русские программисты в определенной степени мыслят одинаково. Так, наверное, выглядел бы Кантор, если бы я разрабатывал его на Си...
Не сделаю большого открытия, если скажу, что все языки так или иначе переизобретают какие-то аспекты. Я был весьма удивлён, узнав, что некоторые из моих концепций, которые я считал уникальными, уже есть в других языках, например в SML. Для интересующихся есть ещё один полезный ресурс:
compiler.su. А для тех, кто всерьёз озабочен созданием нового языка, настоятельно рекомендую обзорный курс
Programming Languages Вашингтонского университета.
Zealint писал(а):
Более того, я скорее всего уйду из Computer Science вообще и пойду плотником работать
Не стоит зарывать талант в землю. Не мне судить, но мне кажется, вы поступите неправильно.
Zealint писал(а):
но ведь нужно было оставить кому-то проекцию своего опыта на язык программирования. Если бы я был средним специалистом в своей области, HPC, то и вообще бы ничего не сказал, а так хоть люди, плохо видящие будущее HPC, будут знать, как им делать НЕ надо.
Вот я пытаюсь донести одну важную мысль: невозможно создать хороший язык программирования, будучи только специалистом по компиляторам или только пользователем. Обязательно нужны ОБА аспекта. С одной стороны, только специалист по компиляторам может сказать, что можно реализовать, а что нет (и, собс-но, будет реализовывать язык). С другой стороны, любой язык создаётся для пользователей. И если мы хотим создать достаточно универсальный язык, пользователей должно быть много, из самых разных областей программирования. Невозможно создать хороший язык для HPC, не общаясь тесно со специалистами по HPC!
Freeman писал(а):
Чуда не случилось, скажем так.
В области computer science чудо сейчас является результатом упорного и кропотливого труда многих людей. Создание компилятора, даже неоптимизирующего, - большой труд, даже безотносительно идей языка. Поэтому, если есть хорошие идеи, концепции, стоит набраться терпения, пока не найдётся кто-то, кто сделает это.