January 4th, 2008

moose, transparent

50 лет лиспа (программистское)

В этом году исполняется 50 лет языку Лисп.

В честь этого события я распечатал и прочитал LISP 1.5 Programmer's Manual, полную спецификацию первой версии Лиспа, которая широко распостранилась за пределами MIT. Это 62-й год. Очень интересная книга. Забавно наблюдать смешение универсального и конкретных подробностей имплементации на архитектуре IBM 7090, одного из больших компьютеров того времени (32k слов по 36 бит каждое - около 140kb памяти в сегодняшних байтах).

Одна из самых странных особенностей этой книги с точки зрения современного Лиспа состоит в том, что к тому времени Маккарти еще не отказался от отдельного синтаксиса для M-expressions - мета-языка программ, отдельного от S-expressions, из которых состоит собственно Лисп. Все алгоритмы в книге написаны на M-expressions, и отдельно указано, как переводить их в программы для системы LISP. Это обстоятельство не мешает LISP 1.5 "схлопывать" уровни данных, программ, и интерпретатора программ, как это свойственно Лиспу в целом, просто это схлопывание не столь очевидно выражено в книге, из-за использования отдельного метаязыка для описания большинства функций.

Один из лучших советов, которые я могу дать программистам, стремящимся расширить свой кругозор: выучите Лисп. Это далеко не так страшно, не так сложно, и не так архаично, как кажется издалека; вы многому научитесь и на многое сможете смотреть по-другому, даже и продолжая работать с любым другим языком.

Я изучил Лисп год назад, после того, как много лет - больше десяти - это откладывал по тем или иным зряшным причинам. Современный учебник, который обычно хвалят знатоки Лиспа - Practical Common Lisp - заслуживает все эти похвалы, и доступен как в виде книги, так и в сетевой версии. Сделайте себе одолжение, и если вы хотите научиться чему-то новому в 2008 году, и еще не знаете Лисп, попробуйте ее прочитать.