Istnieje mnóstwo „teoretycznych” argumentów przemawiających za tym, dlaczego programowanie funkcjonalne jest dobrym pomysłem (zbyt wiele, aby pozostało otwartym pytaniem, i słusznie).
Jednak większość z nich to argumenty albo teoretyczne („elegancja” itp.), Albo skierowane do programistów.
Problem polega na tym, że większość z nich jest całkowicie bezużyteczna, gdy celem jest przedstawienie kierownictwu wyższego szczebla dużej firmy , z których niektórzy nawet nie są programistami, a wszyscy dbają głównie o argumenty biznesowe : koszty, zarządzanie kapitałem ludzkim , dostawa produktu, obsługa klienta i przychody; a także fakty ilościowe ponad teoriami teoretycznymi, których nie można w pełni poprzeć faktami.
Czy istnieją jakieś przekonujące argumenty do przedstawienia tych obaw biznesowych, jeśli chodzi o rozważenie przyjęcia programowania funkcjonalnego jako koncepcji (nie określonego języka), w porównaniu z typową mieszanką procedur / OOP, np. Java / C ++ / (Perl | Python) .
Najlepiej szukam argumentów, które są ilościowe i / lub oparte na badaniach lub studiach przypadków. Np. „Według tego odniesienia wskaźnik błędów systemów wielowątkowych w Lisp / F # jest o 10% wyższy niż w Javie” lub „80% absolwentów wyrażających preferencje pożądanej technologii nazwanej programowaniem funkcjonalnym jako jedna z 3 najlepszych zainteresowań”.
Wiem, że Graham przedstawił przypadki użycia programowania funkcjonalnego dla starup i byłby otwarty na niektóre z jego argumentów, zakładając, że mogą one dotyczyć większej firmy o ustalonej pozycji.
psI doskonale zdaję sobie sprawę z tego, że możesz zrobić coś blisko programowania funkcjonalnego w Perlu, prawdopodobnie w Pythonie i (prawdopodobnie) nawet w Javie 8 lub C ++ 14. Ale to nie znaczy, że organizacja używająca Perla, C ++ lub Javy poparłaby funkcjonalność vs OOP / podejścia proceduralne nawet w tych językach
Na potrzeby tego języka „duży” jest definiowany jako wystarczająco duży, aby mieć dedykowaną grupę inżynierii / narzędzi programistycznych, która określa, co wszyscy programiści mogą używać / robić; i co najmniej setki programistów na niskim poziomie .