🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.lenguajes.java
Article #26057

Re: La supuesta portabilidad de C.

#26057
From: Alberto Planas Dominguez
Date: Tue, 09 Feb 1999 00:00
98 lines
6200 bytes
Jonathan Revusky wrote:


[Se comentaba que...]
> > Hay una diferencia ESENCIAL  entre JAVA y C que claramenteproporciona portabilidad >frente a velocidad.
> 
> La otra cosa que matizar�a es que creo que lo de arriba es un falso
> paralelismo. Se puede decir de modo muy tajante que Java es m�s portable
> que C. Pero no se puede decir lo mismo sobre la velocidad de C. Y de
> hecho, la velocidad no es una prestaci�n de un lenguaje realmente. Es
> una prestaci�n de una implementaci�n de un lenguaje. El �nico modo en
> que se puede afirmar de modo tajante que C es mucho m�s r�pido que Java
> -- y quiero decir como regla -- ser�a comparando el C compilado con Java
> interpretado. Y esa es claramente una comparaci�n injusta.

  Una notilla sobre la �velocidad del lengiaje�. Creo que algunas ideas
no se tienen muy claras respecto a lo que es un lenguaje. Es mucho mas
util considerar el lenguaje como el conjunto de reglas lexicas,
sintacticas y semanticas que nos permiten expresar un algoritmo. Los
lenguajes incorporan en estas reglas facilidades para expresar y
entender estos conceptos. Por esa misma razon un lenguaje no puede ser
mas rapido que otro. La velocidad aqui seria responsabilidad del
algoritmo utilizado.

  Pero claro, esto no tiene naada que ver con Java y C/C++. Estos
lenguajes deben de implementarse en maquinas reales. Aqui si podemos
hablar de lenguajes rapidos, ya que algunos permiten que la traduccion
de codigo nativo (asm) sea mucho mas eficiente. En este caso tanto Java
como C/C++ son perfectamente equiparables. Los dos tienen construcciones
similares, y el problema de la herencia ya no supone carga alguna.

  La compilacion que Java se realiza para una maquina virtual, invitando
a considerar la ejecucion del codigo como un paso intermedio entre la
interpretacion y ejecucion nativa. Con la llegada de los JITs esta
interpretacion se acerca aun mas a la ejecucion nativa del codigo, pero
sigue suponiendo una carga para el procesamiento.

  Asi que cuando se habla de lenguajes veloces, �en que nivel nos
referimos? :????


> Java tiene una sem�ntica distinta y el conjunto de optimizaciones
> posibles es distinto. Te�ricamente hay factores que dar�an una ventaja
> al C pero tambi�n hay factores que dar�an una ventaja a Java.

  :)))) No son tan distintos, solo que las optimizaciones de Java no
pueden llegar a tener en cuenta el procesador sobre en que se ejecutara
(reordenamiento de instruciones, uso de registros, prediccion de
saltos). Tengo entendido que algunos JIT realizan esta fase de la
optimizacion.
 
> Entonces, el falso paralelismo de portabilidad frente a velocidad es lo
> siguiente:
> 
> Java, como lenguaje, no tiene un problema *intr�nseco* de velocidad. Es
> todo cuesti�n de implementaci�n.

 :)) Cherto, a ese nivel LISP, Java, Smalltalk, Eiffel y todos los
lenguajes funcionales e imperativos son igualmente veloces. Occam y
algunos otros para multiprocesadores y los logicos..... quizas sean los
unicos capaces de situarse a distinto nivel de velocidad.

> La escasa portabilidad de C, a diferencia, s� que es un problema
> intr�nseco del lenguaje. No es una cuesti�n de aguantar hasta que las
> implementaciones mejoren. Las prestaciones del C en cuanto a la
> portabilidad (y la seguridad) no van a mejorar con el tiempo.
> 
> Todo eso, finalmente, me hace pensar en la famosa boutade de Winston
> Churchill. Cuando una se�ora le dijo "Se�or, est� usted borracho" el
> replic�, "S�, pero usted es fea y ma�ana ya no estar� borracho."

  Jajaja, es verdad. Mira que era grosero!! :DD

  Otra cosa que me gustaria comentar es que no se puede comparar la
protabilidad de Java con C, como lenguajes su portabilidad esta
asegurada siempre que usemos compiladores de versiones iguales. (Lease
lo de versiones C K&R y ANSI, y Java como 1.0, 1.1 y 1.2)

  No hay que confunvir la portabilidad de Java con la portabilidad del
lenguaje Java. Java no es solo un lenguaje. Java esta definido como una
plataforma. Java, como lenguaje, no es gran cosa. Es bonito que no
incorpore herencia multiple pero si interfaces multiples. Queda feo en
la declaracion de clases internas.... Es solo un lenguaje mas. Algunos
pensaran que Eiffel es mejor lenguaje, otros creeran que como Smalltalk
ninguno...., po vale :)

  La plataforma Java si es un sue�o que tiene trazas de realidad, Y eso
me encanta. Saber que puedo programar con INDEPENDENCIA del sistema
operativo subyacente.... Java nos abre muchas puertas a los que adoramos
la programacion distribuida. Pero nos cierra otras. Estas puertas son
las que, precisamente, tienen que ver con las opciones que la plataforma
Java no recoje, pero si oferta el sistema operativo. Quizas, para
solucionar esto, la libreria de clases de Java tengan que crecer en otra
direccion. Mi opinion es que SUN hace lo correcto al hacer crecer Java
solo hacia la programacion distribuida, ya que acercarse a la maquina
supondria crear una plataforma equivalente a un sistema operativo.

Alberto Planas Dominguez
Technical Details
Message-ID: <36C041EA.41C6@ac.uma.es>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <367ecc2b.2367399@noticias.iies.es> <01be2d1e$9894a5e0$e6164cc3@default> <75ntf6$vgl$1@news.udl.net> <01be2f3f$b70425a0$65164cc3@default> <3685c875.1606618@noticias.iies.es> <3686AEA6.95121EF7@jet.es> <36895642.1240659@noticias.iies.es> <3695DAA5.554C94F2@ibm.net> <3698a74d.1128294@noticias.iies.es> <36A384E0.4EC6BEC@jet.es> <36a59e89.1856809@noticias.iies.es> <36A50AD4.FC2F8B7A@jet.es> <36a8acca.4654561@noticias.iies.es> <36ACA760.8FD40701@jet.es> <36b4aa0e.4641133@noticias.iies.es> <36B5F161.EBCF71E5@tid.es> <36B9F497.1C0EAC3A@jet.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: 1116f3,4e17c3721247235e
X-Google-Attributes: gid1116f3,public
From: Alberto Planas Dominguez <aplanas@ac.uma.es>
Subject: Re: La supuesta portabilidad de C.
Date: 1999/02/09
Message-ID: <36C041EA.41C6@ac.uma.es>
X-Deja-AN: 442439393
Content-Transfer-Encoding: 8bit
References: <367ecc2b.2367399@noticias.iies.es> <01be2d1e$9894a5e0$e6164cc3@default> <75ntf6$vgl$1@news.udl.net> <01be2f3f$b70425a0$65164cc3@default> <3685c875.1606618@noticias.iies.es> <3686AEA6.95121EF7@jet.es> <36895642.1240659@noticias.iies.es> <3695DAA5.554C94F2@ibm.net> <3698a74d.1128294@noticias.iies.es> <36A384E0.4EC6BEC@jet.es> <36a59e89.1856809@noticias.iies.es> <36A50AD4.FC2F8B7A@jet.es> <36a8acca.4654561@noticias.iies.es> <36ACA760.8FD40701@jet.es> <36b4aa0e.4641133@noticias.iies.es> <36B5F161.EBCF71E5@tid.es> <36B9F497.1C0EAC3A@jet.es>
Content-Type: text/plain; charset=iso-8859-1
Organization: Centro Informatico Cientifico de Andalucia
Mime-Version: 1.0
Newsgroups: es.comp.lenguajes.java