-
Notifications
You must be signed in to change notification settings - Fork 0
gpiancastelli/scala-it
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Questa è la traduzione italiana di "Programming Scala", un libro scritto da Dean Wampler e Alex Payne, pubblicato da O'Reilly nel 2009. La traduzione italiana, intitolata "Programmare in Scala", è disponibile solamente all'URL: http://gpiancastelli.altervista.org/scala-it La traduzione del testo è completa. La traduzione delle immagini è completa, tranne per gli screenshot di Eclipse, IntelliJ IDEA e NetBeans, che sono stati tutti mantenuti in inglese in quanto di quei programmi non mi è nota alcuna localizzazione in italiano. La traduzione degli esempi di codice inseriti nel libro è stata compiuta deliberatamente solo per stringhe e commenti. I file sorgenti collegati sono invece stati mantenuti nella versione originale, compreso il percorso che corrisponde alla loro ubicazione nell'archivio di esempi scaricabile dal sito dedicato al libro da O'Reilly. Nonostante il testo del libro sia stato scritto direttamente in HTML, è necessario usare lo script publish per effettuare alcune trasformazioni dei sorgenti (HTML, CSS, JavaScript) e infine pubblicare in rete il risultato finale. Lo script usa i seguenti strumenti: - Python 3 - Java (per YUI Compressor / Google Compiler) - vari comandi Unix come cat, sed, rm, &c. Lo script usa anche una versione di html5lib per Python 3, che è stata inclusa direttamente nella sottodirectory util del repository. Tra gli altri script inclusi in util, i seguenti sono stati riadattati da quelli usati da Mark Pilgrim per il libro "Dive Into Python 3": - buildtoc.py - htmlminimizer.py - validate.py Tutto il materiale relativo alla traduzione è distribuito sotto licenza CC-BY-SA 3.0. Per qualsiasi commento, scrivete una email a <giulio.piancastelli@gmail.com>. == MODIFICHE == In questa sezione, vengono riportate le modifiche effettuate nella traduzione italiana rispetto al testo originale. In diversi punti del libro è stato necessario correggere la scelta del termine argomento/parametro perché spesso usati a sproposito; saltuariamente si è voluto modificare la struttura dei paragrafi (quasi esclusivamente incorporandone diversi in uno solo) troppo spezzettata; e infine si è cercato di incorporare gli errata corrige del libro segnalati sul sito dell'editore. Si noti anche che, nelle specifiche Specs, si è deciso di usare l'infinito dopo "should", in modo che, traducendo mentalmente la parola inglese, si potesse leggere: "Lo scenario..." dovrebbe "rispettare il requisito...". Come alternativa, si sarebbe potuta usare la terza persona dell'indicativo presente, in modo che il lettore italiano saltasse "should" e leggesse solo le stringhe che descrivono lo scenario e il suo requisito: "Lo scenario..." "rispetta il requisito...". Nonostante la necessità di "tradurre" i nomi dei metodi di Specs (come appunto "should"), ho preferito conservare l'idea di una lettura "facile" completa piuttosto che omettere parti della specifica. Nello specifico dei singoli capitoli, sono state apportate le modifiche illustrate di seguito. CH.3 "These Value methods return a Value object and they add the value to the enumeration's collection of values." -> Modificato, perché è la collezione di valori del *tipo enumerato*, non l'enumerazione. "[which] we used as the type for the argument for the isWorkingDay method" -> Ma in realtà è un parametro, dato che ci si riferisce alla dichiarazione di un metodo, non a una invocazione. CH.5 "The signature includes the type name, the list of parameters with types, and the method's return value." -> Ma Odersky &c., nel loro libro su Scala, dicono: "A method's type signature comprises its name, the number, order, and types of its parameters, if any, and its result type." (And "Signature is short for type signature.") (Si veda anche il Glossario, dove l'errore sulla firma del metodo si ripete!) "We've seen several examples of parent and child classes already." -> Ho usato "classi basi e derivate" perché questa terminologia mi sembra preferibile a quella "parentale" in questo breve frammento. CH.6 "Now let's consider the second workaround we described above, changing the declaration to var." -> Questo in realtà è il terzo workaround. When an instance of a class is followed by parentheses with a list of zero or more parameters, the compiler invokes the apply method for that instance. -> La lista è composta di argomenti, non di parametri. CH.7 Talvolta ho chiamato "ridefinizione" l'assegnamento di scala.<Type> o java.lang.<Type> (in particolare, nel paragrafo che spiega il motivo per la "ridefinizione" di java.lang.String) Cambiata la formattazione della Tabella 7.3, usando <code> anche per il nome dei tipi primitivi (2° colonna). CH.8 Modificato il titolo "Traversing, Mapping, Filtering, Folding, and Reducing" in "Operazioni comuni sulle strutture dati funzionali". "The Scala type hierarchy for containers does have a few levels of abstractions at the bottom, e.g., Collection extends Iterable extends AnyRef, but above Collection are Seq (parent of List), Map, Set, etc." -> Ma in realtà è "at the top", perché se si immagina di seguire la figura 7.1 List/Map/Set &c. si trovano sotto Collection, non sopra. Aggiunto un "= …" alla firma di flatMap. "A way to minimize this risk is to expose the lowest-level abstractions possible." -> Qui è esattamente il contrario: è necessario esporre le astrazioni di livello più alto! Nel paragrafo, Iterable e Seq sono astrazioni di livello più alto rispetto a List, perché specificano un minor numero di dettagli! Tolto il messaggio di errore nella sezione "Parametri di funzione impliciti" perché confuso e incompleto. CH.9 Non corretto: import scala.actors.Actor in alcuni esempi (e.g. Paul Newman) non serve! CH.11 Aggiunta una nota sulla traduzione della specifica per il DSL interno. La nota contiene la traduzione, in modo che il lettore possa capire il senso e/o le singole parole della specifica. Negli ultimi due paragrafi della sezione "Un DSL esterno per il libro paga", eliminati alcuni elementi di codice ridondanti nel testo, quando la descrizione a parole è sufficiente. (Scelta discutibile.) In corsivo alcune parole mantenute in inglese (camel-case, backtracking) nel testo. CH.12 Modificati i tempi/riferimenti per il paragrafo della sezione "Capire i tipi astratti" che parla dell'esempio nella sezione "Proiezioni di tipo" perché quest'ultima segue la prima, non il contrario come invece è stato scritto. Nella sezione Annotazioni self-type, spostata la prima frase del sesto paragrafo di testo alla fine del paragrafo precedente. CH.13 Aggiunta una nota a piè di pagina sul significato di ORM. Una considerazione sulla struttura del package encodestring è stata resa come nota a piè di pagina. CH.14 Aggiunta una nota su un nuovo bundle Scala per TextMate, in sostituzione di uno citato che non esiste più.
About
Italian translation of "Programming Scala" (O'Reilly).
Topics
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published