<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">2014-07-23 8:48 GMT+01:00 Carlos Catucci <span dir="ltr"><<a href="mailto:carlos.catucci@gmail.com" target="_blank">carlos.catucci@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><br></div><div class="gmail_extra">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. <br>
</div></div></blockquote><div><br></div><div>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.</div>
<div> </div><div>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.</div>
<div><br></div><div>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.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra">
<br></div><div class="gmail_extra">2. La velocita' pura te la da solo l'assembler. </div></div></blockquote><div><br></div><div>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).</div>
<div> </div><div><br></div><div><div dir="ltr"><div class="gmail_extra">
<br></div><div class="gmail_extra">> 3. Scrivere giochi e' una delle cose piu' difficili per un informatico. A parte che serve un team per farlo. Un grafico, </div><div class="gmail_extra">> un musicista ed uno sviluppatore come minimo.<br clear="all">
</div></div></div><div><br></div><div>E verosimilmente tutti gli story-writer...</div><div><br></div><div>Fortunatamente su mobile si riescono a vedere giochini "interessanti" fatti da una persona.</div><div>Esattamente come ai vecchi tempi ;)</div>
<div> </div></div><br><br clear="all"><div><br></div>-- <br> .<br>..: -enrico-
</div></div>