In che modo i linguaggi di programmazione traggono vantaggio dall'essere basati sull'inglese? [chiuso]

14

Penso che il mondo ora programmi in linguaggi di programmazione basati sull'inglese non solo a causa di circostanze storiche / economiche, ma perché la morfologia inglese in particolare ha alcune proprietà che si adattano meglio al pensiero algoritmico. Ma comunque sarebbe interessante sentire le tue opinioni su questo, specialmente se sei multilingue.

Ho visto alcuni dei linguaggi basati sulla lingua tedesca (vedi Plankalkul per esempio, in effetti il primo linguaggio di programmazione che conosciamo molto poco, grazie alla WW2), anche un sapore di Algol basato sulla Russia che esisteva di nuovo in gli anni '80 almeno sulla carta, non sono sicuro che sia mai esistito in binario o meno. Entrambi sembravano un po 'pigri perché c'erano più parole abbreviate e strane abbreviazioni di parole complete come nelle lingue basate su EN. Quindi, se conosci qualche altro PL nazionale linguistico, anche completamente arcaico e irrilevante oggi, puramente teorico o altro, sarebbe interessante dare un'occhiata a loro.

E tornando alla domanda principale: quindi cosa, se c'è, rende la lingua di Shakespeare così buona per la programmazione?

(C'è in realtà un elenco di linguaggi di programmazione non in inglese su Wikipedia (ovviamente , dove altro?), ma sarebbe interessante ascoltare le opinioni dei madrelingua di quelle lingue su come un dato linguaggio di programmazione "nazionale" sia realmente sentito.)

    
posta mojuba 04.11.2010 - 16:30
fonte

8 risposte

17

Dichiarazione di non responsabilità: la mia lingua madre è il tedesco.

Non credo ci sia alcuna ragione per cui l'inglese come lingua per prendere le parole chiave sarebbe migliore di qualsiasi altro linguaggio naturale. Penso che sia l'unico linguaggio importante nell'IT, ma non a causa delle proprietà linguistiche, ma perché la maggior parte delle persone di tecnologia lo parlano in qualche modo, è il tounge nativo di un bel po 'di persone importanti nel campo, la maggior parte dei termini relativi alla tecnologia sono già in inglese, ecc.

Ma dal momento che parliamo di linguaggi di programmazione, non di documentazione / API / nomi / ecc., devo obiettare: i linguaggi di programmazione non sono basati sull'inglese o su qualsiasi altro linguaggio naturale. I linguaggi di programmazione sono lingue formali. Usano, in misura diversa, una manciata di parole dall'inglese (di solito). Alcuni addirittura cercano di imitare la sua grammatica - ma non riescono a leggere come l'inglese a prescindere. Per aggiungere la beffa al danno, associano solo un singolo (in rari casi una manciata di) significato (i) con ogni parola che prendono in prestito. Spesso, questo significato è molto gergale, specializzato o basato su un'analogia discutibile. Pertanto, conoscere la miriade di significati della lingua naturale di una parola presa in prestito dal linguaggio di programmazione non aiuta in realtà a comprendere il concetto di programmazione che sta dietro la parola chiave. Esempi nella parte superiore della mia testa: array , type , goto , class , void . (Un fatto divertente che mi è venuto in mente dopo aver riletto la domanda: tutti questi, eccetto goto , hanno traduzioni tedesche che hanno al massimo un carattere più lungo: Feld , Typ , Klasse , Leere Mi sembrano tutti strani, ma probabilmente è una questione di abitudine.)

    
risposta data 04.11.2010 - 17:17
fonte
8

Inglese è la lingua di programmazione lingua franca .

Dallo stesso articolo:

It's nothing more than great hackers collectively realizing that sticking to English for technical discussion makes it easier to get stuff done.

    
risposta data 04.11.2010 - 16:46
fonte
5

La lingua inglese è favorevole perché:

  1. Si adatta meglio alle restrizioni delle periferiche attuali.

Facilità di tipo. Puoi usare una tastiera standard. So che questo suona come "llama sterco", ma hai provato a digitare in cinese? Ci sono migliaia di personaggi e dal momento che il cinese non ha una tecnica di costruzione del "personaggio" adeguata per adattarsi al concetto di tastiera, non sarebbe facile da imparare per un pubblico globale.

  1. Può essere trasformato in non parole che sono ugualmente riconoscibili. L'inglese preferisce le abbreviazioni a causa della mancanza di simboli di accento.

Le parole inglesi abbreviate sono simboli riconoscibili. Non è necessario imparare l'intera lingua inglese per codificare, quindi le persone esterne alla lingua possono imparare velocemente.

  1. E considera che i linguaggi di programmazione comuni presentano più simboli matematici e meno parole.

Assemblaggio usato parole piccole che non avevano una struttura di frasi. Poi sono arrivate le lingue, come COBOL e FORTRAN, che hanno tentato di adattarsi il più possibile alla struttura della frase inglese. Le lingue più recenti implementavano una maggiore dipendenza dai simboli algebrici universali, perché avevano una migliore prevedibilità. (In COBOL Aggiungi X a Y, Sottrai Y da X, Calcola Y = X + A; Calcola rende superflue le affermazioni precedenti e riduce la complessità dell'analisi del linguaggio). Non mi servirebbe molto di più per considerare linguaggi come il C ++ più simbolici del linguaggio. C'è un po 'di ritorno alla programmazione basata su parole con C #, ma questo è principalmente il supporto per i modelli di programmazione popolari.

Conclusione:

In definitiva, le periferiche limitano a un linguaggio basato sui caratteri (come l'inglese). Inoltre, le lingue occidentali hanno un migliore supporto per i concetti matematici (come il concetto di 0, tra gli altri: la Cina prende in prestito i numeri al posto della propria rappresentazione dei valori numerici, per meglio trasmettere i numeri, perché è più breve scrivere (in media)). A parte i valori numerici, vedrei i linguaggi basati su simboli (cinesi) come più adatti alla morfologia del linguaggio di programmazione rispetto all'inglese, poiché la maggior parte delle lingue moderne già usano simboli, e sarebbe universalmente equivalente all'apprendimento. Tuttavia, dovremmo imporre la struttura del C ++, con blocchi di simboli non facili da leggere per la maggior parte delle persone nel mondo.

    
risposta data 04.11.2010 - 17:04
fonte
5

L'unico motivo per cui l'inglese è ampiamente utilizzato nell'informatica è che al momento è un linguaggio molto diffuso.

Se i computer fossero stati inventati 2000 anni fa, avrebbero usato il greco. Se fossero stati inventati 200 anni fa avrebbero usato il francese. Se fossero stati inventati in 200 anni probabilmente avrebbero usato il cinese ...

    
risposta data 04.11.2010 - 19:54
fonte
3

Ecco alcuni vantaggi di un ipotetico linguaggio di programmazione se assumesse l'alfabeto inglese-latino.

  1. È un set di caratteri piccoli (a differenza di Kanji)
  2. Di solito non usa segni diacritici (a differenza di francese, spagnolo, tedesco, ecc.)
  3. Ogni maiuscolo ha una minuscola (a differenza del tedesco Eszett)
  4. Le regole di confronto sono semplici

Tutte queste cose sono problemi che non sono ancora stati risolti correttamente su tutti i dispositivi. Ad esempio, i titoli delle canzoni con segni diacritici non vengono visualizzati correttamente su un numero di lettori musicali

    
risposta data 04.11.2010 - 17:23
fonte
2

Non sono così sicuro che i linguaggi di programmazione stessi traggano vantaggio dall'essere basati sull'inglese. Nella spiegazione:

  • Il nome di metodi, variabili, oggetti, ecc. non ha importanza per il computer
  • Il contenuto di un commento non ha importanza per un computer
  • La logica della programmazione è espressa nella maggior parte (e presumo TUTTI) i linguaggi parlati.

Quindi, se l'inglese è di beneficio per i linguaggi di programmazione, contribuirebbe a far sì che più persone usino il linguaggio di programmazione. A tal proposito, ecco alcuni pensieri:

  • Molte persone in paesi stranieri imparano l'inglese indipendentemente dal fatto che vogliano o meno programmare
  • Le persone che progettano un linguaggio informatico e vogliono che molte persone lo usino sceglieranno generalmente la lingua parlata più conosciuta per descriverla.

Riassumendo questi pensieri, non penso che l'inglese aiuti davvero i linguaggi di programmazione in modo significativo che la maggior parte delle altre lingue potrebbe offrire, a parte il fatto che molte persone lo parlano.

    
risposta data 04.11.2010 - 17:09
fonte
1

A mio parere, l'inglese ha semplicemente un vocabolario tecnico e matematico più ricco di molte (ma non tutte) altre lingue. Le lingue che mancano di tale vocabolario usano parole di prestito inglesi per portare a termine il lavoro. Solo questo è un motivo convincente per orientare i linguaggi di programmazione verso l'inglese.

Riguardo alle lingue che hanno un vocabolario sufficientemente ricco per descrivere tutto ciò che dobbiamo descrivere senza ricorrere costantemente alle parole di prestito inglesi, la tradizione dell'inglese come lingua franca (lingua comune) per le scienze è di per sé irresistibile, ma il nostro l'alfabeto ci dà un'altra gamba:

  • L'inglese può essere rappresentato in un set di caratteri più piccolo rispetto, ad esempio, alle lingue cinese, giapponese, cirillica o persino romanza che usano caratteri latini accentati.
  • L'alfabeto inglese, in gran parte dovuto alla sua completa mancanza di caratteri accentati, è visivamente chiaro. Abbiamo abbastanza bug dovuti a parentesi non corrispondenti o punti e virgola mancanti, sarebbe sciocco aggiungere problemi nel discernere tra "ē", "ĕ" e "ì".
risposta data 04.11.2010 - 16:55
fonte
1

Per un po 'di lettura divertente nel contesto del linguaggio e di come finiamo per rompere le cose:

Stuff of Thought di Steven Pinker

Ricorda, stiamo parlando della costruzione del linguaggio, non del modo in cui comunichiamo le informazioni (non una nella stessa), ho lavorato con il codice in cui il linguaggio principale per le variabili era tutto in tedesco (il codice non era da meno facile da capire). L'inglese non ha intrinsecamente qualcosa che gli si adatta meglio per la programmazione, se stiamo andando direttamente fuori da come è strutturato il nostro linguaggio è probabilmente peggio non migliore, e questo potrebbe onestamente essere per molte ragioni:

  1. Mancanza di struttura (possiamo mettere soggetto / predicato / nomi / aggettivi ovunque vogliamo),
  2. Mutabilità delle nostre parole (ci sentiamo come se potessimo abbreviare QUALCHE COSA)
  3. BIG ONE: Qualcuno che conosce l'inglese fluentemente non avrà una migliore comprensione di una sezione di codice di qualcuno che non ha alcuna conoscenza della lingua inglese.

Chiedere perché i linguaggi di programmazione usano "inglese" è come chiedere perché la tavola periodica abbia ancora la lettera "W" identifica il tungsteno, la maggior parte delle persone non può dirti perché, a meno che non conoscano la storia. E se vuoi conoscere la storia dei linguaggi di programmazione dovremmo tornare alle schede perforate, alle istruzioni dei byte e all'assemblaggio.

L'assembly non ha costrutti "inglesi" importanti, ma è il più vicino possibile al codice della macchina senza odiare te stesso. Inoltre, tutti gli elementi strutturali dei linguaggi di livello superiore possono e sono regolarmente implementati da quelli di noi abbastanza pazzi da poterlo apprezzare. LD, MV, ST, BRA e il resto del set di istruzioni non assomigliano all'inglese, ma posso leggerlo perfettamente e ottenere il significato completo.

Assegniamo lo stesso significato di LD o MV in assembly a costrutti di livello superiore, non ho bisogno di sapere cosa significa una variabile, e in molti casi non lo sarà se è in inglese comunque a causa del # 2 nella mia elenco. L'insieme di identificatori come int, str, enum e così via è un modo per dire con cosa stai lavorando, non di più. Se invece di int l'identificatore fosse gabbiano avremmo tutti saputo che cosa intendeva Seagull in un contesto di codifica, non perché è inglese, ma è quello che copre l'identificatore.

TL; DR: I linguaggi di programmazione, come qualsiasi altra lingua, richiedono una formazione per capire. Il motivo per cui i loro comandi sono in inglese anziché in spagnolo o tedesco o russo è più che probabile esoterico e storico piuttosto che un qualche costrutto necessario della lingua inglese che è più o meno adatto per gli identificatori nel costrutto del linguaggio formale.

    
risposta data 01.02.2013 - 21:42
fonte

Leggi altre domande sui tag