Myslím že přinejmenším u velkých podnikových systémů se funkcionální programování hned tak neuchytí, samozřejmě že u hardwaru to asi bude jinak, třeba nějaká ta grafika a nebo výpočty tak tam to má šanci. IT se už dost fragmentovalo a bude se fragmentovat ještě více, takže to lze vidět různě.
Podívejme se na to ale třeba z hlediska pracovních pozic, třeba velká budoucnost se věští počítačovému vidění, ale zkuste si najít nabídku práce přes nějaký portál kde toto chtějí. V porovnání s běžnými pozicemi různých kodérů PHP/Java/.NET je jich málo, dokonce i databázových specialistů na MSSQL/Oracle je daleko více.
Je dost možné, že nové technologie které přijdou a které v konečném důsledku ovlivní celý svět nebude obecně příliš mnoho lidí používat. Někdo třeba udělá novou službu která se rozšíří stejně jako Facebook nebo Twitter a použije k tomu funkcionální programování nebo já nevím třeba nějakou vymakanou umělou inteligenci, ale naprostá většina programátorů zůstanou patlalové, minimálně to tak zůstane dokud se všude bude vyučovat jako první jazy Java nebo třeba C#.
Vůbec třeba do dnes nebyl vyřešen konflikt mezi objektovým a relačním modelem, ne na všechno se hodí objekty. A tak vznikají srandy jako Linq nebo alespoň lokální kopie dat v SQLite, případně jiné zhůvěřilosti. Je asi pravda, že funkcionální programování řeší mnohé problémy OOP, prostě zmizí, nevzniká takový boiler plate tak jako ve staticky typovaných objektově orientovaných jazycích.
Stejně si ale nedovedu představit, jak bude při funkcionálním programování prováděno pochopení systému, když člověk přijde na novou pracovní pozici a má alespoň to OOP tak si projde třídy v hierarchii a snadno najde ty kusy kódu, které mohou být znovu použity, ale pokud někde "ve vzduchu" visí nějaká funkce která něco dělá, jak se o ní člověk dozví? Tohle je problém i klasických procedurálních neobjektových jazyků. Částečně to samozřejmě řeší moduly, takže asi v F# budou věci v assembly, nevím jestli to má i namespacy, nedíval jsem se, ty by ale situaci taky zlepšily. Ale možná, že ve funcionálním paradigmatu duplikace kódu tolik nevadí, netuším, možná je spíš pozitivní - když se změní funkce na které závisí několik pomyslných stromů volání, tak se musí všechny otestovat, a když by jedna funkce ovlivňovala několik modulů rozdělených mezi jednotlivé týmy, no nevím nevím.