Zuallererst - weil der Compiler viel mehr tun muss. Wenn Sie einen imperativen Compiler erstellen möchten, können Sie fast eine 1-1-Transformation zum Assembler durchführen, und der erzeugte Code hat eine akzeptable Geschwindigkeit (sicher - es könnte viel zu tun sein, aber es handelt sich im Grunde genommen um 1-1-Kompilierung + Optimalisierung). Funktionale Compiler MÜSSEN mit starkem Inlineing, Tail-Call-Optimalisierung usw. umgehen. Daher war die Implementierung funktionaler Sprachen in der Vergangenheit viel langsamer als in C / C ++ / ... (sie gewinnen jedoch mit jeder Iteration viel an Geschwindigkeit, da Compiler besser werden).
Zweitens - Programmierer sind es so gewohnt zu sagen, dass sie den Ansatz "Es gibt keinen Spoo ... State" nicht akzeptieren können. Sicher - der Mangel an Staat ist nicht in jeder Bedingung nützlich, aber der Mangel an (globalem) Staat bedeutet nicht den Mangel an lokalem Staat.
Drittens - funktionale Programmierung hat keine schöne Geschichte. Die OOP haben eine schöne Geschichte, da die Objekte Substantiven zugeordnet sind und wie intuitiv sie sind. Danach wissen Sie , dass es nicht so einfach ist , weil Sie nicht eine Klasse erstellen kann Manager
als Unterklasse von Employee
wie Employee
bekommen fördern kann , Manager
und Sie müssen Dekorateure rumspielen. Die Funktionsprogramme haben eine Geschichte in der Mathematik, die meiner Meinung nach nützlicher, aber weniger marktfähig ist.
Wie intern aus der Computerperspektive gibt es keinen Unterschied zwischen parallelem und gleichzeitigem Rechnen. Viele Programmierer sehen keinen Unterschied, und viele Sprachen haben dieselben Grundelemente, um beide zu handhaben. Dank des Mangels an lokalem Status und einfachen Threads in funktionalen Programmiersprachen ist die Parallelisierung des Algorithmus viel einfacher. Die gleichzeitige Programmierung wird jedoch nicht automatisch vereinfacht, da es bei der Parallelität um den globalen Status geht.
Schließlich gibt es viele ältere Programme, die inperativ geschrieben sind. Selbst die Portierung von der imperativen Sprache zur imperativen Sprache ist viel einfacher als zur funktionalen.
Soweit ich weiß, beginnen Investmentbanken, die Funktionsprogramme intern zu übernehmen, damit sie in XXI c. (in sehr wichtigen, wenn auch versteckten Bereichen) - damit sie an Dynamik gewinnen.
PS. Obwohl ich glaube, dass funktionale Programme "besser" sind, was bedeutet, dass sie die Komplexität besser verbergen als andere Ansätze, bedeutet dies nicht, dass es keine Bereiche wie Skripte gibt, die von Natur aus zwingend erforderlich sind.