it-swarm.it

Perché ci sono così tanti linguaggi di programmazione? Perché vengono ancora create nuove lingue?

Perché ci sono così tanti linguaggi di programmazione?

E cosa spinge qualcuno a creare un linguaggio di programmazione nonostante esistano già altri linguaggi?

51
Moshe

I linguaggi di programmazione si evolvono

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 orientato agli oggetti e funzionale e molti moderni le lingue provano a mescolare le funzionalità di entrambi.

Ci sono anche nuovi problemi che devono essere risolti, ad es. l'aumento delle CPU multi-core. La soluzione più comune a quella sono state le discussioni, ma alcuni linguaggi di programmazione cercano di risolvere il problema di concorrenza in modo diverso, ad es. il modello dell'attore. Vedi Erlang - Software per un mondo concorrente

37
Jonas

È 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 lingua nuova, potresti risolvere tutto ciò ...

23
RationalGeek

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 rivolte 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 sono disponibili in diversi colori: ad alcune persone piace 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.

11
mipadi

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.

8
Aaron Digulla

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. Credo 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.

6
Carlos

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.

6
JeffO

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.

4
jk.

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.

3
David Thornley

Risposta breve rapida

Reinventare la ruota ... Qual è la tendenza attuale ...

noiosa risposta lunga

Molte persone dimenticano che "un'altra nuova lingua simile per i vecchi programmatori" è "una nuova lingua semplice per i nuovi programmatori".

Cosa intendo per quello?

Bene, per i programmatori "diversi anni", Java o C # potrebbe essere un linguaggio di programmazione aggiuntivo ai Cobol esistenti, (OO/procedurale) di base, C/C++, mentre per i "nuovi" programmatori, = Java o C # sono nuovi linguaggi, mentre Cobol, (OO/Procedural) Basic, C/C++ non esiste per loro, quindi reinventare la ruota diventa una cosa comune ...

E, se c'è una nuova tendenza nella 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.

2
umlcat

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 sfruttare le 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 generiche.

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.

1
Sergio Fernandez

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 alcuni flop, ma fintanto che si impara qualcosa dal flop va bene lo stesso.

0
Zachary K

Per lo stesso motivo ci sono tanti <whatever> e continuiamo a creare nuovi <whatever>

Ci sono una dozzina PHP framework MVC, ad esempio, ma le persone ne creeranno sempre di nuove 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.

0
Fosco

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 è una delle prime lingue a nascere dallo sforzo collaborativo online di vari programmatori attorno a un'unica idea.

0
ixtmixilix