Go, Rust e Julia domineranno l'industria della programmazione entro 10 anni?
Risposta come: Go, Rust e Julia domineranno l'industria della programmazione entro 10 anni?
La legge di Cole sull'economia contro il design
L'economia semplice batte sempre il design sofisticato
- Corollario: L'economia dei sistemi informatici conta più dell'architettura dei computer
- Nel suo libro, The Innovator's Dilemma, il Prof. Clay Christensen della HBS discute la 'disruption' da parte della tecnologia 'minore' (questa idea si osserva anche nel software sotto l'idea del "peggio diventa meglio")
Semplicemente, perché questo accada, deve esserci un incentivo economico. In tutte e tre le lingue di cui chiedete, guardate il caso d'uso e fate la domanda: C'è una ragione economica per cui usare il linguaggio di programmazione {Go/Rust/Julia} avrà senso tra 10 anni (o quello che è).
La storia del settore informatico ha dimostrato che i cambiamenti all'ingrosso nei linguaggi di programmazione raramente sono stati economici, quindi non avvengono. Abbiamo ancora il Fortran come linguaggio scientifico primario (vedi la risposta di Clem Cole a Perché il Fortran viene scelto rispetto al C/C++ per il software di simulazione nella fisica computazionale?) Il Cobol viene lentamente soppiantato perché le vecchie applicazioni stanno morendo e nuove soluzioni sono entrate in scena (vedi la risposta di Clem Cole a Cosa sono il Cobol, il Fortran e il Pascal?).
Ricordate, è quasi sempre economicamente poco interessante per un programmatore scrivere codice da zero in un nuovo e diverso ambiente di programmazione. La maggior parte dei programmatori passa le sue giornate (e notti) a modificare ed estendere sistemi esistenti.
Questa fu una delle ragioni per cui UNIX ebbe tanto successo. Il tuo codice non era più legato solo al linguaggio di sviluppo, ma anche a un sistema. Da qui, le 'guerre UNIX' - i produttori cercavano di bloccare gli utenti non solo in un dialetto del linguaggio ma anche nel sistema operativo come VMS, NOS, AOS, VM/370, ecc.
Una grande ragione per cui Linux ha avuto successo sul mercato è che Linux è UNIX[1], e come tale era non solo possibile ma anche economico sostituire le tradizionali (più costose) piattaforme hardware basate su UNIX di DEC/Sun/IBM con hardware più economico basato su x86/Intel*64 in stile 'PC' e indovina un po', come utente non dovevi riscrivere il loro codice. La maggior parte, se non tutto, semplicemente funzionava.
Dal punto di vista del linguaggio puro, il C è stato in grado di fare la più grande incursione quando è diventato economico usarlo per sostituire l'assembler a prescindere dal sistema operativo (cioè non solo UNIX - era il linguaggio del microprocessore). Il Pascal ha avuto un po' di fortuna, originariamente sui minicomputer, ma è stato spostato anche sui micro. Per un periodo sui PC originali basati su 8086, è stato un testa a testa tra C e Pascal, ma con la nascita di quelli basati su 386, Pascal è stato soppiantato da C++ (per una serie di ragioni, ma il fatto è che la suite di sviluppo C++ di Microsoft era estremamente conveniente), così per il codice dello spazio utente è diventato lo standard.
Java è decollato perché il WWW è decollato e al tempo della guerra Unix contro PC. Java era all'epoca il linguaggio del "scrivi una volta, esegui ovunque" e riempiva bene quella nicchia. I sistemi operativi di destinazione erano abbastanza diversi, usare solo C++, Pascal/Delphi, o C non era sufficiente per essere economici.
Ma il trucco era che in ogni caso che ho offerto, il nuovo linguaggio di successo si adattava ad una nuova nicchia di mercato che era diversa dal vecchio mercato stabilito dove dominava un linguaggio diverso. Il nuovo linguaggio cresceva man mano che la nicchia di mercato cresceva.
FWIW: Guardate linguaggi come Smalltalk, che non hanno mai avuto senso economico, probabilmente perché non hanno mai avuto un nuovo posto dove andare. Smalltalk era (è) chiuso e ti faceva ricominciare da capo con tutto il tuo codice, il tuo ambiente di destinazione, ecc. È uno dei miei preferiti, ed è un grande linguaggio per l'insegnamento e la prototipazione rapida, ma come ho detto in altre risposte - mostratemi un'area di applicazione reale (in stile produzione) che lo usi?
Quindi, perché uno di questi tre linguaggi decolli, ci vorrà un mercato nuovo e in rapida crescita che valorizzi ciò che c'è e non abbiamo una codebase consolidata. Questa è una perturbazione in stile Christensen e sono estremamente potenti quando le trovi. Forse sarà qualcosa come l'apprendimento automatico a dare la possibilità a uno o più di loro.
Aggiornato il 08/05/19, per correggere un paio di refusi.
- Non voglio entrare in una battaglia alimentare con questo commento. Il governo degli Stati Uniti nel caso AT&T contro UCB/BSDi ha stabilito che AT&T possedeva la proprietà intellettuale (IP) di UNIX. Tutti i 'look/work-a like' UNIX che usano quelle idee sono UNIX ma.... AT&T non poteva chiamarlo segreto commerciale ed era legittimo creare nuove implementazioni basate su quelle idee. Per maggiori dettagli si veda: Clem Cole'risposta a Qual è la differenza tra Unix e Linux?
Articoli simili
- Quando è stata Julia Child in televisione?
- Pensate che Google stadia dominerà l'industria dei videogiochi? Saranno Sony e Microsoft nei prossimi due anni?
- Quanto è probabile che Yellowstone erutti entro i prossimi 100 anni?
- La maggior parte degli anni 2000 erano più simili alla fine degli anni 90 o all'inizio degli anni 2010?