Про парадокс Блаба

Jun 08, 2016 01:02

Поль Грэм пишет о мощности языков. В данном случае программирования.
Программисты очень привязываются к своим любимым языкам, а я не хочу оскорбить ничьи чувства, поэтому я объясню свою позицию, используя гипотетический язык с названием Блаб ( Read more... )

Leave a comment

Comments 7

john_archer June 8 2016, 12:53:41 UTC
А математическая индукция в этом случае работает?

Reply

y_ug June 8 2016, 20:16:33 UTC
Ну, если совсем строго говоря -- конечно, не работает. Но это ведь была метафора, призванная показать наличие в языках неких уникальных фишек, ценность которых непонятна посторонним. Реальная, ощутимая ценность, которая повышает производительность и устраняет ошибки.
Мы же знаем что на ассемблере в здравом уме писать мнего кода никто не захочет, что Кобол и Бейсик несовершенны, что Фортран, его сколько ни перелицовывай, всё-таки устарел, что ПЛ-1 оказался слишком сложным, что макросы и указатели в Си провоцируют ошибки, что в с++ зачем-то ввели шаблоны, лямбды и вывод типов, а в яву женерики и тоже лямбды, и тоже, вывод типов, что отсутствие контроля типов в динамических языках ведёт опять-таки к ошибкам.

Reply

john_archer June 9 2016, 09:34:01 UTC
С примерами, как ты выше проиллюстрировал, она обретает законченный вид.

Отсюда и вопрос. Что же касается того, что и куда ввели опосля, то, к сожалению, далеко не всегда поздние добавления и «улучшизмы» являются таковыми.

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

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

Reply

y_ug June 9 2016, 21:43:30 UTC
На самом деле вид вовсе не законченный. Пропущено напоминание о том, что "итерация -- от лукавого, рекурсия -- от Бога". Дело в том что Грэм (а это, как-никак, основатель y-combinator и hacker news) писал не "в общем", а про совершенно конкретный случай. Про то как и почему он писал в середине 90-х на практически голом лиспе веб-сервер и коммерческое приложение к нему, которое потом продал яхе. Фишки были в том, что функциональный код получается компактнее и содержит меньше ошибок (если компилируется:), а также в возможности благодаря свойствам лисп-машины менять определения отдельных лисповских функций на лету прямо на работающем сервере, что помогло сильно ускорить разработку ( ... )

Reply


Leave a comment

Up