![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Окончание. Начало здесь, вторая часть здесь.
Получили невероятное удовольствие. Оно было бы ещё больше, если бы мы на второй день таки-вывели и написали универсальный компилятор в LtG — но увы :D

Читал я как-то годную фэнтезю — Бэккера, "Князь пустоты". Там есть сцена поединка магов.
Клан первого из них, "Завет" — владел магией высших порядков, хотя всегда жил крайне скромно. Другой маг был большим человеком в самом богатом магическом клане "Багряных Шпилей" — но вот беда, никто, кроме Завета, высшей магией не владел. Все прочие кланы строили свою карьеру на заклинаниях, подобранных наугад, Завет же владел теорией.
Маг Шпилей вызвал самого сильного духа, какого мог, своими эмпирически подобранными заклятиями (сильнейшими в клане, заметьте). И до смерти удивился, когда полуживой маг Завета с помощью заклинаний-Абстракций (они и правда так назывались!), без усилий размазал духа и соперника тонким слоем по окрестностям.
Примерно таким же тонким слоем чувствовали себя мы перед чемпионами, потому что:
Четыре японских хаскеллиста:
Вот у меня недавно
dima_kender спрашивал старый вопрос — какой язык программирования лучше для быстрой разработки :D
Я ответил старый ответ — язык, который хорошо знает команда. Ну и смотря чего разработка — десктоп, простой веб, рич веб, сложная логика или CRUD, с БД или без.
И дал свои предварительные ответы, при прочих равных:
Для веба — Rails, для десктопа — Windows.Forms.
Но если программисты и задача пыц-пыц какие умные, то Haskell, как показали последние дни.
Часть третья
Получили невероятное удовольствие. Оно было бы ещё больше, если бы мы на второй день таки-вывели и написали универсальный компилятор в LtG — но увы :D

Читал я как-то годную фэнтезю — Бэккера, "Князь пустоты". Там есть сцена поединка магов.
Клан первого из них, "Завет" — владел магией высших порядков, хотя всегда жил крайне скромно. Другой маг был большим человеком в самом богатом магическом клане "Багряных Шпилей" — но вот беда, никто, кроме Завета, высшей магией не владел. Все прочие кланы строили свою карьеру на заклинаниях, подобранных наугад, Завет же владел теорией.
Маг Шпилей вызвал самого сильного духа, какого мог, своими эмпирически подобранными заклятиями (сильнейшими в клане, заметьте). И до смерти удивился, когда полуживой маг Завета с помощью заклинаний-Абстракций (они и правда так назывались!), без усилий размазал духа и соперника тонким слоем по окрестностям.
Примерно таким же тонким слоем чувствовали себя мы перед чемпионами, потому что:
- надо было овладеть новым, "магическим" языком;
- он почти что так и назывался - только слово Magic заменили словом Lambda;
- мы тыкались в темноте, оттачивая комбинации наших примитивных эмпирических "заклинаний";
- те, кто освоил теорию, в мгновение ока (от 200 до 900 ходов) выносили "в ноль" наш тщательно, вручную подобранный раш.
- Браузнуть сырца можно тут: http://svn.victorsergienko.com/icfpc2011/trunk/domain-model/
- Итого — примерно 71К на Груви + 35К юнит-тестов на нём же.
- Нам не хватало как минимум одного, третьего программиста. И вообще, два программиста и два математика — это в четыре раза слабее, чем четыре программиста-математика. У японцев-Atomic-ов, которые, наверняка, станут чемпионами, как раз столько и было :)
- Команда Ciklum бултыхается где-то в полупроходниках со своими 21-23 победами из 30 на неофициальном сервере.
А как оно было у японцев...
Четыре японских хаскеллиста:
- собирали части пушки в разных словах (потом оказалось, что иначе в этом SKI-исчислении никак);
- авто-компилировали все стратегии;
- умели, если им что-то сломали, оживлять ячейку и продолжать любую (!) старую стратегию с того места, на которое возможно откатиться (!!!), и собирали подходящие запчасти по разным слотам (!);
- У меня самовосстанавливаться умеют только две очень частных стратегии - dec() слабой ячейке врага, и revive() своей.
- ещё они написали свой тестовый-контестовый сервер — от нечего делать, надо полагать.
- эти монстры научились убивать "sitting duck" в 165 ходов.
Вот у меня недавно
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Я ответил старый ответ — язык, который хорошо знает команда. Ну и смотря чего разработка — десктоп, простой веб, рич веб, сложная логика или CRUD, с БД или без.
И дал свои предварительные ответы, при прочих равных:
Для веба — Rails, для десктопа — Windows.Forms.
Но если программисты и задача пыц-пыц какие умные, то Haskell, как показали последние дни.
Tags: