Como siempre, en Barrapunto empiezas un comentario por un sitio, te sacan la noticia a portada y tus comentarios desaparecen. El debate se inició en este punto y estaba la cosa muy interesante. Seguiré respondiendo por aquí.
Una cosa que no entiendo; y tomo las matemáticas como base. Si el tiempo de ejecución de una tarea es 'T', suponiendo que programemos en cualquier lenguaje no interpretado obtendremos que se estarán ejecutando instrucciones (no se cómo llamarlas, no es el término mas apropiado) productivas todo ese tiempo 'T'. En un lenguaje como Java (y cualquier lenguaje interpretado) tendremos un tiempo 't' en el cual la máquina virtual (o el intérprete, o...) usa ciclos de CPU para_lo_que_sea. Consecuentemente, de todo ese tiempo 'T' del que disponemos, realmente el tiempo en el que se están ejecutando instrucciones útiles es de 'T-t'. Y perdonadme que os diga, pero de siempre me han demostrado que:
T > T-t para todo t > 0 --> caso de lenguajes interpretados
T = T-t para t = 0 --> caso de lenguajes no interpretados
Por mucho que se optimice, por mucho que se quiera mejorar Java, 't' seguirá teniendo siempre un valor, que hará que la ecuación que se cumpla sea la primera. Consecuentemente, dos algoritmos implementados idénticamente correrán siempre mejor en un lenguaje compilado que en uno interpretado.
Y no me estoy metiendo con la portabilidad, si es más fácil programar en uno que en otro... eso va para otro artículo.
-- El vino y la cerveza son enemigos del hombre. Pero los hombres que huyen de sus enemigos son unos cobardes
Ncht...
(Puntos:1)( jabberid://aaaypaaayodaaameaaargo-EN-jabberes-PUNTO-org | Última bitácora: Miércoles, 21 Diciembre de 2005, 16:41h )
Una cosa que no entiendo; y tomo las matemáticas como base. Si el tiempo de ejecución de una tarea es 'T', suponiendo que programemos en cualquier lenguaje no interpretado obtendremos que se estarán ejecutando instrucciones (no se cómo llamarlas, no es el término mas apropiado) productivas todo ese tiempo 'T'. En un lenguaje como Java (y cualquier lenguaje interpretado) tendremos un tiempo 't' en el cual la máquina virtual (o el intérprete, o...) usa ciclos de CPU para_lo_que_sea. Consecuentemente, de todo ese tiempo 'T' del que disponemos, realmente el tiempo en el que se están ejecutando instrucciones útiles es de 'T-t'. Y perdonadme que os diga, pero de siempre me han demostrado que:
T > T-t para todo t > 0 --> caso de lenguajes interpretados
T = T-t para t = 0 --> caso de lenguajes no interpretados
Por mucho que se optimice, por mucho que se quiera mejorar Java, 't' seguirá teniendo siempre un valor, que hará que la ecuación que se cumpla sea la primera. Consecuentemente, dos algoritmos implementados idénticamente correrán siempre mejor en un lenguaje compilado que en uno interpretado.
Y no me estoy metiendo con la portabilidad, si es más fácil programar en uno que en otro... eso va para otro artículo.
El vino y la cerveza son enemigos del hombre.
Pero los hombres que huyen de sus enemigos son unos cobardes