пятница, 30 марта 2012 г.

Про кодогенераторы


Я тут намедни столкнулся с необходимостью написать кодогенератор С++-ного кода. И даже дёрнулся было писАть его на JS. Но через часик остановился и задумался - а нафига? И написал на богомерзкой джаве. И знаете что? Остался очень доволен. Да, может быть это из-за того что на джаве я последнее время пишу много и она у меня "под пальцами летает". Но скорее всего - из-за офигительных средств рефакторинга и статической типизации, какой бы бедной в джаве эта типизация не была. Из минусов - джава ужасно многословна, основная логика (без утилитных классов, в которых тоже дофига полезного) вышло строк 600. Из плюсов - мощные рефакторинги позволяли переколбашивать дизайн на лету по нескольку раз (по мере изменения понимания что именно мне нужно), при этом почти не вводя ошибок за которыми приходилось бы лазить в отладчик. Из интересностей - код получился ну очень похожим на лисп :) - но это наверное из-за специфики, меня просто при написании этого кода не интересовало вообще ничего кроме скорости написАния (ни корнер кейсы, ни скорость работы, ни сколько оно будет жрать памяти, ни даже читаемость собственно кода)



Ну в целом я как та тёща - теперь и на 40 дней поеду :) Подходом остался очень доволен