• Domingo 19 de Mayo de 2024, 06:02

Autor Tema:  C++ frente a Java  (Leído 3730 veces)

lydia_watanabe

  • Miembro activo
  • **
  • Mensajes: 27
    • Ver Perfil
C++ frente a Java
« en: Viernes 3 de Abril de 2009, 20:03 »
0
¿Que ventajas y desventajas creen ustedes que hay al programar con C++ y Java? Me vienen alguna muy claras a la cabeza, pero seguro que hay más

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: C++ frente a Java
« Respuesta #1 en: Viernes 3 de Abril de 2009, 22:15 »
0
C++
Ventajas: estandarizado, compiladores para casi todas las plataformas, extensión orientada a objetos de C, punteros, manejo a bajo nivel posible
Desventajas: críptico, curva de aprendizaje dura, propenso a depuración fastidosa debido a los punteros

Java
Ventajas: corre sobre una máquina virtual, el mismo código sin cambiar puede correr sobre varias plataformas diferentes, semi-propietario, no estandarizado, diseñado pensando en la seguridad, orientado a objetos
Desventajas: no accede a bajo, no punteros, depende de la máquina virtual Java, sintaxis basada en C++

fachamix

  • Miembro MUY activo
  • ***
  • Mensajes: 173
  • Nacionalidad: ar
    • Ver Perfil
Re: C++ frente a Java
« Respuesta #2 en: Sábado 4 de Abril de 2009, 19:22 »
0
2 programas, identicos, uno en C++ y otro en JAVA, no se comportan de la misma manera:

1) el programa en C++ corre muchisimo mas rapido que el escrito en JAVA

2) en C++ pesa mucho menos (no se carga la maquina virtual)

3) Cuando se ejecutan programas compilados como en C++ hay un mejor manejo de la memoria RAM, esto beneficia al rendimiento global de la computadora


si ejecutas, 10 progrmas hechos en C++ , y otros 10 programas identicos escritos en JAVA, y esos programas son de una complejidad razonable (como un software para videoclub por ejemplo), me gustaria que veas cuanta memoria RAM usas para un caso y para otro, creo quecuando ejecutes los 10 programas en JAVA, tu computadora, ..... se largue a llorar.


C++!!!!!! , si te gusta algo mas visual .... C++Builder, es un gran producto.
La muerte vive celosa, de mi amada flor la vida. Dicen que me anda buscando, ojala si un dia me pilla. Me alle MACHAO Y CANTANDO PA QUE SE MUERA DE ENVIDIA

phobos

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: C++ frente a Java
« Respuesta #3 en: Lunes 6 de Abril de 2009, 11:37 »
0
Hola.

A todo lo anterior me gustaría añadir un par de reflexiones:
Si la intención es confeccionar un programa con entorno visual (en ventanas) y que sea independiente de la plataforma, Java tiene claras ventajas. En este caso C/C++ está en desventaja porque cada plataforma utiliza su propia api y en general si compilas para una, no sirve para otra. Por desgracia la estandarización de c++ aquí no se extiende y en general, cada uno va por su lado. El desarrolo en Java en este caso se rentabilizará más al tener que mantener un sólo código.
No hay que olvidar que Java nació para ser multiplataforma y que es un lenguaje claramente orientado a un entorno visual. El precio que debemos pagar por el "Write Once, Run Anywhere" es justamente el tener que necesitar mecanismos intermedios (máquina virtual) para finalmente poder ejecutar el código. Esos mecanismos intermedios incrementan el consumo de recursos y hacen que la ejecución del aplicativo sea más lenta (el código precompilado finalmente se acaba interpretando). Podemos compilar directamente en el código máquina de la plataforma, pero entonces perdemos portabilidad y nos encontramos en el mismo caso que c++. Debido a todo esto es raro encontrar aplicaciones de propósito general desarrolladas en Java (aunque su api lo permita) y los fabricantes prefieren mantener dos o tres versiones para dos o tres plataformas diferentes. Quizás en un futuro, los intérpretes de bytecode harán que la diferencias se acorten, aunque debido a la naturaleza de java, no creo que se igualen nunca las prestaciones.
Otro precio que se debe pagar es el renunciar a trabajar a "bajo nivel", o sea, interactuar con los aspectos más cercanos a la máquina. Esto que es así, en el fondo, va un poco en contra de la "filosofia" java. El propósito de java es "rescatarte" del tedioso trabajo que implica pelearte con la api del sistema operativo, proporcionándote una artillería de clases que encapsulan todo esto, no para facilitarte el trabajo, sino para hacerlo portable. El punto débil es que el resultado no es tan "potente" ni tan eficiente como el obtenido con c++, y es, volvemos a lo mismo, el precio a pagar por la portabilidad.
Finalmente, si el propósito es crear una aplicación de consola, creo que todo el mundo coincidirá en que proporciona muchísimas más ventajas crear código en c/c++ estándar y compilar en cada plataforma. En este caso también podremos decir lo de "Write Once, Run Anywhere" (y sí, ya sé que si nos empeñamos seremos también capaces de crear en c/c++ estándar una aplicación en ventanas, pero la inversión en tiempo es muchísimo más elevada, la depuración más complicada y posiblemente las frustaciones y los  :hitcomp:  más frecuentes).

Saludos.

gonza_fs

  • Nuevo Miembro
  • *
  • Mensajes: 24
    • Ver Perfil
Re: C++ frente a Java
« Respuesta #4 en: Sábado 11 de Abril de 2009, 04:25 »
0
Hola. Bueno, creo, segun lo que fui leyendo (perdon si me equivoco), que hay mayores opiniones a favor de c++ que de java.
C++ fue creado para obtener velocidad. C++ no soporta anidamiento, por lo que en ejecucion no posee cadena estatica. Por eso la alta velocidad con respecto, no solo a java, sino a otros lenguajes.
Pero hay una gran desventaja de C++ que no se toma en cuenta, mas alla de las compilaciones, la portibilidad, etc. La gran desventaja es que C++ fue creado suponiendo que quien lo utiliza es un programador experimentado y sabe lo que esta haciendo. Por lo tanto C++ deja muchas cosas a criterio del programador, quien siendo una persona se equivoca, y comete errores que a veces es dificil de encontrar. Sino fijense la cantidad de preguntas en el foro de C++ sobre errores, con respecto a los foros de los otros lenguajes.
Ademas, con la utilizacion de punteros, C++ se convierte en un lenguaje no seguro. Cualquier direccion se puede acceder y el compilador lo permite. Por eso mucha gente experimenta problemas con su pc, al trabajar con este lenguaje.
En contra partida, como todos ya dijeron, java es mas lento, pero es porque permite los bloques anidados, aparte de la cuestion de la maquina virtual, que como es interprete, tarda mas.
Sin embargo, java es mas seguro con la cuestion de la escribilidad. Es decir, no deja todo en manos del programador. Pero, yo no diria exactamente que java no posee punteros, porque en realidad sabemos que como cualquier otro lenguaje se maneja obviamente con direcciones de memoria. Solo que este manejo de memoria esta restringido al compilador y no al programador.
Las otras ventajas/desventajas ya las dijeron antes, solo queria agregar esto. Yo sigo usando ambos, depende lo que necesite, uso C++ para trabajos simples y cosas rapidas que no necesitan muchas vueltas. Y uso java para manejo de cosas mas complejas, como hilos, graficos, applets.
Saludos.

fachamix

  • Miembro MUY activo
  • ***
  • Mensajes: 173
  • Nacionalidad: ar
    • Ver Perfil
Re: C++ frente a Java
« Respuesta #5 en: Sábado 11 de Abril de 2009, 23:26 »
0
los mayores desarrolladores de software se han dado cuenta que , no sirve JAVA en pocas palabras, es muy lento, chupa mucha computadora, es ineficiente, y no siempre se puede llevar un programa de un OS a otro.

existe hoy una nueva filosofia de programacion, ya no es "compila una vez, ejecuta donde sea"

ahora es

"escribe una ves, compila donde sea"


un ejemplo de esto son RealBAsic, QTcreator, etc.

se esta tomando un giro en esa direccion
La muerte vive celosa, de mi amada flor la vida. Dicen que me anda buscando, ojala si un dia me pilla. Me alle MACHAO Y CANTANDO PA QUE SE MUERA DE ENVIDIA