Я видел выступление Саймона Пейтона Джонса в Google Video, в котором говорилось об этом. Он упомянул, что в те времена люди были очень заинтересованы в написании аппаратного обеспечения, специализированного для выполнения определенного языка, но люди нашли лучший способ решить проблему: сделать компилятор умнее. Посмотрите на Хаскелл. GHC производит несколько смехотворно быстрый код из высокоуровневых конструкций, но Haskell настолько сильно отличается от ассемблера x86, что оба выглядят чуждо друг другу. То же самое произошло с Java и Lisp: Java и Lisp работают очень быстро на современных компьютерах и используют приличные преимущества наших процессоров, но изначально Java была скомпилирована для странного стекового байт-кода, и очень давно люди создавали машины Lisp.
Вот видео, кстати. Большая часть этого не относится к текущему вопросу, но вы можете найти его интересным, он о том, «почему функциональное программирование важно» и о том, как сделать модульные тесты простым способом.
http://video.google.com/videoplay?docid=-4991530385753299192&hl=en
Только недавно (в последнее десятилетие или около того?) Компиляторы были настолько умны, что сделали Haskell и Java почти такими же быстрыми, как C, хотя ни один из них не раскрывает большую часть базовой архитектуры. Черт, GHC даже не использует стек, насколько это странно?