QNA > P > Perché Non C'è Nessun Linguaggio Di Programmazione Funzionale Nella Top Ten?

Perché non c'è nessun linguaggio di programmazione funzionale nella top ten?

Perché la maggior parte del software là fuori fa schifo!

Sono sicuro di aver scritto un'altra risposta su questo tema. E no, non sto dicendo che solo il FP produce software di buona qualità. Tuttavia è un approccio intellettualmente disciplinato e rigoroso che tende a funzionare bene.

Ma pensate al vostro ristorante preferito. Ora vi chiederò:

Perché è molto meglio di McDonalds?

Evitabilmente avrete una lista di ragioni. Gli ingredienti o lo chef o il servizio o semplicemente il gusto... qualunque cosa sia, secondo te, questo posto sa come fare del buon cibo! Ora vi chiederò

Perché non è popolare come McDonalds?

Vedete cosa è appena successo? Non ti sembra ridicolo? Se pensi al fast food non pensi a un'esperienza culinaria fantastica! Pensi di essere affamato o esausto durante un viaggio su strada o un viaggio o semplicemente in una perdita di qualche tipo e la convenienza che fornisce. Inoltre sì, luv loro fries.... anche se erano molto meglio negli anni '90. In ogni caso l'idea di provare a scalare e rendere popolare in massa il tuo ristorante stellato Michelin preferito sembra assurdo! Non è possibile addestrare così tante persone a cucinare in quel modo! Anche se si potesse, non ci sono abbastanza risorse...

Il fatto è che la scelta della lingua è molto simile. La gente prende l'affare del pasto numero 2, sì, lo ingigantisce e pensa che farà un po' di esercizio extra più tardi per bruciarlo (o no)...

Guarda JavaScript... È contemporaneamente la lingua più odiata e più usata là fuori in questo momento. Perché? È odiato perché è stato creato in 10 giorni o qualcosa del genere e quindi ha un sacco di difetti. È usato così pesantemente perché è come l'unica cosa che funziona nel browser. È l'unico ristorante nel raggio di 30 chilometri!

C sarà sempre grande perché è il linguaggio nativo di tutti i nostri sistemi operativi moderni. Questo fornisce un'enorme base da cui lavorare.

C++ - fornisce compatibilità all'indietro con il C, e nuove astrazioni a costo zero. È facile capire la convenienza di questa soluzione.

Java - ok, forse non capisco bene come sia diventato così popolare. Mi sembra che abbia fallito il suo scopo originale, essere il linguaggio applet del web. Eppure il software aziendale lo ha adottato quando è diventato abbastanza veloce perché era essenzialmente una versione ridotta di C++ con un garbage collector. La sintassi è molto simile se non quasi esattamente la stessa. Ma penso che ci sia di più nella storia. Qualcosa sui backend Java contro i backend LAMP? Possibilmente coinvolgendo eBay? Non mi è chiaro cosa fosse esattamente quella storia, quindi...

C# - stessa storia di Java. Dumbed down C++ con un garbage collector.

Php- ok davvero nessuna esperienza con o indizio del perché sarebbe popolare, ma anch'esso ha una sintassi simile al C.

I linguaggi di programmazione funzionale d'altra parte sono rimasti un po' orfani. Se la macchina Lisp fosse sopravvissuta e avesse prosperato le cose sarebbero state molto diverse! Lisp sarebbe stata la scelta più conveniente per molte cose. Ma siccome non è successo, la programmazione funzionale si è dovuta evolvere in disparte, in gran parte nel mondo accademico. Naturalmente ha un aspetto molto diverso. Un diverso tipo di sintassi. Una sintassi diversa e incompatibile con il C.

I praticanti più recentemente hanno iniziato a vedere che ci sono reali benefici della FP. Quindi un sacco di sforzi sono stati fatti per rendere il paradigma più conveniente. Linguaggi come Scala e F# permettono alla FP di interagire con le sandbox della JVM e del CLR. Anche C++ ha aggiunto un sacco di caratteristiche FP. Sfortunatamente, per altre ragioni, penso che i risultati di questo approccio siano davvero cosmetici e non credo che questo sarà sufficiente a far scaturire un vero uso della programmazione funzionale in generale.

Solo perché si usa la Java stream api e si scrivono alcuni lambda una volta ogni tanto non significa che si è vicini alla FP... Proprio come se creo una struct in C che include dati e alcuni puntatori a funzioni, non significa che sto facendo OOP...

Di Rutger Arencibia

Quali sono le dieci principali tendenze nello sviluppo di applicazioni mobili? :: Quali sono le 10 migliori aziende di sviluppo di applicazioni mobili in Canada?
Link utili