Lenguajes [Was: Re: FdT: Recomendación FEDORA.]

Horst von Brand vonbrand en inf.utfsm.cl
Vie Oct 15 14:08:02 CLST 2004


Alvaro Herrera <alvherre en dcc.uchile.cl> dijo:

[Respecto de C y otros lenguajes]

> Eso es muy relativo.  Otros lenguajes permiten mas optimizaciones, al
> tiempo que otras caracteristicas los hacen mas lentos.  Me han contado
> que Java, por ejemplo, permite hacer mas cosas tanto al compilador en
> tiempo de compilacion como a la maquina virtual, en tiempo de ejecucion;
> en teoria un programa podria correr mas rapido (de hecho, ejemplos
> idiotas como un calculo de Fibonacci es mas rapido en Java que en C).

Puede ser perfectamente. Claro que como escribes "el mismo programa" en
lenguajes dissimiles es otro lio (para algun valor no trivial de
"programa", claro esta).

> En la practica, con toda la jerarquia de clases que tienes bajo la
> aplicacion, se hace mas lento.

No es la jerarquia de clases per se. P.ej se puede escribir codigo C++
tanto o mas rapido que C, usando clases &c (claro que el costo de esta
eficiencia es la, digamos, un tanto curiosa idea de clases y demas de C++,
y la general complejidad del lenguaje).

>                                 Pero a la vez el lenguaje otorga nuevas
> funcionalidades, como manejo automatico de memoria, herencia,
> polimorfismo.  Etc.

Y al final lo que importa es el costo de la aplicacion sobre su ciclo de
vida (costo de desarrollo y mantencion (== horas hombre) + costo de
operacion (== horas computador)). Como estan las cosas hoy, 1 hora hombre
es _muchisimo_ mas cara que 1 hora computador. Tanto que _no_ es gracioso.
Por tanto, salvo que tu programa corra con muchisima frecuencia, y ademas
en muchas maquinas simultaneamente, no tiene mayor sentido preocuparse de
la eficiencia del codigo, si de la eficiencia de desarrollo y mantencion.
O sea, lenguajes como Java (tipicamente 5 a 10 veces mas lento que C, pero
que permiten desarrollar unas 10 a 20 veces mas rapido, o mas de 100 veces
si tienes las bibliotecas adecuadas a la mano, y que evita una gran clase
de errores) son una verdadera ganga.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513


Más información sobre la lista de distribución Linux