[Python] Ma Go non ha le classi

enrico franchi enrico.franchi a gmail.com
Sab 28 Mar 2015 11:50:21 CET


2015-03-27 21:12 GMT+00:00 Federico Fissore <federico a fsfe.org>:

> Carlos Catucci ha scrito il 26/03/2015 alle 22:16:
>
>> Scopro solo ora (ni ritagli di tempo mi sto guardando questo linguaggio)
>> che Go non ha le classi. Va considerao lo stesso un linguaggio OOP?
>>
>>
> Fosse questo l'unica problema


Perche' "non avere le classi" dovrebbe essere un problema?


> : 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
>

Se un programma che apre files in *soli* 3 punti e' un problema da
debuggare per i tuoi colleghi, suggerirei di comprare colleghi diversi... ;)

> python ha questa cosa futuristica chiamata "traceback" che forse i
programmatori di go non conoscevano.

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:


package main

func f() {
g()
}

func g() {
h()
}

func h() {
j()
}

func j() {
i()
}

func i() {
panic("aaaah")
}

func main() {
f()
}

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



> 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


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



-- 
.
..: -enrico-
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150328/6ae10979/attachment.html>


Maggiori informazioni sulla lista Python