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

в 20:54, , рубрики: Лисп, метки:

Прошло ровно два года с момента публикации на Хабре статьи про 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 показывающие состояния текущего контекста.
Реализован интервальный таймер.
Реализована обратная блокировка в макросах.
И, кроме того, исправлено приличное количество мелких (и не очень) ошибок.
В целом, HomeLisp стал ближе к Common Lisp (и почти не увеличился в объеме).
Теперь несколько слов о применении HomeLisp. По имеющимся у автора сведениям пакет скачала пара тысяч пользователей. Он (пакет) стал потихоньку применяться для обучения Лиспу (в Новосибирске, например, где автор выступил с 20 минутным сообщением). Стали попадаться ссылки на HomeLisp в различных форумах.
Ссылки в основном позитивные, если не считать злобного выпада линкусоидов. Словом все — как обычно.
Летом 2011 года автор участвовал в работе знаменитой Сибирской летней школы юного программиста — ЛШЮП-2011, где учил 6-8-классников Лиспу с использованием HomeLisp.
А в сентябре — декабре 2011 г автор прочитал небольшой курс функционального программирования в Саратовском Техническом университете опять же на основе HomeLisp.
Таким образом, можно констатировать, что первоначальные замыслы автор вполне реализовал. А проект будет развиваться дальше.
В заключение автор хочет сказать, что будет благодарен за любую конструктивную критику и пожелания.


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js