Cristian Rodríguez escribió:
> Rodrigo Fuentealba escribió:
>
>
>> ¿Saliste de carrete con los tipos de SCO y te dieron crack? :P
>>
>
> hahah.. con SCO ni a misa ;P
>
>
>> El sólo hecho que un simple holamundo.class se demore más de 12 veces
>> lo que se demoraría en C para ejecutarse "porque tiene que cargar toda
>> la parafernalia de java encima" es suficiente para reírme un rato.
>>
>> Ok, estas comparaciones no son válidas
>>
>
> Logico, C es de bajo Nivel y java de alto nivel, comparando peras y
> manzanas.
Ojo, ambos son lenguajes de alto nivel. Assembler es un lenguaje de
bajo nivel.
--
Franco
> .
From [EMAIL PROTECTED] Fri Nov 16 12:51:23 2007
From: [EMAIL PROTECTED] (Franco Catrin L.)
Date: Fri Nov 16 12:47:53 2007
Subject: =?iso-8859-1?q?Re=3A_Benchmarking_en_distintos_lenguajes_=5B_Era?=
=?iso-8859-1?q?_algo_as=ED_como_cliente_en_jabber=2E=2E=2E_=5D?=
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>
Rodrigo Fuentealba escribió:
> Tampoco lo tiene mucho Java v/s C ya que C se
> compila directamente a código de máquina, mientras que Java requiere
> que tengas el JRE (Java Runtime Environment).
Si y no.
La máquina virtual de Java igual te va a compilar el código a código de
máquina y eso es lo que va a ejecutar, se demorará la primera vez pero
en los casos en donde importa el rendimiento (loops) sólo se hace al
principio. El byte-code no es código interpretado, es código de máquina
para una máquina virtual (oh!).
También puedes compilar Java a código de máquina directamente con GCJ,
pero eso requiere que también tengas compiladas otras cosas que hasta
hace poco estaban restringidas por Sun. No sé cual es el escenario actual.
Hay algunas cosas que funcionan más rápido en Java pero no por un tema
de compiladores, sino que por otros aspectos como por ejemplo el
mecanismo de Garbage Collection que funciona de forma asincrona (pero no
en paralelo). En el caso de C puro los malloc y los free te pueden
comer un ciclo. Otras cosas que influye bastante son las estructuras de
datos, por ejemplo no es lo mismo un int[] en C que un Vector de Integer
en Java, y si.. hay programadores que no van a usar el int[] de Java.
Otro tema es la forma de organizar matrices multidimensionales en C
respecto a como un programador típico lo hace en Java, aspecto en donde
C# si se preocupa.
El tema de por qué las aplicaciones en Java funcionan lento tiene varias
causas, desde complejidad en exeso en el diseño de aplicaciones hasta el
uso y abuso de conceptos avanzados de Estupidez Artificial y Lógica
Confusa ;)
--
Franco
From [EMAIL PROTECTED] Fri Nov 16 12:46:05 2007
From: [EMAIL PROTECTED] (Rodrigo Fuentealba)
Date: Fri Nov 16 12:48:49 2007
Subject: Jabber server & client.
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>
El 16/11/07, Franco Catrin L. <[EMAIL PROTECTED]> escribió:
>
> En C tambien hay que cargar parafernalia, o por que crees tu que las
> aplicaciones se demoran en partir?
Todo lo que sea código necesita cargarse en memoria antes de
ejecutarse, eso incluye bibliotecas de base, está demás decirlo; no es
necesario que me mandes a primer año de la carrera porque ya lo sé. No
digo que en C no haya que cargar nada, ni en PHP, ni en Python, ni en
Cobol... sólo digo que lo que hay que cargar en Java cuando no se
tiene un servidor de aplicaciones es bastante más.
> lo mismo pasa en C++. Ahh.. y esa
> "parafernalia" es para que los programadores no pierdan meses
> escribiendo codigo base.
Misma historia que los Frameworks, un nivel más abajo.
> En los sistemas operativos hay varios trucos
> para que no se demore tanto esa carga. En el caso de aplicaciones Java
> seria distinto si primero se cargara la maquina virtual y luego se
> fueran agregando las aplicaciones como si fueran clases adicionales..
> mmm.. ahh cierto, si existe eso y se llama "servidor de aplicaciones".
Por supuesto.
> Cuanto importa lo que se demora en cargar depende de para que quieres la
> aplicación. Un Hola Mundo no sirve para nada mas que para introducir a
> alguien a un lenguaje de programación.
Lo que demora en cargar no importa, lo que importa es si puedes
trabajar teniendo el software una vez cargado. Hola Mundo es un
ejemplo estúpido.
> Cuando te enfrentas a problemas
> realmente complejos si de demora 10 segundos en cargar en vez de 1 no es
> tan importante si te demoraste 1 año en hacer la aplicacion y no 5.
> Preguntale a Miguel de Icaza ;)
I know that; no es necesario preguntarle a Miguel de Icaza; el
fenómeno PHP Framework también responde a ello.
> Por cierto, pidgin, firefox, openoffice
> son aplicaciones en c/c++ y no son muy rapidas en cargar.
Yep; hay que considerar que son aplicaciones complejas y que hacen uso
extensivo de gráficas; en el caso de OpenOffice, carga todo el motor
de diccionarios y una gran faramalla de cosas.
> (en el contexto original de este thread.. Pidgin es la mejor opcion IMO)
IMO también.
--
Rodrigo Fuentealba