← Опять ссылки. The Computer Revolution Hasn't Happened Yet
Обсуждение
Читать и комментировать в ЖЖ ↗
В целом любопытно (оригинал пока не читал), но с пятым пунктом у них как-то странно. Во-первых, Ява зашибись портируется (это практика), во-вторых, у неё всё оч. хорошо с реальной переносимостью - уж поверьте практику, и, наконец, у неё всё хорошо с рефлексией. И позднего связывания на яве - жопой жуй. Я бы сказал, что если брать конкретный объём практически реализованного кода (а не теорий в журналах), то кода с поздним связыванием на яве в мире больше, чем на чём бы то ни было. reflections, динамически настраиваемые класслоадеры - это дядя просто не в теме.
Комментарий
Ой - да. И когда фанаты академических яву называют поп-культурой - это они себе льстят, Толь. Её делали люди, которые ох, как хорошо понимают в теории и практике программирования. А уж говорить про ДЮЖИНУ таргетов переноса какого-либо языка - типа сильно отстать от жизни. Сегодня некоторые embedded (!!) процессоры умеют яву исполнять _хардверно_ (с оговорками - часть в софте, да). А уж про порты под обычные операционки, в режиме мгновенной компиляции в процессе исполнения - и вообще вопросов нет.
Так что мужик-то типа токует - сахар был слаще, вода мокрее.
Комментарий
Читаю дальше. Блин. Это ты зря купился.
6. "Уравнения максвелла." ТОЛЯ! Сделать компактный базис - дураку гордиться! Ну одна константа и одна функция дают полный базис для дискретного мира ВООБЩЕ. Ну и хрен ли толку с этого? Это дрочилово для математиков - сесть у доски, и восхищаться изяществом. "Двое тащили чёрного козла и восхищались его фотогеничностью."
Чтобы что-то говорить об инструменте нужно сформулировать задачу. Без задачи ВООБЩЕ говорить об инструментах - нонсенс. А появление конкретной задачи ВСЕГДА вносит в идеальный мир математика искажения, которые приводят к тому, что инструмент обретает плоть, но перестаёт быть СТОЛЬ изящным. Только потому лисп и сдох, что повесить на стену и восхищаться им можно, "а шабашить лучше в телогрейке".
Я же говорю банальности, нет?
Комментарий
8 - опять фигня.
Лисп пишется на си/pl1 за два дня с отладкой, а точнее - скачивается и втыкается. Язык - инструмент. С появлением yacc (а это уж лет 30, нет?) сделать язык под задачу - работа трёх дней - отвечаю за базар.
Внятный проектировщик миксит и матчит. В ту же яву втыкается снизу си, сверху скриптинг, а уж инструментария для структуризации систем, позднего и очень позднего связывания (вплоть до, например, загрузки топологии объектов с указанием типов из БД), рефакторинга - жопой ешь.
Конечно, рефакторинг в яве и в лиспе - разные вещи, но это не имеет ничего общего с замшелой задачей переворотить 50 000 строк на pl/1 - сегодня внеязыковой инструментарий несравненно сильнее, и, собственно, язык без него сам по себе уже не котируется.
Комментарий
Ты говоришь очень близко к текстам Кея, который примерно так же отзывается о Лиспе (этот язык требует создания своего стиля программирования, что не под силу многим людям -- но это самый великий язык программирования, им нужно восхищаться).
Ты говоришь очень близко к текстам Кея, который так же говорит о профессии программиста -- она начинается с того, что обсуждается задача.
Компактный базис Кея интересует не сам по себе. И, заметь, он не удовлетворяется компактным базисом Лиспа, а пытается до сих пор изобрести и воплотить в жизнь иной компактный базис.
Я бы тебе посоветовал почитать вместе с этим постингом еще другие мои постинги из этой программистской серии (в частности, где я пишу про FONC).
То, о чем пишет Кей очень близко к моему программистскому опыту и ощущениям.
Комментарий
"Знание принципов освобождает от знания фактов. Чем больше я об этом думаю, тем больше понимаю, каким должно быть образование будущего." - здесь тремя руками за. И хвостом.
Комментарий
Слушай, ну ты же банальности говоришь.
И почему ты приводишь в пример все время Лисп? Бери уж Smalltalk -- все эти рефакторинговые практики, паттерны дизайна, и само XP появились из софтовых проектов на этом языке. Который, кстати, изобрел и до сих пор развивает Кей сотоварищи. В сквике рефактор-браузер, например, есть.
Комментарий
Ага. А теперь еще раз подумай про компактность ;)
Комментарий
Ну - я и сам говорю, что говорю банальности. :)
Комментарий
Э, есть нюанс (С). :) Академически компактность хороша, желанна и маняща. Но если бы разработчики компьютеров всё делали из элементов 2И-НЕ, которых достаточно для всего, они бы застрелились. Поэтому практика всегда гадит теории в миску, добавляя в базис полезные необязательности, нарушающие красоту мира.
Комментарий
Дядя как раз в теме. Очень даже в теме. Боюсь, что ты его просто не понимаешь.
Комментарий
Это у тебя общие абстрактные заявления. Сквик в 230000 строк кода (2.8Мбайт) имеет полную (от интернет-браузера до графического интерфейса и редактирования аудиофайлов) систему, исполняющуюся на голых процессорах со странными архитектурами -- причем "в ноль" для разных портов. Другие языковые системы таким похвастаться не могут -- возьми хотя бы Форточки.
Комментарий
Понимаешь, ява - это такой жупел. Про неё ходят легенды и принято считать, что это такой убогонькой язычок для кодеров-индусов. Эта песня раздувается дураками до такого масштаба, что иногда и умные верят. А начинаешь с ними разбираться конкретно - умолкают удивлённые. На сегодня это наиболее прогрессивный из практически пригодных языков.
Судя по некоторым характерным моментам я подозреваю, что умный товарищ не дал себе труда вдаться в тему. Уже одно заявление о том, что в яве плохо с рефлексией вызывает большое непонимание - то есть, да, у лиспа оно опять изящнее, но это потому, что он базисный, академичный. См. пост про то, что практическое уходит от чистой базисности.
Отсюда у меня недоверие. Если я не понимаю - покажи, что.
Толь, я много смотрю на дискуссию "убогая ява в телогрейке против хаскеля от кутюр". Она дурацкая. Мужик со времён PL/I мечтает о масштабном применении позднего связывания. Но ему нужно не просто позднее связывание, ему нужно позднее связывание в привычном ему языке. Он игнорирует тот факт, что в мире давно промышленно пишется гора поздносвязанного кода на яве - оно ему некошерно.
Ну, то есть, надо читать, конечно, но если ты понимаешь, где ему ява жмёт - расскажи. Моё предположение - он просто проманкировал поразбираться.
Комментарий
Ты неправ, когда говоришь о прошедшем времени. Я читаю список рассылки FONC. В этом списке все много веселее, вживую работают вполне современные коды, поддерживающие мультипарадигмальность. У тебя аспект-ориентированное программирование идет в режиме мгновенной компиляции в процессе исполнения? Контекст-ориентированное? Объект-ориентированное (в котором класс -- это тоже объект. И метод -- тоже объект ;)? У этих ребят все это поддерживается работающим кодом, описанным им самим (что позволяет легко портироваться с гарантией одинаковости исполнения на разных архитектурах, не более того. Ну, и еще понимать, что происходит в системе, не привлекая для этого понимания архитектуру подлежащего железа).
Комментарий
И при этом, кажется, немного мёртв, нет? :) Мало быть. Надо быть удобным и решать чью-то задачу. И то, о чём ты пишешь, тоже сильно не ново - был форт, который обладает всеми заявленными как ценные в этой дискуссии свойствами - элементарная реализация, компактный интерпретёр, широко перенесённый - чуть ли не биосы на нём писали. Но не живёт. Ну - потому как писать на ём застрелишься.
Отдельно отмечу, что функциональные и логические языки вообще плохо ложатся в наш мир. первый - в современные компьютеры, которые императивны, хоть ты их тресни. И потому общецелевой функциональный язык не имеет смысла - можно на императивном языке сделать уголок, где часть системы будет жить функционально. И будет это эффективно. В прологе вообще время имеет привычку назад ходить - у него проблемы совместимости со вселенной, как следствие.
Непросто всё.
Комментарий
1. Ему Ява жмет в том числе и тем, что там язык задан -- Ява. Он же считает, что языком нельзя пользователя ограничивать, язык должен быть расширяем.
2. Хаскель от кутюр тут вообще не играет (и Кей его обычно не поминает). Система должна поддерживать функциональное программирование, а конкретный его язык может выбрать пользователь (и подхакать его под свои пользовательские задачки при желании) в рамках работающей уже системы, причем не выключая систему для необходимых для этого компиляций -- все должно происходить на лету. Более того, система должна поддерживать "разные программирования" (многие из которых требуют текстовых операций с байт-кодом -- например, так устроено аспект-ориентированное или контекст-ориентированное).
3. Кей имеет ввиду не просто "позднее связывание", а extreme late binding.
4. Ты не обратил внимание, что Кей пишет в том числе и про то, что у Smalltalk плохо с рефлексией?! А в последней работе он добавляет, что хотел бы к рефлексии добавить еще и свойство интроспекции.
Ты читал дискуссии к предыдущим моим постам на эти темы? Хотя бы http://ailev.livejournal.com/466493.html
Комментарий
Чудесное сообщение. И dz очень правильно комментирует.
Египетские пирамиды было бы сложно построить и сейчас, несмотря на то, что технология шагнула далеко. Ну не компактные они, ни лёгкие и не простые, и сочетают в себе труд большого количества людей разной квалификации. И всё же стоят. Точно также и современные программы. Одной из причин моего развода с математикой было осознание несовершенства того, что реально работает - лёгкими и красивыми бывают только решения олимпиадных задач.
Комментарий
Про закон Мура не в тему. Он все-таки не только о производительности, но и о цене.
Комментарий
> У тебя аспект-ориентированное программирование идет в режиме мгновенной компиляции в процессе исполнения?
Да, на современных виртуальных машинах Java это так. При том, даже не компиляция мгновенная, а динамическая рекомпиляция используется. :-)
Комментарий
Сквик более чем жив, им пользуются по разным оценкам от сорока до пятидесяти тысяч человек. Я вот недавно купил для дитенка программу Plopp, написанную как раз на Сквике -- вполне работает. Ты, думаю, не в курсах насчет живости Smalltalk (а Сквик -- это только одна из множества реализаций).
Ты прав, функциональные и логические языки плохо ложатся в наш мир. А вот объектно-ориентированные специально были придуманы антропоморфными. И ложатся много лучше.
Ну, мультипарадигмальное программирование я уже поминал, как цель -- система должна поддерживать множество подходов, а не только один. Но при этом должна быть полная трассируемость: что где когда произошло, без извинений на то, какой подход выбрал юзер для данной подзадачи.
В этой школе выделяют отдельно непосредственное манипулирование, отдельно скриптинг, отдельно собственно программирование. И много там есть еще "промежуточного".
Ты как-то сильно прикипел к мейнстриму. А мне мейнстрим неинтересен обычно -- интересно то, что впереди. Вот, я унюхал очередную большую волну ;)