Лев Валкин про ФП и Erlang

Вчера ходили с @vseloved и @matveym на выступление Льва Валкина про функциональное программирование в целом и Erlang в частности. Кратко запишу основные тезисы, которые мне очень актуальны.

Новый набор инженерных принципов, непривычных для императивных языков

Функциональные языки дают возможность поработать с другими способами построения программных систем. Эти новые способы позволяют писать лучше даже на императивных языках. Это очень важный для меня тезис. Я немного поработал с Эрлангом, когда мы работали над Рисоваськой, теперь по совету Льва я изучу Haskell.

Язык для командной работы

Лев начинал писать Echo на perl, но когда проект дорос до размеров, требующих согласованных усилий команды разработчиков, то пришлось выбирать другой язык.

Примерная цитата - "Инженер может реализовать на любом языке любую задачу, которая помещается в его голову". А вот для командной работы нужно уже что-то выбирать подходящее под задачу и команду.

Почему Erlang:

Быстрое ревью и лучшая вкуриваемость кода

("вкуриваемость" - термин, предложенный кем-то из команды Echo)

Обычно фичи реализуются меньшим числом строк кода (чем на C++/Java/php). Отсутствие деструктивного присваивания позволяет игнорировать целые блоки кода, зная что переменные (которые скорее "постоянные") в них не изменятся. Разный интерфейс для межмодульного (передача сообщений) и внутримодульного (вызов функций) взаимодействия тоже помогает.

Устойчивость к случайным ошибкам

От необработанного исключения упадет только процесс, в котором оно возникло.

Интроспекция и hot reload

Когда на нагруженном сервере возникают редкие ошибки (например, падает каждый 10000-й запрос), то можно подключиться к работающей ноде и посмотреть что там реально происходит без остановки работы всей системы. Можно добавить логгирование в нужные точки и обновить код на лету (hot reload).

Особенности

А сегодня Лев рассказывает про стартапы, бизнес и Силиконовую долину.

Популярные статьи

Про стэнфордские онлайн-классы

Django Dash 2011, мои впечатления

Лев Валкин про Силиконовую долину

OpenOffice + Python, pабота с файлами MS Word

Блоги программистов

Бывают ли такие дизайнеры?

Скорость

Жизнь и работа на море

Нужно больше творить

Pip, virtualenv и virtualenvwrapper

Об авторе

Меня зовут Роман Ворушин. Я отец двух дочерей и страстный программист.

С командой киборгов сделал Рисоваську, а потом еще много веб-проектов. Сейчас работаю в Grammarly.

roman.vorushin@gmail.com