Domanda

Questo è qualcosa che ho sempre chiesto, e io non riesco a trovare alcuna menzione di esso ovunque online.Quando un negozio, per esempio il Giappone, scrive codice, dovrei essere in grado di leggere in inglese?O fare linguaggi, come il C, PHP, niente, sono traduzioni in Giapponese che scrivono?

Credo che quello che sto chiedendo è ogni singolo programmatore nel mondo conoscere abbastanza bene l'inglese per utilizzare le stesse esatte parole riservate posso fare?

Sarebbe questo codice:

If (i < size){
    switch
        case 1:
            print "hi there"
        default:
            print "no, thank you"
} else {
    print "yes, thank you"
}

display esattamente come lo sto vedendo proprio ora, in inglese, o di alcuni altri che non parlano l'inglese persona a vedere le parole "se", di "switch", "caso", di "default", "stampa", e "altro" nella loro lingua nativa?

EDIT - sì, questo è grave.Non sapevo se diverse localizzazioni di una lingua sono diverse parole chiave.o se ci sono anche diverse localizzazioni a tutti.

È stato utile?

Soluzione

Se ho capito bene la domanda in realtà è: " ogni singolo programmatore nel mondo conosce abbastanza inglese per usare le stesse parole riservate come me? "

Beh .. l'inglese non è l'argomento qui, ma le parole riservate del linguaggio di programmazione. Voglio dire, quando ho iniziato circa 10 anni fa, non avevo idea di inglese, eppure ero in grado di programmare cose semplici imparando il linguaggio di programmazione, anche quando non sapevo cosa significassero (in inglese). È un dato di fatto, questo mi ha aiutato a imparare l'inglese.

Ad esempio. So di fare un & Quot; iteraci & # 243; n & Quot; (iterazione ovviamente) Ho dovuto scrivere:

 for( i = 0 ; i < 100 ; i++ ) {}

Per me il " per " ;, il " ;; " e il " ++ " dove semplici parole o simboli stranieri. Più tardi apprendo che & Quot; per & Quot; significava " para " e " mentre " significava " mientras " ecc. ma nel frattempo non avevo bisogno di conoscere l'inglese, ma nel mio caso quello che mi serviva era sapere " C " ;.

Ovviamente, quando avevo bisogno di imparare più cose, dovevo imparare l'inglese, poiché la documentazione è scritta in quella lingua.

Quindi la risposta è: No, non vedo se, mentre, per, ecc. nella mia lingua madre. Li vedo in inglese, ma non significano per me nessun'altra cosa che a loro volta significano per il linguaggio di programmazione.

È come l'istruzione switch in bash: case .. esac. Cosa è & Quot; esac & Quot; ... per me la fine dell'istruzione switch in bash.

Immagino sia quello che chiamiamo " astrazione "

Altri suggerimenti

Ho difficoltà a trovare riferimenti, ma mi vengono in mente tre storie.

Un hacker Lisp difende funzioni insignificanti come " cdr " e " auto " confrontandoli con la programmazione nella tua lingua non nativa: http://people.csail.mit.edu/gregs /ll1-discuss-archive-html/msg01171.html

Quando Yukihiro Matsumoto (" Matz ") ha iniziato a sviluppare Ruby, ha usato le parole chiave inglesi anche se stava scrivendo tutta la documentazione in giapponese! . Non c'era documentazione inglese per Ruby da un paio d'anni e pochissimi americani usano la lingua. Ma ora è una lingua di livello mondiale e il fatto che sia nato in Giappone è solo di interesse storico. Se la lingua avesse usato parole chiave in hiragana, sarebbe stato molto più difficile guadagnare popolarità.

Ho letto un saggio una volta - forse qualcun altro può trovarlo, Google non è di aiuto oggi - che mi ha suggerito che la traduzione delle parole chiave non era corretta perché le parole non sono in realtà inglesi - sono gergo. Non solo (per usare gli esempi sopra) para e pour non hanno esattamente il significato esatto che per ha in inglese, per i non programmatori la frase " per loop " è jibberish. Anche gli americani devono imparare un nuovo significato. Quindi tradurre il significato superficiale delle parole in un'altra lingua è più come fare un gioco di parole in una lingua piuttosto che essere effettivamente utile.

Nel linguaggio Java alcuni metodi devono essere nominati (almeno parzialmente) usando la lingua inglese a causa della convenzione JavaBeans.

Questa convenzione richiede che una proprietà X sia stabilita tramite una coppia di metodi getX () e setX (). Qui in Francia-Canada, dove alcuni sviluppatori sono obbligati a programmare in lingua francese, ciò porta alla seguente parodia:

interface Foo {

  Color getCouleur();

  void setCouleur(Color couleur);
}

Non ho davvero pensato troppo alla programmazione in giapponese prima, ma eccoci qui, usando l'esempio di codice della domanda.

Utilizzando solo le dichiarazioni di lingua in giapponese con le variabili in inglese:

// In Japanese, it makes more sense to put the keywords/modifiers as
// postfix expressions rather than prefix expressions.
(i < size)か {
     (l[i])は {
     1だ:
         「もしもし。」を書く;
     省略時値:
         「いいえ、いいですよ。」を書く;
     }
} ない {
     「はい、ありがとうございます。」を書く;
}

Come molte persone hanno già sottolineato, nella maggior parte dei linguaggi di programmazione devi solo imparare alcune parole chiave, quindi non importa molto se sono in inglese (o in una lingua diversa dalla tua, per quella materia). È solo un simbolo che associ a qualche costrutto. Ad esempio, in VB hai & Quot; THEN & Quot ;, che in molti linguaggi in stile C sarebbe & Quot; {& Quot; e non fa una grande differenza nella leggibilità (beh, almeno così la vedo, essendo un madrelingua non inglese).

Ma dove a volte le cose possono diventare pelose e dove la scelta del linguaggio (naturale) è importante negli identificatori dei nomi. Se i nomi di variabili, funzioni, classi, ecc., Non hanno un nome significativo per te a causa di una barriera linguistica, seguire anche il codice più semplice può essere piuttosto impegnativo.

Ricordo che qualcuno una volta mi ha dato un breve frammento di Actionscript tratto da un blog. I nomi erano in tedesco e dato che non parlo una parola di quella lingua, roba avrebbe potuto essere chiamata anche var_123, var_562 o func_333 (e probabilmente sarebbe stato più facile per me ricordare i nomi o almeno avere un possibilità di scriverli correttamente senza copiarli e incollarli). Dato che si trattava di un frammento breve e autonomo, ho usato un traduttore online per dare a quei nomi e funzioni significativi nella mia lingua madre (lo spagnolo) e, successivamente, tutto era chiaro. Il punto è che il codice era in realtà semplice, ma sono stato in grado di dargli un senso senza troppi sforzi (non necessari) extra solo quando ho superato la barriera linguistica.

Da allora, sono passato all'utilizzo dell'inglese per identificare gli identificatori. Che ti piaccia o no, è il & Quot; koine & Quot; per programmazione, ingegneria e cose generalmente tecniche. La maggior parte delle API sono scritte in inglese, così come la maggior parte della documentazione (e probabilmente anche le migliori risorse che puoi trovare sono in inglese). A parte questo, mantiene il tuo codice più coerente con il codice con cui probabilmente interagirai e penso che tende ad essere più compatto e succinto rispetto ad altre lingue come lo spagnolo (che altrimenti sarebbe la mia scelta naturale).

Naturalmente, se non riesci a capire almeno un po 'di inglese, il problema rimane lo stesso, quindi non è una soluzione perfetta. Ma, dato un numero di sviluppatori provenienti da molti paesi diversi, è probabile che la lingua comune per loro di comunicare (attraverso il codice e ovviamente altri mezzi) sarà l'inglese. Quindi, scegliere l'inglese è forse l'opzione migliore, anche se non sarebbe la soluzione perfetta a questo problema.

Il linguaggio di programmazione definisce parole chiave e nomi di classe standard ed è buona prassi fornire tipi, variabili e funzioni definiti dall'utente anche nomi inglesi (come un madrelingua che posso dire ;-).

Quindi sì, se tutto va bene, sarai in grado di leggere il codice.

Tuttavia linguaggi come Java e Perl consentono l'insieme Unicode completo per gli identificatori, quindi se qualcuno scrive i suoi nomi di classe in Kanji, probabilmente avrai un problema.

Aggiornamento: per Perl esiste un modulo joke che ti consente scrivere Perl in latino. Ma è proprio questo, uno scherzo. Nessuno usa cose del genere sul serio.

Secondo aggiornamento: l'idea dei linguaggi di programmazione localizzati non è così ridicola. Il linguaggio macro di Excel è localizzato, ma per fortuna è archiviato in una lingua canonica (inglese) nel file, quindi la localizzazione è solo un livello sopra la cosa normale. Queste cose hanno senso solo per piccoli & Quot; programmi & Quot ;, per & Quot; real & Quot; programmi che diventa difficile da mantenere.

In realtà ci sono ci sono alcuni Linguaggi di programmazione non inglese (Wikipedia)

Sono norvegese ma ho sempre usato l'inglese per tutto il codice tranne l'output (ignorando un codice stupido da scuola). In realtà di solito scrivo tutto in inglese e poi traducilo nella mia lingua madre, usando gettext (o qualcosa del genere).

Sono britannico e un problema che incontriamo spesso è lo scontro di ortografia americano / britannico. Ciò si verifica spesso con termini correlati alla programmazione come Initialise () o Initialize (), Analizza () o Analizza () ecc. Ciò può (ha) comportare problemi nel tentativo di scavalcare i metodi ed è talvolta difficile da individuare.

Dato che il framework (nel nostro caso C #) è stato progettato dagli americani, abbiamo scoperto che è meglio essere coerenti e usare l'ortografia americana. Adottiamo persino il colore.

Abbiamo un mix di nazionalità nei nostri team di sviluppo e la maggior parte delle persone non britanniche tende naturalmente all'ortografia americana.

AppleScript è stato di volta in volta disponibili in francese e Giapponese dialetti.Non so perché è stato ritirato.

Portandolo al livello successivo, che ne dici di essere in grado di sostituire i simboli?

Dopo aver visto lingue come Brainf ** k e Whitespace Ho pensato di creare una lingua come questa: sarebbe identica a C se non si usassero le parentesi graffe per aprire, aprire le parentesi graffe per chiudere, scambiare i significati di + e -, * e /,; e:, > e < ;, ecc.

Il concetto non è altro che un compilatore C alterato in modo stravagante. Ma, come pensare alle parole chiave in modo diverso, ti sfida a ripensare alcune ipotesi di base se non hai mai pensato a queste cose prima. Es:

int foo)int i, char c( }
    int six = 2 / 3:
    int two = six + 4:
    if )i > 0( }
        printf)"i is negative"(:
    {
{

Faccio parte di un team francese che sviluppa un sistema software in C #. Nonostante il fatto che le parole chiave del linguaggio di programmazione siano apparentemente inglesi, immagino che avresti grandi difficoltà a leggere il codice poiché tutti i nomi delle funzioni, le variabili, i commenti sul codice, le tabelle e le colonne del database, le specifiche tecniche, i protocolli e così via, sono tutti in Il francese, compresi quegli adorabili personaggi accentati & # 231 ;, & # 233 ;, & # 232 ;, & # 249 ;, ecc. Non sono nemmeno sicuro che il sistema funzionerebbe anche altrove a causa di bug di localizzazione, come affidarsi alla virgola come separatore decimale predefinito.

Altrimenti, WinDev è una piattaforma di programmazione popolare in Francia, e il suo linguaggio di programmazione WLanguage ha parole chiave in francese o inglese, vedi ed esempio qui: testo del link

Ho visto VBA tradotto in comandi in stile spagnolo. è una delle cose più brutte che abbia mai visto. mi vergognerei di avere qualcosa del genere sul mio computer.

PD: mi capita di pensare che lo spagnolo sia una lingua molto più gradevole dell'inglese; ma la traduzione è SBAGLIATA

Bene, come altri hanno sottolineato, le parole chiave e le chiamate di sistema rimarrebbero probabilmente in inglese.

Tuttavia, comprendere le parole chiave della lingua è solo una piccola parte della comprensione del codice. Nomi di variabili, nomi di funzioni e commenti rischiano tutti di essere nella lingua madre dell'autore.

Modifica : sono appena tornato indietro alla mia giovinezza dove sono andato nelle tabelle di mappatura del mio BASIC integrato TRS-80 per passare le parole chiave in francese. Potrei cambiare tutte le parole chiave ma non potrei ingrandirle. Realizzato per programmi divertenti.

Non prenderti in giro. Alcuni anni fa, Microsoft aveva annunciato G # (Sharp tedesco) - C # con parole chiave e API tedesche. Certo, era uno scherzo dei pesci d'aprile, ma l'intero sito sembrava così reale e professionale (ed era su microsoft.com). Spaventoso.

Al lavoro, utilizziamo due sistemi di bus di campo, entrambi sviluppati nei paesi di lingua tedesca, che hanno un mix spaventoso di tedesco e inglese per gli identificatori, inclusi alcuni adorabili falsi amici. È un casino.

No, le parole chiave e gli identificativi inglesi vanno bene. Anche se alcuni potrebbero discutere se dovrebbe essere Colore o Colore :)

In diversi progetti VBA su cui ho lavorato (sì, molto presto nella mia carriera) abbiamo dovuto rilevare la versione di Office installata sul computer dell'utente e modificare di conseguenza le formule utilizzate nei fogli di sperimentazione.

Come programma in portoghese " SUM " dovrebbe essere tradotto in " SOMA " E così via e così via. Non riesco proprio a immaginare il lavoro necessario per farlo accadere in diverse lingue. Qualcun altro ha sofferto di questo problema?

L'unica lingua che ho visto localizzata è Excel con le sue macro. Se si tenta di sommare una colonna utilizzando una versione italiana di Office, è necessario scrivere SOMMA(A1:A10) e non SUM. È un peccato.

A proposito, solo perché è divertente, ecco come dovrebbe apparire il tuo codice con le parole chiave italiane:

se (i < size){
    commuta
        caso 1:
            stampa "hi there"
        normalmente:
            stampa "no, thank you"
} altrimenti {
    stampa "yes, thank you"
}

Ci sono alcune lingue che hanno tradotto parole chiave. Formule di Excel, ad esempio. Se scrivi alcuni calcoli in un foglio di calcolo, questo sarà nella tua lingua.

Fortunatamente, questa non è una pratica generale, e anche chi non parla inglese come me ringrazia Dio che esiste un linguaggio standard per le parole chiave:

  • è più facile condividere il tuo lavoro.
  • impedisce alla documentazione di diventare un incubo più grande di quello che è già.
  • Le parole e le frasi inglesi sono generalmente brevi e sintatticamente pragmatiche. In letteratura, le lingue latine sono molto più belle, ma per roba tecnica, le rocce inglesi.

E dove fermarsi? Riesci a immaginare una C in greco antico?

Le parole chiave devono rimanere in una lingua e, bene, è iniziato con l'inglese, lasciarlo così. Questo avrebbe potuto essere peggio (lingua asiatica?). E quindi dobbiamo scrivere metodi e commenti in inglese. Ok, più lavoro per noi, ma almeno la base di codici internazionali rimane congruente.

Vi è, tuttavia, un caso in cui l'utilizzo di nomi e commenti di metodi in lingua madre può essere una buona pratica: nel paese del terzo mondo. Tra qualche mese vado in Senegal per gestire un progetto Django. Il Senegal ha un enorme tasso di analfabetizzazione, e per questo è già grandioso spendere energia nel migliorare le proprie conoscenze di programmazione. Il francese è la lingua madre qui, quindi sarebbe inefficiente costringerli ad imparare il calcolo E una nuova lingua allo stesso tempo.

A proposito, sarebbe il tuo codice con parole chiave francesi:

Si (i < taille) {
    cas par cas :
        cas 1:
            afficher "salut"
        défaut:
            afficher "non merci"
} sinon {
    afficher "oui, merci"
}

Non che la traduzione delle parole chiave non abbia nulla a che fare con la traduzione delle stringhe. Naturalmente, abbiamo & Quot; ciao, ci & Quot; tradotto nella nostra lingua. I programmatori europei tendono addirittura ad usare I18N molto più di quanto non lo siano gli americani, il loro servizio può raggiungere un pubblico più vasto.

In generale, la maggior parte dei programmatori si adatta al modulo inglese. Ho imparato a programmare quando avevo 7 anni e parlavo solo ebraico (che è da destra a sinistra) e senza inglese, il che l'ha resa un'esperienza affascinante.

Il problema che di solito potresti avere è con la documentazione, le variabili e i nomi delle funzioni. Ho visto la mia parte di variabili in altre lingue usando l'alfabeto inglese.

L'unica lingua che conosco e che in realtà è stata tradotta era il buon vecchio logo (ancora fantastico fino ad oggi).

Quando ero un bambino andavamo in Francia, e in un museo dove andavamo, ricordo di aver trovato un display che mostrava come scrivere programmi per computer. La lingua era una specie di variante BASIC e ricordo distintamente di aver usato POUR invece di FOR, e così via. Avevo 7 anni e avevo appena imparato BASIC, e mi sembrava del tutto naturale che i francesi avessero il loro dialetto in questo modo !!

Suppongo che potrebbe essere stato LSE che ho visto?

Il linguaggio di scripting di Filemaker è localizzato. Gli script (e i dati!) Sono memorizzati in una terribile & Quot; sorta canonica & Quot; modulo.

Quindi, se scrivi uno script nella versione americana, quindi lo apri nella versione francese, tutte le parole chiave e i nomi delle funzioni integrate saranno in francese. Ma perché non funziona ?! Aha! La versione francese utilizza & Quot;, & Quot; come punto decimale e quindi per evitare ambiguità usa " ;; " per separare gli argomenti delle funzioni - dove la versione americana usa ". " e ", " rispettivamente. Questa conversione devi fare te stesso.

Quindi lavori attraverso l'interfaccia di modifica degli script incredibilmente male (non puoi scrivere script come file di testo) per risolvere tutte queste cose. Corre! Grande! I risultati sono tutti sbagliati! Oh no! Aha! La data del 7 gennaio 2004 che hai inserito nella versione americana viene interpretata come dal 1 ° al 2 luglio 2004 - apparentemente le date non vengono solo visualizzate ma memorizzate in ordine dipendente dalla locale. Ti sto prendendo in giro ? No.

[Nota: Filemaker 8 e 9 possono essere sani di mente - ho sempre lavorato con 3 - 7.]

La tua domanda è interessante riguardo al Perl perché la sua sintassi è progettata per seguire il linguaggio naturale (inglese). Mi chiedo se ciò renda più difficile per chi non parla inglese ...

Naturalmente, Perl e Perlers si rifiutano di giocare secondo le regole convenzionali. Lo scienziato pazzo Damian Conway ha scritto il Lingua :: Romana :: Perligata che usa la magia nera dei filtri sorgente per permetterti di scrivere Perl in latino!

Qui in Australia dobbiamo ancora scrivere colore come colore . Tuttavia, trovo fastidioso quando altri sviluppatori (australiani), lavorando a un progetto australiano, decidono che i nomi delle variabili interne devono essere scritti in modo americano.

Sarebbe inutile, IMHO, i18n in una lingua sintassi . Ucciderebbe qualsiasi tipo di portabilità.

L'unica eccezione sono le lingue educative, come LOGO. Sono stati progettati per facilitare l'apprendimento, quindi la portabilità non è un problema.

Ho letto molto codice, ma il problema è sempre nei nomi e nei commenti delle variabili / metodi, se stanno commentando il loro codice nella loro lingua, usando una lingua speciale come il giapponese o il cirillico, siamo nei guai! ma le parole chiave penso che rimarranno in inglese così come sono.

in italiano

se (i < dimensione){
    scegli
        caso 1:
            stampa "ciao"
        mancante:
            stampa "no, grazie"
} altrimenti {
    stampa "sì, grazie"
}

Per confermare le preoccupazioni di alcuni poster precedenti ho visto un codice Fortran con una macro inclusa per tradurre tutte le parole chiave dall'inglese al francese. Consentitemi di non continuare su questo.

Ho anche dovuto lavorare con un codice che contenesse contemporaneamente identificatori in italiano, tedesco, inglese e francese, non solo perché è stato sviluppato in molti luoghi diversi, ma anche perché lo sviluppatore principale ha pensato che fosse divertente e lo ha aiutato a non duplicare nomi identificativi (ovviamente, con una routine di 2000 righe lunghe ....)

Penso che WordBasic sia stato localizzato. WordBasic è stato utilizzato per scrivere macro per in Word prima dell'utilizzo di VBA.

Se lo ricordo correttamente, solo WordBasic scritto nella versione inglese verrebbe eseguito su tutte le versioni localizzate. Se scrivessi una versione olandese, potresti eseguirla solo su una parola olandese.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top