<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2014-10-06 10:52 GMT+02:00 Nicola Larosa <span dir="ltr"><<a href="mailto:nico@teknico.net" target="_blank">nico@teknico.net</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>Marco Beri wrote:<br></span><span><br>
> Non direi certo che il commento del tuo esempio è una sconfitta del<br>
> programmatore, ma venendo da un'epoca in cui il codice DOVEVA essere<br>
> commentato,<br>
<br>
</span>Un'epoca? Il codice deve essere commentato e descritto anche oggi.<br></blockquote><div><br></div><div>Dai, hai capito cosa intendevo :-)</div><div><br></div><div>Una volta si diceva che tutto il codice doveva per forza essere molto commentato. </div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>
> la definizione seguente mi ha abbastanza colpito: "ogni commento non<br>
> banale è un insuccesso del programmatore che non è riuscito a scrivere<br>
> del codice auto-esplicativo".<br>
<br>
</span>Credo sia questa:<br>
<br>
"Comments are, at best, a necessary evil. If our programming languages<br>
were expressive enough, or if we had the talent to subtly wield those<br>
languages to express our intent, we would not need comments very<br>
much—perhaps not at all."</blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
L'autore descrive in modo articolato pregi e difetti dei commenti; il suo<br>
giudizio complessivo che sia un "male necessario" mi sembra miope.<br></blockquote><div><br></div><div>Io lo trovo invece sostanzialmente comprensibile e corretto. Il senso del male necessario sta nel fatto che un commento è in fondo un possibile punto di fallimento perché potrebbe disallinearsi, diventare obsoleto essendo comunque una cosa a sé stante rispetto al codice che commenta.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Ci sono vari livelli di testo umano, non comprensibile dalle macchine<br>
(almeno non oggi, e speriamo mai), collegato ai programmi per computer.<br>
Si va dalle specifiche, alle descrizioni architetturali, alle specifiche<br>
delle API, alle docstring, ai commenti veri e propri.<br>
<br>
*Tutti* questi livelli sono *essenziali*. Per l'accennata insufficiente<br>
espressività dei linguaggi di programmazione, scrivere programmi è<br>
un'attività a perdita di conoscenza: il dettaglio delle operazioni<br>
comprensibili dalla macchina non conserva l'intenzione del programmatore.<br>
<br>
Ogni volta che si legge un programma privo di documentazione si effettua<br>
un'operazione costosa di "reverse intentioning", non dissimile dal<br>
"reverse engineering" ma ad un livello superiore.<br>
<br>
Scrivere codice corretto è difficile, scrivere codice espressivo lo è<br>
ancora di più, scrivere contemporaneamente codice espressivo e il testo<br>
che completi quell'espressività, inevitabilmente insufficiente, è<br>
difficilissimo e non gode della verifica automatica, da cui la tipica<br>
insofferenza dei programmatori, pigri per definizione.<br>
<br>
La necessaria manutenzione del codice comporta la manutenzione della sua<br>
descrizione testuale: ma senza quella descrizione, la stessa manutenzione<br>
è molto più costosa e pericolosa.<br></blockquote><div><br></div><div>Concordo.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Siamo chiamati ad essere contemporaneamente meccanici, domatori,<br>
scrittori e poeti: non meraviglia che tendiamo ad alleggerire il<br>
fardello. Ahimè, non è una buona idea.<br></blockquote><div><br></div><div>Qui meno :-)</div><div><br>Diciamo che io l'ho letta in maniera diversa. Il commento spesso diventa un modo per non sforzarsi di tendere a del codice ben scritto ma per mettere una toppa ("che schifo di roba ho scritto... potrei rifattorizzarla e sistemarla meglio, ma faccio prima a scrivere un bel commento per dire quello che dovrebbe fare questo guazzabuglio"). Di fronte a un comportamento spesso come questo, diventa importante dare un segnale forte riguardo al commento che è spesso un male.<br><br>Io almeno l'ho letta così.</div><div><br></div><div>Ciao.<br>Marco.</div></div><div><br></div>-- <br><div><div><div><div><a href="http://beri.it/" target="_blank">http://beri.it/</a> - Un blog</div><div><a href="http://beri.it/i-miei-libri/" target="_blank">http://beri.it/i-miei-libri/</a> - Qualche libro</div><div><br></div></div></div></div>
</div></div>