Common Lisp is a powerful multiparadigm programming language. With great power comes great responsibility. This guide recommends formatting and stylistic choices designed to make your code easier for other people to understand.
Еще один макросы не умеет готовить? Бред там написан. Макрос почти всегда лучше чем функция. Если какие-то вычисления можно сделать во время компиляции, их НАДО делать во время компиляции, а не оттягивать до исполнения.
Просто смешно, что гугол так вот публично расписывается в своей трусости и кривизне ручонок. Хотя, от них-то как раз кривизны и стоит ожидать в первую очередь. После андроеда им уже репутацию никогда не поправить.
Насчёт ридер-макросов - а интересно, какую реализацию лиспа они используют?
Я бы им продвинул свою библиотеку, правда она уже деградировала до поддержки только одной реализации.
You must never use a macro where a function will do
Ну так это правильно, макросу нелзья сделать ни mapcar, ни trace.
Мне вот интересно, как гугл использует лисп и какую реализацию?
Где-то читал одного сотрудника из ITA Software, они используют много реализаций, упоминались: LispWorks, ClozureCL и SBCL - это для ядра и логики. Низкоуровневые вещи на C++, которые интегрируются в лисп через FFI. Фронтенды на Java (web) и питоне. Еще вся скриптота и тестовые вещи на питоне.
Они его и не делают. Они экспериментируют с построением языков. И всем остальным в этом до Racket очень далеко. Любой язык, который только можно себе представить, поверх Racket реализуется легким движением руки. Для CL потребовалось бы немного батареек, чтобы достичь подобного эффекта, но главное не в этом, главное в отсутствии этой культуры у коммонлисперов. Не умеют они компиляторы писать, а вот рекетиры уже научились.
ну не на 100%, но я не видел ни одного проєкта, сделаного в гугле которьій хоть гдето используется
+ я видел гдето фразу что «мьі не пользуем руби ибо у нас уже есть питон, и питон ${здесь идет перечисление некоторьіх свойсв питона которьіе им важньі}»
Не умеют они компиляторы писать, а вот рекетиры уже научились.
Хотелось бы увидеть пример реализации компилятора какого-нибудь языка поверх Racket. В идеале в формате статьи/брошюрки с пояснениями, а ля «Scheme in 48 hours».
Перевожу для простых смертных. Гугол купил клиентскую базу лавочки ITA Software, получив в нагрузку их софт на некоем маргинальном языке. Взглянув в код, Гугол окуел от мегатонн лисп-лапши, сказал «моб твою ять!» и решил придумать хоть какие-то правила, чтобы изначально неуправляемый проект, состоящий из мешанины овсянки и обрезков ногтей, можно было модернизировать.
designed to make your code easier for other people to understand.
А вот этим они убивают основную мякотку лишпа — нечитаемость (hence, неприятие нормальными разработчиками, не являющимися фриками от IT).
Поэтому ITT и наблюдается столько баттхёрта скобканутых.