Vale la pena leggere le specifiche della lingua? [chiuso]

18

Mi chiedo se valga la pena leggere le specifiche linguistiche / i documenti standard (ad es. La specifica della lingua Java ) se non hai intenzione di scrivere un compilatore / interprete per la lingua o qualcosa di simile? Capisco che leggere un libro del genere non dovrebbe essere la prima esposizione di qualcuno alla lingua, ma potrebbe essere un ottimo modo per apprenderne i dettagli più fini.

Ti sei mai preoccupato, e dovresti altri?

    
posta Anto 17.05.2011 - 22:50
fonte

12 risposte

18

Fondamentalmente si tratta di una domanda abbastanza semplice: vuoi una conoscenza autorevole e dettagliata della lingua, o sei felice di conoscerla abbastanza bene da usarla, rendendoti conto che probabilmente ci sono parti che non conosci bene e probabilmente altre parti che non conosci affatto?

Fondamentalmente, ci sono alcune persone che sembrano quasi nate per essere "avvocati linguistici" - non lo faranno (non possono) riposare finché ci sono anche alcuni angoli o fessure nella lingua che non sono conoscere e / o capire Molti di questi gravitano verso linguaggi relativamente semplici semplicemente perché l'apprendimento di linguaggi più complessi a questo livello di dettaglio è spesso quasi impossibile per qualsiasi persona.

Per la maggior parte dei programmatori, sarebbe una totale perdita di tempo - sono abbastanza felici e produttivi, sapendo abbastanza del linguaggio per poterlo usare (ragionevolmente) bene. Oltre a questo, semplicemente non si preoccupano. Il linguaggio è uno strumento, e finché possono usare lo strumento abbastanza bene per i loro scopi, il fatto che ci siano altre cose che non sanno è in gran parte irrilevante.

    
risposta data 17.05.2011 - 23:44
fonte
10

Mai

Si dovrebbe mai leggere le specifiche di una lingua.

È una totale perdita di tempo.

I grandi programmatori sono in grado di digitare codice casuale, porre domande su Stack Overflow e utilizzare l'IDE per scrivere codice che non si arresta molto spesso.

Non perdere tempo a capire la lingua. Basta trovare un IDE eccellente con un buon completamento automatico. Fai molte domande su SO. È tutto ciò di cui qualcuno ha bisogno.

    
risposta data 18.05.2011 - 00:15
fonte
5

Per Java, la specifica della lingua ha lo scopo di dare una risposta definitiva a qualsiasi domanda sul significato di un dato costrutto sorgente. Non è consigliabile leggerlo come studente - invece un buon insegnante ti mostra tutte le trappole e cosa significano realmente.

Per uno sviluppatore esperto, i Java Puzzler sono davvero buoni per allenare la comprensione dei casi oscuri.

    
risposta data 17.05.2011 - 22:54
fonte
2

La risposta generale è: Sì, vale la pena.

Se vuoi scrivere un codice portatile, è obbligatorio.

Per alcune lingue, è inevitabile, ad es. Ada o perl.

Inoltre, se non si scrive solo codice ma si legge anche il codice da altri, alla fine si dovrà fare riferimento alle specifiche.

    
risposta data 18.05.2011 - 10:11
fonte
2

Forse sono solo io, ma questa domanda non ha senso. Capire gli strumenti che usi è il segno distintivo di un professionista. Più profonda è la comprensione, migliore è la tua capacità di utilizzare lo strumento. Per me è una scelta tra essere un dilettante o un professionista.

Ogni volta che sto imparando una nuova lingua la prima cosa che cerco è la specifica.

Ho letto le specifiche per ANSI C, C ++, Java, Scheme, Python e Javascript. Ho dimenticato la maggior parte dei dettagli di C, C ++ e Java solo perché non uso spesso queste lingue. Avendo letto le specifiche, ero un programmatore migliore perché sapevo usare meglio la lingua.

    
risposta data 18.05.2011 - 05:41
fonte
1

In generale può essere utile capire certi momenti difficili che incontri di tanto in tanto.

Ma seriamente, se padroneggiare una lingua richiede di familiarizzare con le sue specifiche dettagliate, allora forse la lingua è sfortunata. Analogamente al detto comune, se hai bisogno di una documentazione per la tua applicazione, allora è mal progettata.

    
risposta data 17.05.2011 - 22:51
fonte
1

Trovo utile quando ti imbatti in quello che è il momento, ma trovo difficile conservarlo come una lettura diretta. Tuttavia, quando ho usato dopo che non ho capito qualcosa, ho sempre approfondito la mia conoscenza.

    
risposta data 17.05.2011 - 23:12
fonte
1

Se sei un programmatore hard core in quella lingua, e devi essere in grado di estorcergli ogni sottile sfumatura, sì. Ci sono risultati chiari sul tuo investimento di tempo in questo caso .

Altrimenti no. Se non hai intenzione di usare la conoscenza, sicuramente non ti manterrà. Le specifiche della lingua riguardano la cosa più noiosa che si possa immaginare.

    
risposta data 17.05.2011 - 23:24
fonte
1

Normalmente non metto molto materiale nello standard. Il semplice fatto è che lo Standard non ti dirà di non usare eccezioni come flusso di controllo. Non ti dirà di non usare Singletons. Non ti dirà come progettare un'interfaccia di classe gestibile. Non ti dirà perché la tua applicazione si blocca quando non sai perché. Puoi avere il programma più ben definito al mondo e sarà comunque orribile.

A mio parere, il semplice fatto è che la stragrande maggioranza della sfida della programmazione non consiste nel fare in modo che il linguaggio faccia quello che vuoi, ma è sapere qual è la cosa giusta. Finché conoscerai le funzionalità linguistiche di base, allora sarà il modo di utilizzarle che conta.

    
risposta data 18.05.2011 - 14:06
fonte
1

Vale sicuramente la pena leggerlo. Alcuni linguaggi come C ++ e Java e Python sono abbastanza complessi che leggendo le specifiche della lingua imparerai molto su quelle lingue e su tutte le fantasiose sintassi / trucchi semantici che hanno.

Leggevo le specifiche del linguaggio Scheme R5RS durante il viaggio in autobus verso il college perché era breve e compatto e ho imparato tutta la sintassi e tutte le funzioni di base disponibili.

    
risposta data 02.06.2011 - 19:35
fonte
0

La parte di doc.python.org etichettata come "riferimento alla lingua" è estremamente utile. Il capitolo "modello dati" in particolare.

    
risposta data 17.05.2011 - 22:53
fonte
0

Penso che se la programmazione in questa lingua è il tuo lavoro e vuoi prendere sul serio il tuo lavoro, dovresti leggere le specifiche del linguaggio, specialmente quando è relativamente facile e veloce da leggere e da comprendere come le specifiche del linguaggio Java anche se ha recently ha perso molto della sua semplicità con i generici.

Ma anche se hai intenzione di imparare e alla fine padroneggiare una nuova lingua che non conosci ancora, può essere molto perspicace leggere le specifiche di quella lingua prima di sprecare il tuo tempo con essa. Sono sicuro che se altri sviluppatori C ++ avessero letto e provato a comprendere il Manuale di riferimento annotato C ++ prima che iniziassero ad usarlo, molti sarebbero scappati via.

    
risposta data 18.05.2011 - 02:09
fonte

Leggi altre domande sui tag