Perché ci sono così tanti linguaggi di programmazione?
E cosa spinge qualcuno a creare un linguaggio di programmazione nonostante esistano già altri linguaggi?
Perché ci sono così tanti linguaggi di programmazione?
E cosa spinge qualcuno a creare un linguaggio di programmazione nonostante esistano già altri linguaggi?
Risposte:
I nuovi linguaggi di programmazione spesso imparano dai linguaggi esistenti e aggiungono, rimuovono e combinano le funzionalità in un modo nuovo. Esistono alcuni paradigmi diversi come orientati agli oggetti e funzionali e molti linguaggi moderni cercano di mescolare le caratteristiche di entrambi.
Vi sono anche nuovi problemi che devono essere risolti, ad esempio l'aumento delle CPU multi-core. La soluzione più comune è stata quella dei thread, ma alcuni linguaggi di programmazione cercano di risolvere il problema della concorrenza in un modo diverso, ad esempio il modello dell'attore. Vedi Erlang - Software per un mondo concorrente
È un ciclo. Inizi una nuova lingua e sei libero di sfuggire a tutte le sintassi sbagliate e alle scelte sbagliate dei tuoi predecessori. Nella versione 1, la lingua sembra eccezionale perché non ha quel bagaglio e fa il lavoro. Quindi, nelle versioni più recenti, si inizia a sperimentare funzionalità che potrebbero non funzionare o si introducono funzionalità da altri linguaggi più recenti che rendono la sintassi un po 'complicata. Ecco, dopo alcune altre versioni, ti rendi conto che la tua lingua è ora complicata come quella che hai sostituito, con problemi di sintassi sciocchi e bagaglio legacy. E improvvisamente, ti rendi conto che se hai creato una nuova lingua, potresti sistemare tutto ciò ...
Per lo stesso motivo ci sono martelli, cacciaviti, seghe a mano, seghe a nastro, martelli pneumatici, piedi di porco e una miriade di altri strumenti: non tutte le lingue sono perfette per ogni compito. Alcune lingue sono mirate a specifici settori problematici: R è particolarmente utile per l'analisi statistica, C è particolarmente indicato per la scrittura di kernel del sistema operativo, Haskell è particolarmente indicato per calcoli matematici o finanziari, Erlang è particolarmente bravo nella programmazione concorrente, ecc.
Inoltre, per lo stesso motivo per cui le camicie hanno colori diversi: ad alcune persone piace solo lo "stile" di una lingua rispetto a un'altra.
E, naturalmente, molti programmatori trovano divertente inventare una nuova lingua, solo per vedere cosa succede, o forse perché hanno qualche conoscenza delle lingue e vogliono grattarsi un prurito o provare alcune idee.
Perché tutti fanno schifo (in un modo o nell'altro).
In questo momento, abbiamo creato circa 5000 lingue per descrivere i problemi naturali e nessuno di essi è disponibile per scrivere programmi (un esempio potrebbe essere "inglese").
Fino a quando qualcuno non troverà un modo per creare un linguaggio di programmazione in grado di esprimere ciò che puoi esprimere in una frase in un linguaggio naturale, continuerà ad arrivare.
Ovviamente una motivazione importante per la creazione di una nuova lingua è quella di ottenere qualcosa di meglio rispetto alle lingue già esistenti. E poiché c'è sempre spazio per migliorare, ci saranno sempre nuove lingue.
Gli interessi commerciali sono un'altra grande ragione. Ritengo sia importante, ad esempio, che Microsoft possa offrire un linguaggio per ogni esigenza, in modo che le aziende e gli sviluppatori preferiscano le loro piattaforme.
Codice legacy. Se inizi una nuova lingua non devi ascoltare / considerare tutti i reclami quando cambi una lingua precedente. Anche se tutti concordano sul fatto che la nuova implementazione sia migliore, non può rompere il vecchio codice. E c'è un sacco di vecchio codice là fuori.
perché è divertente creare nuove lingue anche se non hanno un reale utilizzo
Un linguaggio di programmazione esoterico (a volte abbreviato in esolang) è un linguaggio di programmazione progettato per testare i confini della progettazione del linguaggio di programmazione per computer, come una prova del concetto o come uno scherzo.
La creazione di un linguaggio di programmazione è piuttosto divertente. È vicino al puro lavoro creativo, poiché non sei limitato ai requisiti precedenti. Non è più così difficile implementarlo, dal momento che puoi sempre compilare in C e compilare il codice C per prestazioni adeguate se stai scrivendo un compilatore in primo luogo.
Naturalmente, molti di noi hanno meno buone idee di quanto pensiamo di avere, quindi spesso finiscono per essere deludenti o non essere amati da nessuno che non sia il designer originale.
Pensa a qualsiasi linguaggio di programmazione che conosci. Puoi facilmente inventarti diverse cose che non ti piacciono, vero? Presumibilmente hai idee su come risolverli. Con solo un po 'più di slancio, supponendo che tu sappia molto sulla costruzione del compilatore (e molte persone lo fanno), potresti iniziare a progettare e persino implementare il tuo.
Risposta breve veloce
Reinventare la ruota ... Qual è la tendenza attuale ...
Risposta lunga noiosa
Molte persone dimenticano che "un'altra lingua simile per i vecchi programmatori" è "una nuova lingua per i nuovi programmatori".
Cosa intendo per quello?
Bene, per programmatori "diversi anni", Java o C # possono essere linguaggi di programmazione aggiuntivi rispetto a Cobol esistente, (OO / procedurale) di base, C / C ++, mentre per "nuovi" programmatori, Java o C # sono nuovi linguaggi, mentre Cobol, (OO / Procedurale) Di base, C / C ++ non esiste per loro, quindi reinventare la ruota diventa una cosa comune ...
E, se c'è una nuova tendenza sulla tecnologia, le persone potrebbero creare un nuovo linguaggio di programmazione basato su quella tendenza, come ecmascript / javascript per il web e la programmazione funzionale ...
Saluti.
i nuovi linguaggi di programmazione sono costruiti per molte ragioni diverse, principalmente perché ci sono nuovi paradigmi di programmazione o perché i progressi dell'hardware creano nuovi linguaggi per trarre vantaggio dalle nuove funzionalità hardware come il multitasking, ecc.
nel mio caso, di solito costruisco piccoli compilatori (con un nuovo linguaggio di programmazione), per motivi speciali. se faccio assegnazione di giochi e credo che un linguaggio di programmazione creato appositamente per lo sviluppo dei giochi si tradurrà in un codice sempre più piccolo e in uno sviluppo più veloce, allora lo costruisco. e alla fine si scopre che può essere utilizzato anche per altre programmazioni di uso generale.
Penso che la maggior parte delle persone che creano linguaggi di programmazione abbiano in mente uno scopo specifico, ci sono quelli che li creano per scopi generali sin dall'inizio. ma la maggior parte non lo è.
A proposito, penso che ci siano troppi linguaggi di programmazione, ma ne usciranno sempre centinaia. alcuni per divertimento, altri per scopi di nicchia, come progetto scolastico o per centinaia di altri motivi. e prima o poi uno nuovo diventerà popolare. Non finirà mai.
Per lo stesso motivo ci sono così tanti <whatever> e continuiamo a creare nuovi <whatever>
Esistono una dozzina di framework PHP MVC, ad esempio, ma le persone ne creeranno sempre di nuovi per soddisfare esigenze specifiche, per evitare di diventare dipendenti da qualche altro team o semplicemente per provare a creare qualcosa di meglio. Lo stesso vale per praticamente ogni tipo di strumento o applicazione.
È una cosa molto positiva, praticamente una vittoria per tutti secondo me.
Le università offrono molti linguaggi di programmazione, così come società di grandi dimensioni come Ericsson (Erlang = lingua Ericsson), Bell Labs (lingue B e C), Google (lingua Go fino a pochi mesi prima). Molti di quelli scritti nell'ambito della ricerca universitaria non sono molto utilizzati. Vi sono tuttavia alcune notevoli eccezioni. Suppongo che scrivere la tua lingua / compilatore sia un buon argomento per tesi di dottorato di persone che studiano Teoria del CS o discipline affini. Mi sembra che Python sia una delle prime lingue a nascere dallo sforzo collaborativo online di vari programmatori attorno a un'unica idea.
Ci sono alcuni motivi, la maggior parte perché la gente pensa che ciò che esiste non semplifichi la risoluzione di alcuni problemi. Alcuni sono solo per divertimento o per interesse accademico.
Penso che ci sia una solida argomentazione secondo cui il problema di come si progetta il linguaggio perfetto non è ancora risolto (e potrebbe non esserlo mai). Quindi, finché le persone avranno nuove idee su ciò che renderebbe una lingua fantastica, le persone continueranno a provare. Alcuni di questi tentativi mapperanno nuovi fantastici spazi come Erlang e altri flopperanno, ma finchè qualcosa verrà appreso dal flop andrà anche bene.
Come affermato in precedenza, le lingue cercano di indirizzare determinate attività specifiche e le nuove lingue potrebbero indirizzare una nuova area. Queste lingue possono utilizzare funzionalità di altre lingue che sono attualmente in circolazione.
Un altro motivo per nuove lingue sta cercando di incorporare molti compiti diversi e di essere la lingua preferita per molte esigenze diverse. Alcune di queste lingue stanno cercando di includere tutte le lingue che useresti sempre, indipendentemente dalle necessità che hai.
Nella mia lezione sui linguaggi di programmazione ho imparato che la maggior parte dei linguaggi sono stati inventati per grattare un prurito. La maggior parte delle lingue sono state inventate per essere in grado di esprimere meglio una serie di algoritmi. Ad esempio, sono stati inventati linguaggi funzionali per dare agli algoritmi ricorsivi uno spazio molto più espressivo.
Chiedere perché ci sono così tante lingue è come chiedere perché C ++ 0x? :)
Inoltre, più lingue conosci, più espressivo puoi diventare - questo è vero sia nella programmazione che nei linguaggi naturali!