<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2015-03-27 21:12 GMT+00:00 Federico Fissore <span dir="ltr"><<a href="mailto:federico@fsfe.org" target="_blank">federico@fsfe.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Carlos Catucci ha scrito il 26/03/2015 alle 22:16:<span class=""><br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
Scopro solo ora (ni ritagli di tempo mi sto guardando questo linguaggio)<br>
che Go non ha le classi. Va considerao lo stesso un linguaggio OOP?<br>
<br>
</blockquote>
<br></span>
Fosse questo l'unica problema</blockquote><div><br></div><div>Perche' "non avere le classi" dovrebbe essere un problema?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">: prova ad scrivere un programma che apre file in 3 punti diversi, inserisci deliberatamente un baco e poi dallo ad un collega e misura quanto ci mette a trovarlo<br></blockquote><div><br></div><div>Se un programma che apre files in *soli* 3 punti e' un problema da debuggare per i tuoi colleghi, suggerirei di comprare colleghi diversi... ;)</div><div><br></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><span style="font-size:12.8000001907349px">> python ha questa cosa futuristica chiamata "traceback" che forse i programmatori di go non conoscevano. </span></div><div><span style="font-size:12.8000001907349px"><br></span></div><div><span style="font-size:12.8000001907349px">A me viene il dubbio che sia tu a non conoscere go... mi sembra che il concetto di traceback sia perfettamente noto agli implementatori di go, e dove ha senso lo usano normalmente:</span></div></div></div><div class="gmail_extra"><div class="gmail_quote"><div><br></div><div><br></div><div><div>package main</div><div><br></div><div>func f() {</div><div><span class="" style="white-space:pre">      </span>g()</div><div>}</div><div><br></div><div>func g() {</div><div><span class="" style="white-space:pre">      </span>h()</div><div>}</div><div><br></div><div>func h() {</div><div><span class="" style="white-space:pre">      </span>j()</div><div>}</div><div><br></div><div>func j() {</div><div><span class="" style="white-space:pre">      </span>i()</div><div>}</div><div><br></div><div>func i() {</div><div><span class="" style="white-space:pre">      </span>panic("aaaah")</div><div>}</div><div><br></div><div>func main() {</div><div><span class="" style="white-space:pre">      </span>f()</div><div>}</div></div><div><br></div><div><pre class="" style="font-family:Menlo,'Courier New',monospace;font-size:14.6666669845581px;margin-top:0px;margin-bottom:0px;color:rgb(0,0,0)"><span class="">panic: aaaah

goroutine 1 [running]:
main.i()
        /tmp/sandbox530032528/main.go:20 +0xc0
main.j()
        /tmp/sandbox530032528/main.go:16 +0x40
main.h()
        /tmp/sandbox530032528/main.go:12 +0x40
main.g()
        /tmp/sandbox530032528/main.go:8 +0x40
main.f()
        /tmp/sandbox530032528/main.go:4 +0x40
main.main()
        /tmp/sandbox530032528/main.go:24 +0x40

goroutine 2 [runnable]:
runtime.forcegchelper()
        /usr/src/go/src/runtime/proc.go:90
runtime.goexit()
        /usr/src/go/src/runtime/asm_amd64p32.s:1086 +0x1

goroutine 3 [runnable]:
runtime.bgsweep()
        /usr/src/go/src/runtime/mgc0.go:82
runtime.goexit()
        /usr/src/go/src/runtime/asm_amd64p32.s:1086 +0x1</span></pre></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
quindi in python a individuare l'errore ci metti 0 secondi, perchè ti stampa il nome file e riga in cui si è generato l'errore</blockquote><div><br></div><div>Ora, parliamoci chiaro: in praticamente ogni programma il punto in cui si manifesta l'errore e il punto in cui si origina l'errore sono potenzialmente due bestie molto diverse. Se il programma e' scritto bene o e' piccolo, non saranno troppo distanti. Ma di per se non c'e' nessuna garanzia.  In generale non direi che la mancanza del traceback sia particolarmente rilevante</div><div><br></div><div><br></div><div> </div></div>-- <br><div class="gmail_signature"> .<br>..: -enrico-</div>
</div></div>