![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Ребе айсед регулярно пытается убедить меня использовать емакс для разработки на Clojure.
Ну, безотносительно к юзабилити, которое там странное, есть две вещи которые я в принципе не в состоянии понять:
1) Как сочетается редактирование текста и REPL? Одно - редактор файлов, второе, условно говоря, "командная строка).
2) Любой код работает не сам по себе, а в контексте 100500 внешних зависимостей, т.е. чтобы выполнить определенную функцию - ее надо, как минимум, загрузить со всеми жабьими зависимостями и рядом лежащими функциями, а как максимум - еще передать ей пару тыщ записей из базы данных.
То же самое касается любых языков с REPL - хаскель, скала, F# итд
Поэтому, я слабо представляю вариант отличный от того, что я использую - отдельно редактор текста, отдельно постоянно запущенный REPL, в котором редактируемый код доступен со всеми потрохами, необходимыми для его запуска. Т.е. я редактирую код, затем делаю перезагрузку кода в репле и затем запускаю функции из него.
Ну, безотносительно к юзабилити, которое там странное, есть две вещи которые я в принципе не в состоянии понять:
1) Как сочетается редактирование текста и REPL? Одно - редактор файлов, второе, условно говоря, "командная строка).
2) Любой код работает не сам по себе, а в контексте 100500 внешних зависимостей, т.е. чтобы выполнить определенную функцию - ее надо, как минимум, загрузить со всеми жабьими зависимостями и рядом лежащими функциями, а как максимум - еще передать ей пару тыщ записей из базы данных.
То же самое касается любых языков с REPL - хаскель, скала, F# итд
Поэтому, я слабо представляю вариант отличный от того, что я использую - отдельно редактор текста, отдельно постоянно запущенный REPL, в котором редактируемый код доступен со всеми потрохами, необходимыми для его запуска. Т.е. я редактирую код, затем делаю перезагрузку кода в репле и затем запускаю функции из него.
no subject
Date: 2013-03-23 06:40 pm (UTC)ты меняешь одну ф-ию и забрасываешь ее в приложение одним шорткатом. прям курсор у тебя стоит внутри этой ф-ии и ты ее забрасываешь. одну ф-ию а не 100500 тыщ строк кода.
каким образом ты из "командной строки" забросишь ф-ию?
файл забросишь, да. но там же х.з. что в этом файле то. у тебя там может макрос разворачивается на каждое чтение.
а по второму пункту - это вообще не правда для лиспа. никаких зависимостй нет у ф-ии. она чистая. все по value работает.
no subject
Date: 2013-03-23 06:57 pm (UTC)Особенно у функций нет зависимостей. Даже если она чистая - у нее статик зависимостей на библиотеки-classpath и соседние чистые функции сотни штук, реально. У меня в коде функций, которые зависят только от clojure.core сильно меньше половины.
no subject
Date: 2013-03-23 07:09 pm (UTC)+ тесты конечно. Моментальный запуск тестов, с красивой подсветкой мест ошибок и тремя видами дифов для is-макросов. Прелесть. Как вы живете без этого?
no subject
Date: 2013-03-23 07:52 pm (UTC)no subject
Date: 2013-03-24 11:14 am (UTC)