Усиление акцента на функциональные языки программирования

По материалам AIN.ua

Источник

Поскольку современным приложениям необходимы все большие пропускная способность, объемы хранилища данных и процессинг, становится понятно, что модель single-machine морально устаревает. Чтобы реально масштабировать систему, нужно параллелизировать ее настолько, насколько это возможно. А это приводит нас к функциональным языкам программирования вроде Haskell, Clojure, Scala и Erlang. Соответственно, растет спрос на программистов в данных средах.

Императивное программирование в основном полагается на изменяемое состояние (изменение значения объекта в процессе выполнения), а функциональное программирование фокусируется на неизменном состоянии, в котором задекларированный объект сохраняет свое значение на протяжении всего процесса. Следовательно у функциональных языков есть важное преимущество перед императивными и объектно-ориентированными языками: они по своей сути предназначены для поддержки параллелизации и тяжелой конкурентности.

Если вы четко знаете, что ваши данные не будут меняться в процессе выполнения программы, и что ваши функции транзитивны (неизменны), приложение может выиграть от облегченных функциональными языками масштабирования и распределенных вычислений.

Объектно-ориентированное программирование в ближайшем будущем никуда не денется. Но в условиях, когда пользователи хотят более быстрых результатов поиска, а исследователи — более точных, функциональное программирование получит больше внимания, будучи самым очевидным решением.

up