Вот есть у нас кодер, программист, и лисповый программист. Дают им всем по задаче.
Кодер, значит, начинает пить растворимый кофе и вкалывать как ненормальный, по 10К строк в день, оно свистит, пердит, не работает, он злится, выкидывает все, ищет сниппеты, вставляет их, пьет таблетки от изжоги, потом снова вкалывает, потом снова растворимый кофе, потом все повторяется — пока не рождается в муках что-то больное, похожее на конечный заказ. Тогда кодер берет кувалду и начинает монстра этого новорожденного рихтовать со страшной силой в рандомных местах, до тех пор, пока монстр не согласится работать хотя бы приблизительно так, как от него хотели.
Приходит заказчик, морщит нос, дает эквивалент миски риса кодеру, чтобы тот мог заесть свой растворимый кофе, и идет с покалеченным творением больного разума к программисту. Занавес.
Лисповый, значит, программист, получив задание, не садится сразу же писать его реализацию. Он пишет DSL (подмножество лиспа, конечно же), на котором формулирует задачу, после чего пишет компилятор из этого DSL в другой DSL (тоже подмножество лиспа), потом из этого DSL еще во что-то, и так немного рекурсирует с нарастающей сложностью, по дороге находит пару решений не относящихся к делу, но интригующих NP-сложных задачек, участвует с этим арсеналом в ICFP'XX, не побеждает (потому что его лавры забирают питонисты и какой-то косоглазый сиплюсплюсник), тем временем его компиляторы в поте лица компилируют сформулированную им в начале этого предложения задачу. И вот, когда заказчик в очередной раз вопросительно подымает бровь, демонстрирует ему плод больших трудов — безупречную реализацию компилятора лиспообразного языка, в который вся задача в конце концов повыскомпилировалась.
Заказчик подымает вторую бровь, превращается в половой орган и идет стреляться, а лисповый программист пакует себе все наработки, выступает с историей успеха на очередной конференции, и у него появляется новый заказчик, впечатленный рассказом. Занавес.
Просто, значит, программист. Получает от заказчика изуродованный кувалдой монстр кодера, присвистывает, превращается в половой орган, забодяживает крепкий эфиопский кофе, заменяет сотни строк на одиночные вызовы библиотечных функций, о которых кодеру было некогда прочесть, после чего, почесав затылок, вымарывает половину кода как никогда не вызывающуюся, после чего из кода начинает проглядываться какой-то более-менее понимаемый замысел.
Программист вызывает заказчика на задушевный разговор, после чего, уяснив, чего тот на самом деле с самого начала хотел, берет несколько готовых тулзовин, в принципе делающих то, чего там заказчик хотел, пишет две программульки для заказчикоспецифичных хотелок, к этому всему простой фронтэнд на питоне с большой красной кнопкой «Сделать зашибись».
Занавес.