java portable????

no se, no se
01 de Marzo del 2004
Cada vez que leo algún artículo sobre Java aparece la palabra portable. Yo pensaba que esto significa que escribes un programita en Java y... listo!! que se ejecuta en cualquier ordenador sin mayores complicaciones. Pero después me han surgido algunas dudas, por lo que he leido para que se ejecute es necesario tener instalada la JVM o si no no funciona. Y mi pregunta es: ¿por qué entonces es Java más portable que C o cualquier otro lenguaje? En realidad cualquier otro lenguaje sólo necesita tener instalado el compilador adecuado ( al igual que Java necesita la JVM) para funcionar en cualquier ordenador ¿no?. La verdad es que me estoy liando...

Roger
01 de Marzo del 2004
A ti te parece un engorro tener que instalar el jvm en un ordenador para que funcione cualquier programa java... pero esperate a que java sea reconocido como EL LENGUAJE, que es lo que se merece, y todos los so traeran el jvm de serie (y billy y su ventanitas pueden decir lo que quieran). Por ahora, puedes hacer las aplicaciones en cds, e incluir las jvm para los diferentes sistemas en el cd, y asi no hace falta ni instalarlas, en el autorun respectivo de cada sitema llamas a su jvm, que esta en el cd, y que te ejecute el programa. Java4ever!!!
Xa cualquier otra cosa: [email protected]
Salu2.Roger

chuidiang
01 de Marzo del 2004
Efectivamente, para correr java necesitas la máquina virtual. Pero una única máquina virtual te vale para correr el programa esté hecho en la plataforma que esté.

Un ejecutable en C, ya compilado, no puedes correrlo en cualquier ordenador, salvo que instales el emulador adecuado. Necesitarias un emulador de windows para linux, uno de linux para imac, uno de imac para windows y todas las combinaciones que se te ocurran. Necesitas, por ejemplo, en linux, varios emuladores (uno de windows, otro de imac, etc) para correr el programa según dónde lo hayan generado.

C tiene una parte de código fuente standard (ANSI C) y otra que no lo es (comunicaciones en red, graficos, ventanas y casi cualquier cosa que se salga de escribir texto en pantalla o en un fichero). Esto hace que un fuente de C normalmente no sea compilable en otro compilador distinto del que fue pensado. No podras compilar un programa de visual c++ en linux ni en imac, ni uno en C para linux en visual c++. Tendrías que conseguirte visual c++ para windows, para linux y para imac, el gcc (de linux) para windows y para imac, etc, etc, etc. El lenguaje java y todas sus librerias son standard, asi que con el compilador de java puedes compilar los fuentes en cualquier plataforma.

Se bueno.

gonzalo
01 de Marzo del 2004
muchos programas obtienen recursos del propio sistema operativo en el que se ejecutan.

por ejemplo, un programa en Delphi, utiliza inevitablemente recursos de Windows. existe una libreria en Kilix (la version de Delphi para linux) que hace que un programa escrito en Delphi se portable a este sistema operativo.

bueno, a lo que iba.

la idea es diseñar un lenguaje de programacion y unas tecnicas de programacion que no impliquen depender de un sistema operativo determinado.

en lo que respecta a la portabilidad, creo que siempre habra alguna dificultad para coger un programa y cambiarlo de sistema operativo o cambiar la base de datos de la que tira, etc....

por eso, hay que tener en cuenta que 'portabilidad' es un objetivo, aunque a veces no resulte un hecho.

busca por ejemplo 'DreamWeaver' para Linux.
si esta tan facil como compilar un programa, por que no compilan los fuentes de 'DreamWeaver' en linux???

pues porque DreamWeaver es un programa que solo funciona en Windows.

otra, cosa.

a los ingenieros les interesa la portabilidad, a los propietarios de software no.

(a Bill Gates no le interesa que sus productos sean portables a otras plataformas)

Flyer
01 de Marzo del 2004
Humm respecto a lo de que que al bill gates no le interesan otras plataformas, te dire que estas muy equivocado pues últimamente microsoft esta desarrollando interpretes para su bytecode generado con la nueva plataforma .net, aunque estas maquinas virtuales (como se les denomina en java) saldran a la luz en uno o dos años maximo.

No llevo mas de año y medio programando en java, pero te aseguro que si la plataforma . net hubiese salido conjuntamente con java y j2ee posiblemente java no estaria ya en el mercado, y no lo digo por que sea mejor ( que a mi si me lo parece), lo digo por que las estrategias de marketin de microsoft siempre han dado muy buen resultado.
Asi que en los proximos años veremos un retroceso de java a favor de microsoft, aunque no creo que java deje de existir puesto que es un lenguaje mucho mas asentado. tendra una mayor rivalidad con microsoft pero puede que acabe perdiendo la partida.

A mi como desarrollador lo que mas me interesa es que el desarrollo sea lo mas sencillo posible que la aplicación de el mayor rendimiento posible y necesite el menor tiempo de desarrollo o lineas de codigo para desarrollarlo.


Rob raptor
01 de Marzo del 2004
Para poder correr un executable de java solo necesitas el jre en la maquina cliente, es decir, es una pequeña seccion del jsdk que perfectamente puedes empaquetar en tus distribuciones...

por otra parte me parece que aqui estamos entre adoradores de java ya que hablan de él, como EL LENGUAJE... que te hace pensar amigo que luego no saldrá un uevo lenguaje que le de en la nuca a Java? sera que java es la perfeccion y mas alla de el no hay nada? no te engañes... la tecnologia sigue y sigue y no se estancara ni por un bill gates que quiera dominar la informatica ni por una comunidad de desarrolladores que anhelen el freeware... no me mal entiendas a mi me encanta java y de eso me alimento cada dia, pero estoy conciente de que no es lo ultimo de lo ultimo... y si es necesario me tendre que adaptar a nuevos lenguajes y nuevas tecnologias...

atentamente
Rob Raptor

daniel_5
01 de Marzo del 2004
Mmm si haces un programa en c y lo compilas en windows (Sale un .exe) ¿Me dices como ejecutas un .exe en linux?

P.D: No vale utilizar el wine ni similares.

Pues eso es todo, un saludo

Thozz
01 de Marzo del 2004
daniel_5 tiene toda la razón en el post anterior, pero yo añadiría más... hay incluso llamadas en C que dependen del sistema sobre el que se compile (se me ocurren los descriptores de ficheros 0, 1 y 2 de UNIX).

La suerte de Java es que el código se compila en cualquier plataforma y los .class ya son portables.