Pull to refresh

HomeLisp два года спустя

Reading time2 min
Views3.5K
Прошло ровно два года с момента публикации на Хабре статьи про HomeLisp. Та статья, которую запостил мой сын, вызвала довольно бурное обсуждение и яростные нападки определенной части аудитории.

Что же произошло за эти два года с проектом?

Спешу «обрадовать» недоброжелателей: проект не заброшен и потихоньку развивается. 09.02.2012 разработчик выложил на сайт homelisp.ru последнюю версию пакета 1.13.4. Далее будет рассказано, чем она отличается от предыдущей (той, которую хабровчане «клевали» два года назад).

Самое важное отличие — переменные стали лексическими (представьте, разработчик знает, что такое лексическая переменная, замыкание, генератор и т.д.) Есть также и динамические переменные, для создания которых служит специальная функция.

Тело функции теперь может состоять из нескольких S-выражений (как принято в современных версиях Лиспа);

Реализованы возможности Common Lisp по заданию ключевых и необязательных параметров функций. Поддерживается возможность создания функций с неопределенным числом аргументов.

Реализовано множество функций Common Lisp (LET, DO, DOTIMES, DOLIST, LOOP, IF, WHEN, UNLESS и др.)

Реализованы hash-массивы и необходимый набор функций для работы с ними.

Реализована возможность сохранения состояния Лисп-машины в дисковом файле. Записывается абсолютно все — вплоть до графики в окнах. Информация может быть восстановлена из файла.

Реализован простой диалоговый отладчик.

В пакет графических функций добавлена возможность рисования кривых Безье и управление прозрачностью окна.

Добавлены функции CONTEXT и VARLIST показывающие состояния текущего контекста.

Реализован интервальный таймер.

Реализована обратная блокировка в макросах.

Скриптовая часть Web-компоненты переписана на JavaScript-е, так что теперь для работы с web-компонентой можно использовать FireFox или Oper-у (проверено!)

И, кроме того, исправлено приличное количество мелких (и не очень) ошибок.

В целом, HomeLisp стал ближе к Common Lisp (и почти не увеличился в объеме).

Теперь несколько слов о применении HomeLisp. По имеющимся у автора сведениям пакет скачала пара тысяч пользователей. Он (пакет) стал потихоньку применяться для обучения Лиспу (в Новосибирске, например, где автор выступил с 20 минутным сообщением). Стали попадаться ссылки на HomeLisp в различных форумах.

Ссылки в основном позитивные, если не считать злобного выпада линкусоидов. Словом все — как обычно.

Летом 2011 года автор участвовал в работе знаменитой Сибирской летней школы юного программиста — ЛШЮП-2011, где учил 6-8-классников Лиспу с использованием HomeLisp.

А в сентябре — декабре 2011 г автор прочитал небольшой курс функционального программирования в Саратовском Техническом университете опять же на основе HomeLisp.

Таким образом, можно констатировать, что первоначальные замыслы автор вполне реализовал. А проект будет развиваться дальше.

В заключение автор хочет сказать, что будет благодарен за любую конструктивную критику и пожелания.
Tags:
Hubs:
+19
Comments88

Articles