Problemem z programowaniem funkcjonalnym nie jest samo programowanie funkcjonalne - to większość ludzi, którzy to robią i (gorzej) większość osób, które projektują języki, w których to robi.
Problem wynika z faktu, że pomimo tego, że są bardzo bystrzy (czasem wręcz błyskotliwi), zbyt wielu ludzi jest po prostu zbyt fanatycznych w kwestii czystości, doskonałości i egzekwowania własnego (często raczej wąskiego) spojrzenia na świat i programowania na język i wszyscy, którzy go używają.
Jednym z rezultatów jest brak kompromisu. Prowadzi to (między innymi) do około 10 000 języków i dialektów, które są wystarczająco różne, aby drażnić, ale tylko dość rzadko różne, aby jeden miał naprawdę znaczącą przewagę nad innymi. Wiele osób patrzy również na rzeczywisty świat i decyduje, że ponieważ nie pasuje on zbyt dobrze do modelu funkcjonalnego, jest po prostu zły i najlepiej go zignorować.
Brak możliwości kompromisu doprowadził również do powstania kilku języków, które są absolutnie piękne dla określonego rodzaju problemu (lub kilku konkretnych rodzajów problemów), ale naprawdę są do kitu dla wielu innych. Niektóre z nich są prawdopodobnie spowodowane przez sam model funkcjonalny, ale wydaje się, że o wiele więcej (przynajmniej dla mnie) jest spowodowany przez podstawowy typ osobowości, który na początku przyciąga ten obszar.
To prowadzi do wielu problemów. Po pierwsze, nauka „programowania funkcjonalnego” ma przede wszystkim wartość filozoficzną. W przypadku większości innych rodzajów języków znajomość jednego języka danego gatunku stanowi znaczącą pomoc w nauce innego. Jeśli mój projekt używa języka XI, zwykle mogę zatrudnić kogoś, kto zna język Y (ale nie X) dość bezpiecznie. W przypadku języków funkcjonalnych jest to o wiele mniej prawdziwe. Być może znasz Erlanga całkiem dobrze, ale nadal uważasz, że monady Haskell są całkowicie obce i niezrozumiałe.
Połącz liczbę języków z ograniczoną możliwością przenoszenia między nimi talentów, a dostaniesz brzydką sytuację: prawie jeden język lub dialekt nie jest w stanie utworzyć „masy krytycznej” niezbędnej do tego, aby można go było dość ogólnie wykorzystać. To się powoli zmienia, ale to wciąż dużo jak Linux staje się dominującym pulpit OS - każdego roku, ludzie wymyślić przekonujące argumenty, że w końcu to będzie lat - i podobnie jak ludzie, którzy już przewidują, że każdy od dziesięcioleci znów się mylą. Nie oznacza to, że (jedno z nich) nigdy nie może się zdarzyć - po prostu ludzie, którzy patrzą na prognozy i myślą „nie, nie w tym roku” byli tymi, którzy mieli rację do tej pory.