-
-
Save VyacheslavMik/c973527c8d9b06cacf431220ff4bdcb7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
I. | |
1. https://gigamonkeys.com/book/ - Practical Common Lisp - книга об основах программирования на CL и метапрограммировании. | |
2. https://lispcookbook.github.io/cl-cookbook/ - сборник рецептов в разных областях CL. | |
3. https://www.lispworks.com/documentation/HyperSpec/Front/Contents.htm - Common Lisp Hyperspec - список функций и макросов с их описание и примерами использования, которые есть в стандарте. | |
4. https://swizard.info/articles/solitaire/article.html - пример разработки DSL на Common Lisp. | |
II. | |
1. `hunchentoot` - веб-сервер. | |
2. `parenscript` - транспайлер с подмножества (весьма ограниченного) CL в javascript. | |
3. `postmodern` - работа с Postgresql. | |
4. `cl-ppcre` - библиотека для работы с регекспами. | |
5. `drakma` - выполнение http-запросов. | |
III. | |
Плюсы - интерактивная разработка; простая, но мощная подсистема макросов; мультипарадигменность. Благодаря интерактивной разработке (repl) язык позволяет меньше отвлекаться от написания кода и ждать, пока произойдет сборка приложения, его запуск, проверка гипотезы и внесение изменений в код. Таким образом легче проверять идеи, отлаживать код и не терять ход мысли, отвлекаясь на другие дела, что увеличивает продуктивность разработки. Развитая подпистема макросов позволяет писать более читаемый код (посредтвом мини-DSL'ей, которые используются для четко определенных доменных областей) и, если все правильно организовать, легче вносить архитектурные изменения, которые могут развернуть проект в нужную заказчику сторону. Мультипарадигменность позволяет писать код в той парадигме, которая лучше подходит для определенного алгоритма, не делая код чужеродным. | |
Минусы - минимальное количество вакансий; библиотеки, которые реализуют функциональность на 80% и меньше, имеют баги, не закрывающиеся годами, а то и десятилетиями; устаревший стандарт. Из-за минимального количества вакансий, разработчиков на CL очень мало и в основном это энтузиасты, которые уделяют ему время в свободное от основной работы время, что влечет за собой вторую проблему - отсутствие библиотек подходящих для коммерческой разработки, отсутствие блогов с описание того как начинающему стать профессионалом в CL и помощи в поиске и устранении багов. В следствие такой ситуации и отстутствия заметного числа коммерческих компаний, использющих Common Lips, стандарт остается неизменным с 90-х годов, что тоже мешает привлечению разработчиков. Хотя сообщество и пытается писать библиотеки, которые добавят современные подходы, используемые в других языках в CL, этого недостаточно. Вследствие всех этих проблем, разработка в любой новой области становится похожей на полосу препятствий и рекомендована только тем, кто любит эти препятствия преодолевать. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment