Apprendimento del linguaggio di programmazione progettato appositamente per tale azienda [chiuso]

10

Perché qualcuno dovrebbe sviluppare il proprio linguaggio per usarlo solo all'interno di quell'azienda quando hai XY in altre lingue che possono aiutarti con le loro librerie, la logica, ecc.? Non è molto più semplice seguire il flusso con qualcos'altro piuttosto che sviluppare la tua lingua?

    
posta Josip Ivic 05.05.2017 - 13:52
fonte

3 risposte

25

È molto più facile capire quando ti accorgi che spesso è prodotto di un lungo processo e non qualcuno che dice semplicemente "vogliamo fare una nuova lingua".

Di solito inizia con l'idea che alcuni problemi possono essere risolti usando un semplice linguaggio specifico del dominio. L'intento è spesso quello di far sì che i non esperti utilizzino questo linguaggio, quindi è semplice e spesso manca di funzionalità come strong tipizzazione e moduli.

Fin qui tutto bene. Ma poi, le persone iniziano a colpire problemi che non possono essere risolti dalla lingua. Quindi nuove "caratteristiche" vengono aggiunte lentamente per risolvere questi problemi. E poiché il processo è lento e le funzionalità non sono frequenti, non vi è alcuna motivazione per progettare correttamente queste nuove funzionalità, purché i problemi siano risolti.

Nel corso del tempo, il nuovo linguaggio acquisisce funzionalità che lo trasformano da un semplice linguaggio specifico di dominio a un linguaggio di scopo "generale" complesso, spesso con semantica contraddittoria e confusa e regole di sintassi difficili da seguire.

E quando la gente si rende conto di aver creato una bestia così grande, è già troppo tardi per ucciderla e sostituirla con un linguaggio ben progettato.

Ci sono alcuni linguaggi che si sono evoluti in questo modo e che non sono legati a specifiche tosse JavaScript tosse PHP tosse .

    
risposta data 05.05.2017 - 14:45
fonte
15

Isn't it way much simpler to go with the flow with anything else rather than developing your own language?

Certo, ma per seguirlo in modo assurdo, staremmo tutti a scrivere in assemblea se nessuno sviluppasse nuove lingue.

A volte non c'è flusso. Nuovi linguaggi esistono perché qualcuno ha un pizzico di gratitudine, che si tratti di un appassionato linguistico che vuole solo inventare qualcosa di nuovo o un'azienda che non ha bisogno di ciò che già esiste.

Questo è esattamente ciò che accadde quando John Backus propose The IBM Mathematical Formula Translating System nel 1953. Voleva un modo più semplice per gli utenti scientifici di specificare formule matematiche piuttosto che scriverle in assembly. Quel prodotto proprietario è diventato il primo linguaggio di programmazione che non è stato assemblato e lo si conosce come Fortran.

Dove Fortran è stato il primo ad aver seguito questa strada, Erlang è praticamente il poster per questo. Ericsson voleva migliorare il modo in cui il software per i suoi interruttori telefonici è stato sviluppato e ha inventato un linguaggio per la prototipazione con funzionalità specifiche per ciò di cui avevano bisogno. Quando l'ho esplorato per la prima volta, il mio punto di forza è che è stato sviluppato da persone con un vero problema da risolvere che non sarebbe stato ben servito da nessuna delle altre lingue disponibili nel 1986. Erlang è rimasto un prodotto proprietario, in-house come il tuo collega ha incontrato fino a quando è stato aperto-sourced più di un decennio più tardi, e ora è una lingua ufficiale.

Sia Go che Scala sono lingue relativamente giovani nel grande schema delle cose, ed è del tutto possibile che la lingua in uso nella compagnia del tuo collega sia precedente a entrambe. Quello che deve fare è chiedere la sua storia, perché è venuto a esistere e perché continua ad essere usato.

Ho trascorso il decennio tra il 2003 e il 2013 lavorando per un'azienda che ha fatto largo uso di un ambiente specifico del settore che includeva una propria lingua che affonda le sue radici alla fine degli anni '70. Mentre alcune lingue più recenti potrebbero essere state sostituzioni più adatte (e gli innesti per loro sono stati innestati nel tempo), quell'industria aveva un investimento abbastanza grande in esso e un enorme corpo di codice comprovato che semplicemente non era un buon caso aziendale per passare a qualcos'altro.

    
risposta data 05.05.2017 - 14:58
fonte
-1

L'ho già visto prima. Non funziona mai bene. Alcune persone hanno un complesso "non inventato qui". Solitamente fa in modo che un'azienda si affretti a reinventare la ruota.

Pensaci. Questa nuova lingua probabilmente si rompe tutto il tempo. Tra un parser, un compilatore, una VM, un linker, qualunque cosa ... Ora ci sono migliaia di bug che la gente sprecherà ore a fare il debug di problemi casuali con. Tutto per quello che pensano di aver bisogno che altre lingue non abbiano.

C / C ++ è usato per scrivere sistemi operativi come, lo sai, tutti. Eppure qualcuno pensava di aver bisogno di qualcosa di diverso.

    
risposta data 05.05.2017 - 14:08
fonte

Leggi altre domande sui tag