Entry tags:
Патч в кложурь
Сидел до утра пилил модуль в опердени на кложуре.
Наткнулся в процессе на классическую шизу - "ошибка в обработке ошибок", некоторые ошибки в исходниках (при macroexpand) в принципе не показывают информацию о месте, где произошла ошибка.
Мне-то хорошо, я hg diff глянул и сразу вижу где чернь, потому что я коммиты делаю после каждой заработавшей функции, но такие ошибки напрягают.
Полез искать в исходники, вроде починил, сообщение об ошибке чуть более аккуратно оформил, информации добавил, оформил баг-репорт с патчем.
Даже если в апстрим попадет нескоро - возможность самостоятельно починить исходники в дебрях языка или либ сильно спасает. И является тестом на пригодность к использованию разного рода не особо мейнстримных языков - если можно их починить самому за пару часов - пригоден, иначе - нет.
Наткнулся в процессе на классическую шизу - "ошибка в обработке ошибок", некоторые ошибки в исходниках (при macroexpand) в принципе не показывают информацию о месте, где произошла ошибка.
Мне-то хорошо, я hg diff глянул и сразу вижу где чернь, потому что я коммиты делаю после каждой заработавшей функции, но такие ошибки напрягают.
Полез искать в исходники, вроде починил, сообщение об ошибке чуть более аккуратно оформил, информации добавил, оформил баг-репорт с патчем.
Даже если в апстрим попадет нескоро - возможность самостоятельно починить исходники в дебрях языка или либ сильно спасает. И является тестом на пригодность к использованию разного рода не особо мейнстримных языков - если можно их починить самому за пару часов - пригоден, иначе - нет.
no subject
Почему кложурь, а не какой-то ООП-язык с функциональными примочками?
no subject
На фриноде в #clojure порядка 600 сидит, в списке контрибюторов человек под 100.
Насчет того, почему clojure - выбор реально на данный момент: скала, кложурь или F#. По крайней мере, в них доступ к БД, веб-фреймворки и GUI или родные или взяты из жабы с дотнетом. И интеграция со сторонними либами прямо, а не через "пишем на ANSI C адаптер через FFI размером больше, чем весь наш софт".
Из этого, на момент выбора, метапрограммирование было только в кложуре. Описание разного рода нетривиальных данных (конкретно, финансовая отчетность) проще всего делать на DSL сделанных поверх clojure.
Из недостатков - динамическая типизация.
Я сейчас рассматриваю вариант мигрировать вообще все на скалу, в целях исключения из продакшена бардака в языках. Но как-то пока не срастается - на кложури рестфул-веб-сервис поверх базы данных я сделал за пару дней, а в скале даже проект толком оформить пока не могу - всякие заебы с мавеном да версиями фреймворков да прочим вуду.
no subject
no subject