De momento me estoy leyendo los fundamentos del lenguaje, y haciendo algunos experimentos. Parece imposible empezar en esto por uno sólo: es tal la confusión de estructuras, librerías, etc. que parece que no hay por dónde empezar. De hecho, llevo varios meses leyendo sin atreverme a tocar una línea de código porque no sé por dónde empezar.
Bueno, a lo que vamos, como paso previo he hecho una prueba a ver cuán rápido es Java. Más que nada, porque Java es un lenguaje interpretado. Bueno, los puristas dirán que no lo es, que se ejecuta una máquina virtual y que se "compila" en forma de bytecodes... ya. También los antiguos compiladores de Basic hacían eso y decíamos que era interpretado.
Tengo hecho en C un programa llamado Balanza que es un auténtico devorador de CPU. En otro post os contaré la historia de Balanza. He pasado el programa a Java y también lo he compilado con gcj, el compilador de java de GNU.
Y a los tres los he ejecutado en un SuSE Linux 10.1 con version de kernel 2.6.16. ¿El resultado? Redoble de tambores, por favor.
- El programa en C tardó 47 minutos 23 segundos
- El programa en Java (1.6.0_02) tardó 93 minutos, 39 segundos
- El programa en gcj (4.1.0) tardó 465 minutos, 15 segundos!!!
En fin, que tanto se dijo en aquellos días que parecen olvidados que Java era igual de rápido que C, que si el Just-in-time le daba la misma rapidez... vamos, como que es lo mismo. Hagan la prueba y vean.