Ну и пусть пишет! Говнокодить можно на любом языке. Хоть на хаскеле. Тем более в elisp есть макросы. Можно хоть постфиксную нотацию забубенить. :) Все равно в любом новом или старом серьезном проекте это или не будет использоваться вовсе, или будет, но только там где это реально оправдано и только повысит читабельность кода.
Дополню, что Guile поддерживает много диалектов: Emacs Lisp, Scheme, какие-то еще. Кому-то нравится один язык, кому-то — другой.
Еще ECMAScript и Lua:
In addition to Scheme, Guile includes compiler front-ends for ECMAScript and Emacs Lisp (support for Lua is underway)
Ну и пусть пишет! Говнокодить можно на любом языке. Хоть на хаскеле. Тем более в elisp есть макросы. Можно хоть постфиксную нотацию забубенить. :)
Поэтому я считаю, что таких людей надо всячески ограничивать. Мне не нужно фаллоимитировать на макросы, мне нужен рабочий код, в котором можно при желании разобраться. Разве не ясно, что крутизна CL его и погубила по той простой причине, что один лиспер не мог понять код другого?
И все эти языки прекрасны! Они динамические, скриптовые и гибкие.
Вопрос не в этом, а в том: зачем мне это знать? Если мы пишем только на схеме, то я с радостью изучу ее гигиенические макросы. Но если мы пишем на трех языках (в зависимости от расширения), то не хочу постоянно держать в голове их отличия. Западногерманские языки тоже хороши, но пусть их все изучают лингвисты, а мне достаточно английского, и все их учить нет никакого желания, только дополнительная путаница.
Про тот же Neovim на хабре писали:
Плагины можно будет писать на любом ЯП без их явной поддержки из редактора
Пока на них ничего не писали уровня Org-mode или CEDET, обсуждать нечего.
Разве не ясно, что крутизна CL его и погубила по той простой причине, что один лиспер не мог понять код другого?
Я думаю, это далеко не первая причина сравнительно низкой популярности CL в наши дни.
Вопрос не в этом, а в том: зачем мне это знать?
Так устроен мир :). Скажем для JVM сейчас наиболее распространенными языками являются Java, Scala, Groovy, Clojure. Это называют достоинством платформы, а не недостатком. Высокая интероперабельность языка с хостовой платформой - большой плюс. Тут могла бы получиться схожая ситуация. Прежде всего, это привело бы к росту популярности самой Guile. Только представь. Мы имеем среду исполнения полностью свободную, и весьма развитую. И это не JVM. И есть возможность писать на разных языках. И есть бесшовная интеграция с любимым редактором. И комьюнити в разы больше. Больше документации, примеров, готовых приложений. И да, больше глупого кода. Но их авторы будут постепенно расти, учиться, а вместе с ними будут расти и развиваться их проекты.
Но если мы пишем на трех языках (в зависимости от расширения), то не хочу постоянно держать в голове их отличия.
Ну на самом деле сейчас многие проекты уже мультиязыковые. Тривиальный пример - веб. Сервер на чем-то своем, клиент на JavaScript. А бывает языков на проекте куда больше...
Пока на них ничего не писали уровня Org-mode или CEDET, обсуждать нечего.
Об этом и речь! Что со временем они непременно должны появиться!
Окей, каждый высказал свое мнение. Я придерживаюсь принципа бритвы Оккама: не преумножайте сущности без надобности. Если взять JVM, то: Java - это ООП; Groovy - скриптота; Scala - функциональщина; Clojure - скобочки. А вот чем отличается Emacs Lisp от Scheme? - в сущности ничем. Это то же самое, что куча диалектов Scheme, которые нафиг никому не сдались. Одна задача - один язык, и не плодите сущностей.
Прежде всего, это привело бы к росту популярности самой Guile.
Не надо ждать чудес от лиспоподобных языков, семантика которых разработана в 60х годах. Многих сегодняшних программистов охватывает ужас при виде такого обилия скобочек.
И комьюнити в разы больше
Пример Scheme наглядно показывает, что это не так. Дайте одну каноническую реализацию, пусть не самую совершенную, и сообщество будет больше по причине того, что каждый сможет использовать больше чужих наработок, а его наработки, в свою очередь, будут востребованы большим числом разработчиков.
Ну на самом деле сейчас многие проекты уже мультиязыковые. Тривиальный пример - веб. Сервер на чем-то своем, клиент на JavaScript.
Веб - одна из худших технологий сегодняшнего дня, и это очень показательно, что ты в примере выбрал именно ее.
Clojure - скобочки. А вот чем отличается Emacs Lisp от Scheme? - в сущности ничем.
И все же лисп лиспу рознь. Думаю, не нужно напоминать о семантике и синтаксисе. Emacs Lisp более императивный чем Scheme или Clojure. А скобочки тут как бы сбоку :).
Многих сегодняшних программистов охватывает ужас при виде такого обилия скобочек.
Да, да! Об этом и речь. И они будут писать код, скажем на Lua, а ты сможешь вызывать его, скажем из Emacs Lisp!
Дайте одну каноническую реализацию, пусть не самую совершенную, и сообщество будет больше по причине того, что каждый сможет использовать больше чужих наработок, а его наработки, в свою очередь, будут востребованы большим числом разработчиков.
Дак вроде как раз Guile и претендует на эту роль.
Кстати, хороший вопрос. Ведь для схемы есть стандарт. И реализации в той или иной степени его поддерживают. Немного в стороне Racket - но это самостоятельный диалект лиспа теперь. Вот насколько хорошо код, написанный для одной реализации схемы легко запустить на другой? Честно, никогда не сталкивался с таким вопросом. Всегда думал, что коли есть стандарт...
С другой стороны, так ли много языков, где различные реализации дружат между собой без малейших проблем? Я что-то не припомню таких... :)
Разницы не больше, чем между Python, Perl, Ruby. Вкусовщина.
Да, да! Об этом и речь. И они будут писать код, скажем на Lua, а ты сможешь вызывать его, скажем из Emacs Lisp!
Лучше договориться о каком-нибудь одном языке, ящитаю.
Вот насколько хорошо код, написанный для одной реализации схемы легко запустить на другой? Честно, никогда не сталкивался с таким вопросом. Всегда думал, что коли есть стандарт...
Вопрос скорее о сферическом коне в вакууме. Реальность такова, что стандарт RSR5 не включает такие обыденные вещи, как регэкспы. Спроси buddist, но там ситуация с совместимостью схем похуже, чем у питона 2 и 3.
С другой стороны, так ли много языков, где различные реализации дружат между собой без малейших проблем? Я что-то не припомню таких... :)
Я такого не говорил, а о канонической реализации, будь то Java, C или Haskell.
Реальность такова, что стандарт RSR5 не включает такие обыденные вещи, как регэкспы. Спроси buddist, но там ситуация с совместимостью схем похуже, чем у питона 2 и 3.
Ok, буду знать. Спасибо.
Я такого не говорил, а о канонической реализации, будь то Java, C или Haskell.
Java, Haskell - ok. В Джаве Гармошка (ныне почившая) и GNU Classpath - не считаются. А что в C? Там вроде как борьба GCC и Clang? Суть в том, что только для случая, когда язык = его реализация (де-факто) этот принцип действует. Такие технологии есть, но не все. Другой вопрос, плохо это или хорошо? Гипотетически предположим, что Oracle Java стала 100% проприетарной и платной? Или совсем прекратила поддержку и развитие?
Если брать GNU софт, да и практически весь линукс, то это GCC. Не уверен, что Clang-ом соберется хотя бы ядро, хотя, может быть, были попытки.
Суть в том, что только для случая, когда язык = его реализация (де-факто) этот принцип действует. Такие технологии есть, но не все. Другой вопрос, плохо это или хорошо? Гипотетически предположим, что Oracle Java стала 100% проприетарной и платной? Или совсем прекратила поддержку и развитие?
Путаешь мягкое и теплое. Есть Open Source и проприетарщина. В первом случае смерть технологии невозможна, поскольку сорцы всегда открыты. Во втором случае смерть технологий - обыденное дело, когда увольняется команда разработчиков, а весь код сдается в утиль.
Но работа идет в правильном направлении, согласись, количество коммитеров, декларируемые цели, хорошая поддержка сообществом - что еще нужно? Да хотя бы ради возможности запиливать плагины для insert-mode (читай комплитеры, индентеры и т.д.), ну и конечно более лушчая подсветка.
Но работа идет в правильном направлении, согласись, количество коммитеров, декларируемые цели, хорошая поддержка сообществом - что еще нужно? Да хотя бы ради возможности запиливать плагины для insert-mode (читай комплитеры, индентеры и т.д.), ну и конечно более лушчая подсветка.
Все это просто слова, декларировать можно что угодно. Пока в проекте избавление от ifdef с помощью утилиты unifdef. Больше ничего не сделано.
/me огляделся по сторонам, емаксеров сидит человек 5, плюс лично знакомых (не по линуксам) двое или трое, плюс знакомых (по линуксам, но не по лору) человека 3.
Емакс редко ставится в дефолтной инсталляции
щито? apt-get install emacs24 чем не дефолт? А без личных настроек даже в vim недобно делать что-то серьёзнее редактирования конфигов.
тяжелый
64-битная система, 100500 открытых буферов - кодинг, dired, jabber, почта (wanderlust) с кучей писем, repl-ы, w3m, grep, etc. Аптайм (емакса) 18 дней, сожрано ~250M памяти. Это много?
и вообще сложный. Порог вхождения, на мой взгляд, вообще запредельный.
Для ушельцев с блокнота - сильно проще vim, потому что нет модальности, командного режима и вот этого всего. Плюс есть куча функций, сильно облегчающих поиск «как это сделать» (M-x describe-*, например).
Давеча собирал X11R5 - собралось, хотя и пришлось понапрягаться.
Более системный софт, конечно, сложнее. gated, например, наверное не стоит и начинать собирать...