Il codice sorgente nei libri di testo e simili dovrebbe essere tradotto?


16

Alcune settimane fa, la mia classe è stata incaricata di tradurre in portoghese il libro Real World Haskell. Mentre facevo la traduzione del testo e dei commenti, ho iniziato a chiedermi se avrei dovuto tradurre anche il codice, come suggerito dall'istruttore. Per esempio:

data BookInfo = Book Int String [String]
              spettacolo derivante

potrebbe diventare

data InfoLivro = Livro Int String [String]
               spettacolo derivante

Dal momento che non ho letto alcun libro relativo al software in portoghese, non so se sia una pratica comune, né se debba essere fatto in questo modo. Alla fine, il codice è un mix linguistico (forse l'esempio in Haskell non è buono, dal momento che è possibile creare rapidamente sinonimi come type CadeiaDeCaracteres = String, ma si ottiene il punto). Quindi non importa quanto duramente ci provi, dovrai fare affidamento sull'esperienza precedente del lettore con una sorta di parole inglesi di base.

Sapendo questo, non vedo davvero il punto nella traduzione del codice, poiché apprendiamo nei primi giorni della nostra vita di programmazione che dovrebbe essere scritto nel linguaggio universale. Tuttavia, se il testo circostante (commenti, ad esempio, e il testo stesso in un libro) deve essere tradotto, cosa è possibile e fattibile in questa materia? Potete fornirmi una guida su cosa fare?


9
Cosa si aspetta che l'istruttore impari da questo? Sì, potresti imparare un po 'di Haskell, ma sembra che sia principalmente un test delle tue capacità di traduzione in inglese. Vuole solo una traduzione per le lezioni future e pensa che sprecare il tempo di tutti gli studenti in questa classe sia il modo per realizzarla? La mia scommessa: tutto ciò che imparerai è perché la traduzione è un campo specializzato, fatto meglio dagli esperti.
Dori,


@Dori Sono completamente d'accordo. Purtroppo, è così che funziona la mia università, almeno nel campo CS.
rapfaria,

dovresti dirgli qualcosa del genere: "" "Professore, è davvero louco. Eu preferisco dormir com sua mãe do que fazer isso. Aprenda Inglês ou perecer." ""
Giobbe

Risposte:


13

Secondo me no. La maggior parte dei programmatori è costretta a volerlo o meno, per imparare l'inglese, e oggi è la lingua franca del mondo del software.

Nella mia esperienza, tuttavia, i libri scritti da autori in una delle lingue più forti hanno la tendenza a farlo - finora ho visto la pratica nei libri in tedesco, francese e russo (beh, il russo è un po 'diverso da un caso, dal momento che usano anche alfabeto diverso). È una regola empirica che dipende dalla dipendenza del paese dall'inglese.

Il testo è ovviamente tradotto, anche i commenti più grandi (uno che descrive in modo più dettagliato il funzionamento di un programma), quindi un po 'più rari, commenti più piccoli e nomi di variabili. Ho anche visto il caso in cui i nomi delle variabili sono stati tradotti, ma i commenti più piccoli sono stati lasciati in inglese. Credo che l'autore tuttavia, in quel caso particolare, contasse sul suo pubblico di avere una conoscenza dell'inglese funzionante.

Scusa se questo non ha risolto il tuo dilemma, ma non c'è ancora un consenso su questo: - /


11

Sono brasiliano [parliamo portoghese qui, spesso] e, quando posso scegliere tra la versione originale o quella tradotta, prendo sempre l'originale, poiché quasi tutti i libri sono tradotti in persone che non sono programmatori, quindi i comandi e le espressioni perdono il loro significato originale dopo la traduzione.

Un altro motivo per volere libri in inglese è che tutto sul web [o le cose migliori, come questo sito] è scritto in inglese, quindi avrai familiarità con il termine inglese e sarai in grado di capire meglio il codice di altre persone ... [dal momento che un buon programmatore codificherebbe in inglese, almeno dal mio POV]

Se hai bisogno di leggere libri in portoghese [o in un'altra lingua] preferisci quelli scritti in quella lingua [non tradotti].

Per chiarire: se hai intenzione di tradurre quel libro, prova a mantenere tutto il codice in inglese [i commenti possono essere tradotti, ma non vars o funzioni] e non provare a tradurre cose come "array" in "arranjo" o 'mouse' a 'rato' [almeno preferirei il termine inglese, la gente del Portogallo preferirebbe il secondo, immagino].


3
+1 per aver bisogno di un esperto in tutte e tre le lingue (lingua di partenza, lingua di destinazione, programmazione)
Frank Shearar,

2

Come madrelingua inglese, non mi piace il codice tradotto.

  1. Costruisce buone pratiche. Come professionista, non solo l'inglese è la lingua principale del campo, ma le persone con background diversi condividono e lavorano sullo stesso codice. Scrivere il tuo codice in un'altra lingua riduce notevolmente il numero di persone che possono lavorare con il tuo codice: mi sono divertito un po 'con un codice scritto in un'altra lingua ed è terribile. Quindi, perché non incoraggiare le buone abitudini?

  2. Sembra brutto. La maggior parte dei linguaggi di programmazione utilizza parole chiave in inglese e, con una buona scelta per gli identificatori, leggere un programma può essere un'esperienza vicina al linguaggio naturale. A meno che tu non usi un'altra lingua per gli identificatori, il che la rende simile alla lettura in 2 lingue contemporaneamente.

  3. Non credo che sia di grande aiuto. Anche per una persona che non parla inglese, l'inglese utilizzato per gli identificatori in un programma normale è abbastanza semplice e può essere appreso molto velocemente.


2

Un buon punto contro la traduzione di esempi di codice è questo che, se lo fai, dovrai testarli , poiché gli esempi di codice tradotti dovrebbero essere corretti proprio come quelli originali.

Lo sforzo di collaudo è incluso nel costo della traduzione? Immagino di no, nella maggior parte dei casi.

Se non si verifica il codice tradotto, si rischia che il codice si rompa o sia errato, danneggiando la reputazione sia del materiale tradotto che di quello originale.

Se non si desidera sostenere lo sforzo di testare gli esempi di codice, è necessario tradurre solo i commenti ma non modificare il codice in alcun modo.

Un'altra cosa da considerare è il fatto che l'autore originale molto probabilmente aveva una base di codice, forse un'app o una libreria completa che compila nel suo insieme. Gli esempi di codice sono estratti da tale base di codice e diffusi in tutto il libro. Non avrai questo, quindi potresti, dopo aver tradotto gli esempi di codice, finire con esempi di codice che, nel libro tradotto, si contraddicono a vicenda, a causa delle diverse decisioni di traduzione in diverse parti del libro, mentre nel libro originale essi non perché sono stati estratti dalla stessa base di codice.


0

Non parlo alcuna lingua diversa dall'inglese. (Beh, io latino alle superiori. Utile se dovessi mai visitare l'America Latina. :-) Con quello sfondo, direi:

Come altri hanno notato, molte informazioni sulla programmazione, sul web e nei libri, sono in inglese, quindi sarebbe sicuramente utile se impari l'inglese.

Alcuni linguaggi informatici usano molte parole inglesi, come Visual Basic, ad esempio. Altri usano principalmente simboli, come C / C ++ / C #. Quindi, se hai intenzione di programmare, dovrai imparare ALCUNI inglesi. Ma non penso che sia molto. SE, MENTRE, TORNA, ecc. A seconda della lingua, forse da 10 o 20 parole a poche decine. Visual Basic è il linguaggio più prolisso a cui riesco a pensare, e ho appena controllato un elenco e ha, per un conteggio rapido, circa 160 parole riservate, ma ci sono molte duplicazioni. Come END e WHILE e quindi END WHILE elencati come tre "parole" separate. Vedo che ciò è scomodo per chi non parla inglese, ma queste parole sono spesso usate con significati solo vagamente correlati ai loro significati inglesi comuni, quindi penso che in molti casi sia " non è molto più difficile per un oratore non inglese che per un oratore inglese. Ad esempio, il significato di HANDLER o CAST non è probabilmente più ovvio per un nuovo programmatore che parla inglese che per un nuovo programmatore che parla portoghese. Se invece alcune di queste cose fossero state chiamate con parole prive di significato in inglese, come se invece di dire CAST avessimo detto FOOBAR, ciò avrebbe reso più difficile per me imparare la programmazione? Dubito che avrebbe fatto molta differenza. ciò avrebbe reso più difficile per me imparare la programmazione? Dubito che avrebbe fatto molta differenza. ciò avrebbe reso più difficile per me imparare la programmazione? Dubito che avrebbe fatto molta differenza.

Dici che alcune lingue hanno opzioni per definire parole alternative per parole chiave in un modo o nell'altro. Quindi sì, potresti definire le parole della tua lingua come sinonimi delle parole chiave inglesi. Non lo farei. Ora i tuoi programmi hanno un sacco di termini non standard che hai inventato. È improbabile che qualcun altro che provi la stessa cosa usi esattamente lo stesso insieme di parole che fai. Quindi ora leggendo il programma di qualcun altro, devi capire cosa intendesse con le sue "traduzioni". Suppongo che se tutti nell'azienda usassero lo stesso set, li impareresti e potresti lavorare facilmente sui programmi degli altri. Ma cosa succede quando ti trasferisci in un'altra azienda o scarichi software dal Web? Mi sembra che ti stia solo preparando una trappola. Meglio imparare solo le parole standard.

Se stai scrivendo un programma in portoghese e le uniche persone che potrebbero leggerlo sono altri brasiliani, e tutti presumibilmente tu parli portoghese, ma forse non hai una conoscenza fluente dell'inglese, ha senso fare nomi variabili in portoghese. Non vedo cosa si guadagna provando a creare nomi di variabili in una lingua in cui non si è particolarmente abili.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.