Функциональное программирование-в-большом
От: rfq  
Дата: 14.03.16 06:59
Оценка: 14 (2) :))) :))
Программирование-в-малом — это программирование в рамках одного процесса (адресного пространства оперативной памяти).
Программирование-в-большом — это обеспечение координированной работы многих процессов, как в пространстве (распределенное программирование) так и во времени (файловые системы и базы данных).
Про функциональное програмирование здесь уже дискутировали много раз — но только в рамках программирования-в-малом.

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

Я могу привести лишь один пример — системы контроля версий (SVN, CVS, Git и т.п.). Используемые а них структуры данных — change set'ы, иммутабельные состояния рабочих пространств — вполне себе функциональны. Но разработчики таких систем нигде открыто не заявляют о приверженности фйнкциональному программированию. Похоже что они, как и неграмотный господин Журден, и не подозревают, что "говорят прозой". Во всяком случае, они при любом удобном случае готовы вернуться в лоно процедурного программирования.

А между тем, последовательное применение функционального программирования сняло бы множество проблем, в первую очередь проблему воспроизводимости. Меня эта проблема уже достала, например:
— я сделал версию, закоммитил, коллега ее подкачал и говорит: "не работает". Я все бросаю, теряю время на выснение причины.
— коллега сделал версию, я ее скачал, и ... (см выше).

И это при условии приминения системы контроля версий, которая уже берет на себя массу необходимых действий. Но остается еще много дыр — переменные окружения, настроенные по разному, из-за чего используются разные версии утилит (make, sh, etc) и другие.

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

Если кто захочет написать, что у меня ничего не выйдет — пусть пишет, будем учиться переубеждать скептиков.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.