Posso dire nel mio piccolo la mia su Python vs Java ? Non ho grandi esperienze 
in nessuno dei due linguaggi, però vengo dal mondo ovattato di Visual Studio e 
come programmatore sono stato viziato e cresciuto nella bambagia.

Dopo aver provato per poche settimane entrambi i linguaggi a pelle mi sta più 
simpatico Python di Java, però a volte ha degli atteggiamenti che mi stanno un 
po sulle balle.
Sarà vero quello che dite voi, che Python insegna a responsabilizzarsi, sarà 
vero quello che scrive Marco Beri che Python è un linguaggio fortemente 
tipizzato, però... vi spiego il mio malumore con un esempio

Ci sono due programmatori Python, Tizio e Caio.
Un giorno Tizio, che è un programmatore sciatto che non inserisce nemmeno una 
riga di docstrings, scrive:


def gigetto(a, b):
        return a + b


Il giorno dopo arriva Caio, legge il codice e si domanda cosa fa gigetto. Somma 
due numeri? Concatena due stringhe? Si perchè quando Caio prova a passare 
diversi parametri ottiene risultati diversi

print(somma(4, 3)) # Restituisce il numero 7
print(somma("Ajeje", "Brazorv")) # Restituisce "AjejeBrazorv"


Vero che Tizio avrebbe potuto scrivere due righe di codice in più per 
verificare i tipi dei parametri passati a gigetto, però è altrettanto vero che 
in java un problema non si sarebbe posto, perchè tizio avrebbe probabilmente 
scritto:

public int gigetto(int a, int b) {
        return a + b;
}

e se Caio ci prova soltanto a scrivere:

System.out.println(gigetto("Ajeje", "Brazorv"))

Java s'incavola chiedendogli cosa diavolo vuole fare:

"method gigetto in class X cannot be applied to given types
required: int, int
found: java.lang.String, java.lang.String"


Io difatti per risolvere il problema alla radice in python scrivo:

def gigetto(a, b):
        assert isinstance(a, int)
        assert isinstance(b, int)
        return a + b

e questo mi aiuta ad ottenere un comportamento simile a quello di Java.
Sono io che sbaglio qualcosa o è normale e ci devo fare l'abitudine ?
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a