Пока я ездил в Питер, тут успели объявить
результаты конкурса (того самого, про обрезалку карт).
Мое решение заняло победоносное третье место... из трех работоспособных решений вообще =) Остальные оказались не совсем рабочими.
Ну да не суть. Свои цели я практически выполнил, они были такие:
- Продемонстрировать, что common lisp не является deprecated, как утверждалось где-то в журнале
- Продемонстрировать, что решения на CL практичны: при сравнимом LOC оказываются производительнее и потребляют меньше памяти, нежели решения на других языках
- В выгодном свете акцентировать внимание на самых сильных сторонах CL: метапрограммирование и генерация кода в рантайме
С последним пунктом, правда, случилась заминка =) Походу моего симпатичного решения никто из жюри (да и вообще) не оценил, ограничившись "многа букв, ниасилил". Хотя я там и старался с докстрингами. Собственно, отсюда третье место.
Но результатами я все равно страшно доволен. В интернете всколыхнулась
очередная волна флейма про коммон лисп, небезызвестный
dz так вообще
окрестил меня "программером, с уровнем куда выше среднего".
По поводу перфоманса: все работоспособные решения я, конечно, победил с серьезным отрывом :) Из неработоспособных -- меня в полтора раза заовнила какая-то
питоновская обрезалка (
исходник). Но там типа си-код и (насколько я понял) заточено на частный вид osm-файла.
У меня же идея была в другом, типа: "смотрите, насколько круто, удобно, понятно и абстрактно получается в DSL-ях, и насколько молниеносно при этом все работает". Вышло, правда, по-другому: "Работает, конечно, очень шустро, но ничерта не разберешь в этих скобках и четырехэтажном метапрограммировании" :)