Autor: NeuraL Data: Temat: [Hackmeeting] punto situazione
On Wednesday 29 June 2005 23:13, Elettrico wrote: > sì scusate eh ma stiamo parlando di sicurezza o di simpatia ed
> efficienza dei linguaggi?
> intendiamoci, è vero che java è lento e avido di risorse, ma oggi
> macchine con processori e ram ultrapotenti costano un cazzo.
Qualcuno potrebbe obiettare che non ci vuole un cazzo a sviluppare
applicazioni che diventano ultra pesanti sotto carico e che riescono
a saturare tutte le risorse del tuo potente sistema senza il minimo
problema, deridendo pure il tuo futile tentativo di resistere alla
furia delle cavallette (soprattutto lato server) :) Quanto piu' il
codice per eseguire queste applicazioni e' complesso e "indiretto"
tanto piu' scaleranno male causando deadlock e malfunzionamenti. E'
questo il vero problema di freenet ed e' determinato indirettamente
dalla scelta che hanno fatto, limitandone di fatto la possibilita' di
diffusione, l'hardware c'entra ma non va bene la logica "allora ti
compri un sistema piu' potente".
E' un problema architetturale!
Questo perche' Java e' una virtual machine ed esegue codice in
emulazione (quando va bene, altrimenti interpreta il bytecode a run
time) e porta con se' tutto l'overhead di gestione di una cpu virtuale
che ha di fatto un'altra *architettura* rispetto a quella su cui sta
girando. E' una falsa speranza quella di un compilatore Just in time
che risolva questo problema prestazionale perche' la complessita'
architetturale della macchina virtuale da gestire (in software) rimane,
il codice macchina x86 (per esempio) prodotto al volo sara' molto piu'
grosso, complesso e indiretto rispetto alla compilazione dai sorgenti
originali per il processore finale. Tanto per dirne una, non sara' in
grado di sfruttare le scorciatoie hardware, tra le quali le pipeline
perche' se queste vengono caricate con troppi salti condizionati allora
il meccanismo di riconoscimento dell'ordine delle istruzioni trasha
tutto ogni volta rallentando il processore hw, cosa che invece succede
piuttosto regolarmente nell'esecuzione del codice di un processore
emulato, ma e' solo un esempio.
Seriamente: java va benissimo per determinati compiti dove la
portabilita' a livello binario e' piu' importante o per i web services
ma fare dei server (intendo demoni!), soprattutto quando i sorgenti
sono open source, proprio non c'entra un cazzo.
E' un'assurdita' che costera' cara al progetto freenet purtroppo.
Credo sempre che se gli sviluppatori ascoltassero meno tutta la merda
accademica prodotta dalle universita' il mondo sarebbe un posto
migliore <g>
--
... "Nel tempo dell'Inganno Universale, dire la verita' e' un atto
rivoluzionario" - George Orwell