Насколько зрелой является текущая реализация Open Dylan?
Открытый Дилан выглядит действительно интересно. Однако прежде чем использовать его в реальной разработке, я хотел бы знать, насколько зрелой является реализация. Я знаю, что сам Дилан - старый язык, и он использовался Apple.
2 ответа
Итак, текущая реализация, Open Dylan, была разработана с 95-го года Арлекиным и Функциональными объектами, прежде чем она стала открытой с открытым исходным кодом в 2003 году.
Как определяется зрелость? Компилятор включает в себя IDE (только Win32, извините), CORBA, OLE, всего 850000 строк кода. Это (почти) весь код Дилана.
Это означает, что, в отличие от других языков, он самодостаточен. Сам компилятор написан на языке Dylan (за исключением некоторых строк C (~4000 строк кода) для привязки среды выполнения / сборщика мусора. Бэкэнды - это либо собственный код x86, либо C.
Пожалуйста, не путайте эту реализацию с двумя другими: Gwydion Dylan (также написан на Dylan; ранее разрабатывался в CMU, теперь также с открытым исходным кодом), который компилирует Dylan в C; и Apple Dylan (закрытое где-то в Яблоке большое хранилище;).
Согласно комментарию на Hacker News, он еще не готов. Они только начали оживлять проект.
По состоянию на 4 июня 2020 г. разбивка файлов в проекте OpenDylan, загруженных с https://github.com/dylan-lang/opendylan, включает:
Итак, вы можете видеть, что существует 3112 файлов Dylan, состоящих из 30643409 байтов, а также что на языке C всего 104 файла, состоящих только из 1288062 байта. И это подтверждает ответ Ханнеса, но также дает количественную оценку.
Чтобы преуменьшить значение ответа Stesch, который больше не должен считаться актуальным... Это не похоже на "проект, который еще не готов". Это тоже не похоже на возрождение проекта. Поэтому, пожалуйста, не принимайте во внимание возможно вводящий в заблуждение ответ "stesch".
Я изучаю языки программирования, и Дилан - мой выбор номер один, потому что: 1. Он основан на принципах Lisp, очень прочной основе 2. Это единственный Infix Lisp, первоначально созданный Apple, которая до сих пор произвела поразительный ценность для своих пользователей. 3. Поскольку это Infix, обычному программисту, использующему язык C-Like (JavaScript, C#, C, Java и многие другие), будет легче выучить отличный и мощный язык. 4. Этот язык обладает всеми возможностями макросов Лиспа. В языках C макроязыки кажутся прикрученными, это совершенно другой язык, и иногда для его работы требуются дополнительные скобки, что приводит к тонким ошибкам. Макросы Lisp реализуются на более высоком уровне, далее в процессе компиляции,а также использовать тот же язык (Лисп), а не совершенно другой язык, поэтому он имеет ту же "форму" и его намного проще использовать. Использование макросов гораздо более распространено в языках Lisp, потому что это намного проще, в дополнение к тому, что они более мощные.
Прочтите это, если вам интересно: D-выражения: мощность Лиспа, стиль Дилана
А также это для понимания того, почему и почему макросы Lisp сильны: Let over Lambda - 50 Years of Lisp Это большая часть книги, онлайн, которую можно прочитать бесплатно. Я купил книгу для последних нескольких глав, одну о производительности и ту, которая реализует Forth на Lisp, а затем реализует Lisp на Forth.
Доменные языки - это огромный инструмент в нашем арсенале, который мы не очень хорошо использовали. Макро-мощь Lisp (и аналогичная гибкость Форта) позволяет на лету определять DSL как неотъемлемые дополнения к создаваемому решению. Вы расширяете язык - предоставляете новые способы выражения решений наряду с более обычным кодом.
Немного не по теме, мне нравится Factor как лучший Форт. Создано Славой Пестовым, гением, который сейчас работает в Apple.
В своем видео Слава объясняет, что Factor основан на Forth, но также и на Lisp. Я намерен углубиться в это, чтобы выяснить, что это означает, поскольку я, надеюсь, искал наличие истинных возможностей макросов в стиле Lisp, реализованных в других языках.