В нескольких последних проектах у нас были довольно жесткие требования по производительности и отказоустойчивости, и как следствие мы усложняли архитектуру, перекладывая часть работы на демоны, оставляя php только роль веб-фронтенда. Для демонов php принципиально не подходит, потому как работа с многопоточностью, всякого рода блокировками и утечками памяти это отдельная головная боль, которую приходится лечить вместо решения конкретной проблемы. Как-то исторически, мы использовали для этого дела питон, но и он не лишен недостатков, особенно в высоко нагруженной среде. Интерес к флексу и флешу немного погас, в следствии очень медленного развития платформы последние года 3. Так я пришел к тому что хочу попробовать erlang. Причин тому несколько, — все попытки пробовать функциональный подход в классических языках сводились к тому что так или иначе я все равно скатываюсь к стандартным решениям, поэтому ощутить вкус той прелести, о которой говорят адепты функционального программирования так и не ощутил, а хочется. По работе, постоянно сталкиваюсь со всякого рода низкоуровневыми требованиями, которые с одной стороны можно решить стандартными средствами, бубном и чтением манов, а с другой, запросто реализовать на erlang. Мне нравятся декларативные языки и пусть это не пролог, но шаг в эту сторону очень хочется сделать. Ну и конечно же «жирные преимущества» самого языка:
- распараллеливание всего и вся, — много работы делается на уровне самой виртуальной машины, много свободы для управления многопоточностью, необходимость в блокировках практически отсутствует
- масштабирование в ширину практически ничего не стоит
- язык высокоуровневый, внутри виртуальной машины есть свой garbage collector, что защищает от глупых ошибок, с одной стороны, упрощает код с другой
- отказоустойчивость как концепция языка: всякого рода обработчики ошибок, гипервизоры, следящие за процессами и перезапускающими их, если надо
Собственно, вдохновившись такими возможностями, я взялся изучать его. Не могу сказать что дело движется быстро, но буду стараться делиться с вами своими «первыми шагами» в этом направлении, и вместе посмотрим, что из этого может выйти.