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

48

Perché ci sono così tanti linguaggi di programmazione?

E cosa spinge qualcuno a creare un linguaggio di programmazione nonostante il fatto che altre lingue esistano già?

    
posta Moshe 27.09.2010 - 14:15
fonte

15 risposte

34

I linguaggi di programmazione si evolvono

I nuovi linguaggi di programmazione spesso imparano dalle lingue esistenti e aggiungono, rimuovono e combinano le funzionalità in un modo nuovo. Esistono diversi paradigmi come object oriented e functional e molti linguaggi moderni cercano di combinare le funzionalità da entrambi.

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

    
risposta data 27.09.2010 - 14:19
fonte
20

È un ciclo. Inizi una nuova lingua e sei libero di allontanarti da tutte le cattive sintassi e dalle scelte sbagliate dei tuoi predecessori. Nella versione 1, la lingua sembra fantastica perché non ha nessuno di quei bagagli, e fa il lavoro. Quindi, nelle versioni più recenti, si inizia a sperimentare funzionalità che potrebbero non funzionare o si introducono funzionalità da altre lingue più recenti che fanno sì che la sintassi sia un po 'caotica. Ecco, dopo qualche altra versione, ti rendi conto che il tuo linguaggio è ora complicato come quello che hai sostituito, con problemi di sintassi stupidi e bagagli legacy. E all'improvviso ti rendi conto che se hai creato una nuova nuova lingua, puoi sistemare tutto questo ...

    
risposta data 27.09.2010 - 15:13
fonte
10

Per lo stesso motivo ci sono martelli, cacciaviti, seghe a mano, seghe a nastro, martelli pneumatici, palanchini e una miriade di altri strumenti: non tutte le lingue sono perfette per ogni compito. Alcuni linguaggi sono mirati a domini specifici del problema: R è particolarmente utile per l'analisi statistica, C è particolarmente utile per scrivere kernel di sistemi operativi, Haskell è particolarmente adatto per calcoli matematici o finanziari, Erlang è particolarmente adatto alla programmazione concorrente, ecc. / p>

Inoltre, per lo stesso motivo per cui le camicie hanno colori diversi: ad alcune persone piace lo "stile" di una lingua piuttosto che un'altra.

E, naturalmente, molti programmatori trovano divertente inventare una nuova lingua, solo per vedere cosa succede, o forse perché hanno una certa conoscenza delle lingue e vogliono scalfire un prurito, o provare qualche idea.

    
risposta data 27.09.2010 - 17:15
fonte
8

Perché fanno tutti schifo (in un modo o nell'altro).

Al momento, abbiamo creato circa 5000 lingue per descrivere i problemi naturali e nessuno di essi è disponibile per scrivere programmi (un esempio sarebbe "inglese").

Finché qualcuno non troverà il modo di creare un linguaggio di programmazione in grado di esprimere ciò che puoi esprimere in una frase in un linguaggio naturale, continuerà a venire.

    
risposta data 27.09.2010 - 17:08
fonte
7

Codice legacy. Se inizi una nuova lingua, non devi ascoltare / prendere in considerazione tutti i reclami quando cambi una vecchia lingua. Anche se tutti sono d'accordo sul fatto che la nuova implementazione sia migliore, non può rompere il vecchio codice. E c'è un sacco di vecchio codice là fuori.

    
risposta data 27.09.2010 - 14:24
fonte
5

Ovviamente una motivazione importante per creare una nuova lingua è ottenere qualcosa di meglio delle lingue già esistenti. E poiché c'è sempre spazio per miglioramenti, ci saranno sempre nuove lingue.

Gli interessi commerciali sono un'altra grande ragione. Credo che per Microsoft sia importante, ad esempio, che possano offrire una lingua per ogni esigenza, quindi le aziende e gli sviluppatori preferiscono le loro piattaforme.

    
risposta data 27.09.2010 - 14:22
fonte
4

perché è divertente creare nuove lingue anche se non ne fanno uso

An esoteric programming language (sometimes shortened to esolang) is a programming language designed to test the boundaries of computer programming language design, as a proof of concept, or as a joke.

    
risposta data 14.02.2011 - 18:09
fonte
3

Creare un linguaggio di programmazione è piuttosto divertente. È vicino al puro lavoro creativo, dal momento che non sei limitato ai requisiti precedenti. Non è così difficile da implementare di più, dal momento che puoi sempre compilare a C e compilare il codice C per prestazioni adeguate se stai scrivendo un compilatore in primo luogo.

Naturalmente, molti di noi hanno meno idee di quelle che 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 inventare diverse cose che non ti piacciono, giusto? Presumibilmente hai idee su come potrebbero essere riparati. Con un po 'più di impeto, supponendo che tu sappia molto sulla costruzione del compilatore (e molte persone lo fanno), potresti iniziare a progettare e persino implementare la tua.

    
risposta data 27.09.2010 - 16:16
fonte
1

i nuovi linguaggi di programmazione sono costruiti per molte ragioni diverse, principalmente perché ci sono nuovi paradigmi di programmazione, o perché i progressi nell'hardware creano un nuovo linguaggio 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 ragioni di specialità. se faccio un sacco di giochi, e credo che un linguaggio di programmazione creato appositamente per lo sviluppo del gioco si tradurrà in un codice più piccolo più veloce e in uno sviluppo più rapido, quindi lo costruirò. e alla fine si scopre che può essere utilizzato anche per altre programmazioni generiche.

Penso che molte persone che creano linguaggi di programmazione abbiano in mente uno scopo specifico, ci sono quelli che li creano fin dall'inizio per scopi generali. ma la maggior parte non lo sono.

A proposito, penso che ci siano troppi linguaggi di programmazione, ma ne usciranno sempre centinaia di nuovi. 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.

    
risposta data 14.11.2012 - 13:17
fonte
0

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

Ci sono una dozzina di framework MVC PHP, 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 buona, quasi una vittoria per tutti, a mio parere.

    
risposta data 27.09.2010 - 14:58
fonte
0

Le università contribuiscono con molti linguaggi di programmazione, e così fanno aziende molto grandi come Ericsson (Erlang = Ericsson language), Bell Labs (lingue B e C), Google (Go language come alcuni mesi prima). Molti di quelli che sono stati scritti come parte della ricerca universitaria non sono usati molto. Ci sono alcune eccezioni degne di nota, però. Suppongo che scrivere il tuo linguaggio / compilatore sia un buon argomento per tesi di dottorato di persone che studiano la teoria CS o discipline correlate. Mi sembra che Python sia una delle prime lingue nate dallo sforzo collaborativo online di vari programmatori attorno a una singola idea.

    
risposta data 27.09.2010 - 21:39
fonte
0

Ci sono alcuni motivi, molti sono perché la gente pensa che ciò che esiste non rende facile risolvere alcuni problemi. Alcuni sono solo per divertimento o per interesse accademico.

Penso che ci sia una solida argomentazione sul fatto che 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 un grande linguaggio, le persone continueranno a provare. Alcuni di questi tentativi disegneranno nuovi fantastici spazi come Erlang e alcuni si faranno floppare, ma finché qualcosa viene appreso dal flop va bene.

    
risposta data 14.02.2011 - 15:59
fonte
0

Molte persone dimenticano che "un'altra nuova lingua simile per i vecchi programmatori" è "un linguaggio completamente nuovo per i nuovi programmatori".

Che cosa intendo per questo?

Bene, per i programmatori "diversi anni", Java o C # potrebbero essere altri linguaggi di programmazione per Cobol esistenti, (OO / Procedural) Basic, C / C ++, mentre per i "nuovi" programmatori, Java o C # sono nuove lingue, mentre Cobol, (OO / Procedural) Basic, C / C ++ non esiste per loro, reinventare la ruota diventa una cosa comune ...

    
risposta data 14.02.2011 - 19:01
fonte
-1

Come precedentemente affermato, le lingue cercano di indirizzare determinati compiti specifici e le nuove lingue potrebbero essere indirizzate verso una nuova area. Queste lingue possono utilizzare funzionalità di altre lingue attualmente in uscita.

Un altro motivo per le nuove lingue sta cercando di incorporare molti compiti diversi e di essere il linguaggio di scelta per molte esigenze diverse. Alcune di queste lingue stanno cercando di essere tutte lingue coinvolgenti che useresti sempre, indipendentemente dal tuo bisogno.

    
risposta data 27.09.2010 - 14:28
fonte
-1

Ho imparato nella mia classe di linguaggi di programmazione che la maggior parte delle lingue è stata inventata per graffiare un prurito. La maggior parte delle lingue sono state inventate per essere in grado di esprimere meglio alcuni algoritmi. Ad esempio, i linguaggi funzionali sono stati inventati 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ù puoi diventare espressivo, questo è vero sia per la programmazione che per i linguaggi naturali!

    
risposta data 17.06.2011 - 01:35
fonte

Leggi altre domande sui tag