Если человек пишет на лиспе (кстати, Грэм говорил только про Common Lisp, а потом сменил мнение на Clojure, не?

), он всё-таки не обязан никому (и себе) писать только на лиспе. Производительность переписанного на другом языке участка кода может быть выше оптимизированного кода на исходном
Эти языки, насколько я понимаю мнение Грэма, одинаковой силы. Вы говорите о производительности, но вы ведь не можете не знать цитату про тупой код и умные структуры данных, не говоря уж о цитате про корень всех зол. Производительность для pet-project, которому не ставится сходу цели стать популярным, совершенно не важна и знание трюков оптимизации поможет писать код продуктивн
о не больше, чем понимание тонкостей работы TFT-монитора. Продуктивн
ый код пускай делает аутсорс.
Вы говорите о схожести M. и лиспа, но не говорите об их различиях, и о спектре различий языков, которые называют диалектами лиспа.
Конечно не говорю, но я хотя бы
сделал вброс попытался сгенерировать ответ на небезразличную мне тему и теперь небезосновательно надеюсь, что кто-нибудь поумнее меня осветит этот вопрос дальше, чем успел увидеть я до настоящего времени.
Заметьте, я ваш совет почитать SICP вообще не обсуждал ни разу.
Надо было хоть чем-нибудь уразнообразить свой пост, чтобы не быть совсем бесполезным.
Вы исходите из того, что Грэм прав, и что пресуппозиции всей этой ерунды вообще верны, и языки линейно упорядочены по относительной мощности. Позвольте не принимать таких сильных постулатов.
Скорее дискретно, чем линейно. Вы разве не слышали об этой задаче?

Её решение близко к элементарному на языке с рекурсией и близко к невозможному без реализации Лиспа. Я вот как представлю себе ООП реализацию Number, который (как я себе представляю) может быть и Float-ом, и Rational-ом, меня аж передёргивает от всего того полиморфизма, который нужно реализовать, и насколько я знаю, в Джаве нет такой реализации аккумулятора Number-ов, её просто не осилили (слышал, в новой появились лямбды - должно быть, теперь это можно сделать без труда).
As an illustration of what I mean about the relative power of programming languages, consider the following problem. We want to write a function that generates accumulators-- a function that takes a number n, and returns a function that takes another number i and returns n incremented by i. (That's incremented by, not plus. An accumulator has to accumulate.)In Common Lisp this would be(defun foo (n)
(lambda (i) (incf n i)))
Придётся на одном лиспе писать другой «лисп»
На программируемом языке программирования писать программируемый язык программирования, вы серьёзно? Если есть крутой pet-project, на лиспе, что-то вроде пре-альфа-бета версии М., то можно просто позвать негров, чтобы запилили более подходящую публичному сервису выч. модель, а самому дальше продолжать писать на том же лиспе, что и раньше, разве что нужно залочить для ЦА небезопасные фичи языка. А если есть знание системного ЯП, то... возможностей выдать миру что-то вроде M. поменьше всё-таки. Это не значит, что его не нужно знать, но это значит, что лисп-хакеру будет непродуктивно расфокусировывать своё внимание на детали реализации текущего поколения процессоров и прочие вопросы, которые в идеале должен решать компилятор.