[Python] Fwd: Digest di Python, Volume 101, Numero 37

enrico franchi enrico.franchi a gmail.com
Mer 23 Lug 2014 11:41:50 CEST


2014-07-23 8:48 GMT+01:00 Carlos Catucci <carlos.catucci a gmail.com>:

>
> 1. Java non e' veloce. E' metacompilato come Python, ma e' statico, si
> compila e poi esegui il metacodice con un interprete. Ovvero perdi tempo a
> ricmpilare di continuo sopratutto se e' un progetto grosso. Python compila
> on-the-fly se il sorgente e' piu' recente del metacompilato.
>

In effetti Java e' parecchio veloce. Quello che bisogna fare capire al
nostro giovane amico e' che la velocita' e' l'ultimo dei problemi.
Bisognerebbe spiegargli la regola 90/10 (o 80/20) e il profiling,
bisognerebbe spiegargli il fatto che generalmente molti problemi di
performance non sono necessariamente sul codice applicativo, ma sono nel
modo in cui si fa I/O o generalmente si interagisce con l'ambiente e il
sistema operativo (e che ovviamente questi problemi si risolvono in modo
diverso dal "cambiare linguaggio"). Bisognerebbe anche spiegargli un sacco
di cose di informatica, e infine discutere delle varie tecniche per andare
forte in python a seconda del motivo per cui e' lento.

Ma in generale, secondo me fa bene. Voglio dire, Kivvy e' un oggetto molto
interessante e divertente. E' qualcosa che avrei avuto avere quando ero un
ragazzino. Ma alla fine, se pensa che Java sia piu' indicato per quello che
vuole fare, beh, ha 10 anni per capire quanto ingenua e' la sua posizione.
L'alternativa e' che ogni volta che trova qualcosa che non sa fare in
Python pensera' dentro se stesso che ha preso la scelta sbagliata. Lascialo
fare con Java... e ogni volta che incontrera' qualcosa che non sa fare,
pensera' che *Java* e' la scelta sbagliata.

Se in tutto questo imparera' l'inglese e adottera' un attitudine piu'
produttiva "nell'internet", forse al momento giusto avremo un altro ottimo
software engineer, che si e' visto Java e un po' delle altre tecnologie che
verranno fuori nei prossimi 10 anni, forse anche Python.


> 2. La velocita' pura te la da solo l'assembler.
>

No. E' generalmente risaputo che spendendo la stessa quantita' di tempo
normalizzata per linguaggio in C e in ASM, il codice scritto in C
probabilmente andra' piu' forte. Il motivo e' che i compilatori parlano ASM
meglio della stragrande maggioranza degli umani e possono facilmente tenere
dietro a dettagli piuttosto seccanti (e.g., lunghezza della pipeline,
quanti cicli di clock ci mette una specifica istruzione prima che il
risultato sia effettivamente pronto, per cui riordina le istruzioni in modo
da ottimizzare il throughput, etc etc etc). Ovviamente, prendendo una
persona *molto* competente su questi dettagli e dandogli abbastanza tempo,
riuscira' ad ottimizzare il codice asm. Ma in generale, se vuoi andare
forte, il compilatore fa davvero un ottimo lavoro (e soprattutto, non devi
tenere dietro al fatto che dentro un Atom funziona diverso da un i7, che
funziona diverso da un AMD).



> 3. Scrivere giochi e' una delle cose piu' difficili per un informatico. A
parte che serve un team per farlo. Un grafico,
> un musicista ed uno sviluppatore come minimo.

E verosimilmente tutti gli story-writer...

Fortunatamente su mobile si riescono a vedere giochini "interessanti" fatti
da una persona.
Esattamente come ai vecchi tempi ;)




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


Maggiori informazioni sulla lista Python