Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

Tu opinión sobre Java

Participa en el tema Tu opinión sobre Java en el foro Programación.
Bueno... luego de leer varios threads, me di cuenta que en la mayoría hay varios ...

Buscar en este tema:
1 2 3 4 5 >
 
  •  
    _Guido_ escribió el 30/03/2004 a las 07:55 hs.
     
    ¿Mensaje inapropiado?
    #1 Tu opinión sobre Java
    Bueno... luego de leer varios threads, me di cuenta que en la mayoría hay varios prejuicios sobre Java...

    Me interesa saber la opinión de Uds sobre Java. Si no lo conocen o no tuvieron contacto, al menos qué es lo que escucharon/leyeron. Y los que lo conocen un poco mejor, qué es lo que opinan directamente.

    A ver si empezamos a desterrar un poco muchos de los mitos que andan circulando por ahí.

    Saludos!!
    +
     
    0
    Me gusta
     
    http://www.psicofxp.com/forums/programacion.313/184607-tu-opinion-sobre-java.html
    | Más
  • DRK escribió el 30/03/2004 a las 19:59 hs. ¿Mensaje inapropiado?

    #2

    Yo no soy experto en Java. Lo conozco desde hace mucho tiempo, y no lo utilizo para programar.

    No sé si se trata de mitos, por lo menos sé que no en mi caso. El software en java es más lento que en un leguaje menos portable. Y eso, en muchas ocasiones, es toda la diferencia.

    Yo sé que es más lento y también sé porque lo es. A la hora de elegir un software, el hecho que consuma muchos más recursos que la competencia, es un factor importante, el tiempo de CPU también es dinero.

    Si me posiciono como programador, entiendo las bondades de un software que implementa realmente la filosofía orientada a objetos. Y entonces, sería muy simple para mí decir "bueno, hago todo en java", pero la realidad es que si el costo a esto es tener una aplicación que tarda 15 minutos en levantar y me impide correr otros servicios en un mismo equipo porque se lleva todos los recursos...

    Una anécdota interesante: mientras instalaba una herramienta de IBM en un banco, sobre una RS6000 corriendo AIX, sugerí probar la interface gráfica. La persona responsable del equipo me miró con cara de "ni se te ocurra" y me dijo "no, si me levantas una aplicación en java y te llevás un 60% de procesamiento, me van a matar". Entonces le aclaré, que esta interface (a diferencia del resto de las GUIs de IBM) no estaba en java sino en C y entonces se tranquilizó y la probamos. Obviamente, le mostré que el consumo de CPU estaba por debajo de un nivel crítico. Entonces, me contó que ya le había pasado con DB2, con la GUI que está en java.

    Eso es importante, aunque los fanáticos de los lenguajes como java lo quieran minimizar, eso es muy importante.

    Mi conclusión es que Java no cambia las cosas. Es una opción más, que desde luego adoptaría, si lo importante es ahorro en costo de mantenimiento del software, o portabilidad. Pero que no deja de tener desventajas que la hacen inútil para ciertas aplicaciones o en determinadas circunstancias operativas.
    Me gusta este mensaje
  • _Guido_ escribió el 31/03/2004 a las 00:57 hs. ¿Mensaje inapropiado?

    #3

    Asi me gusta! empecemos...
    Mensaje original de DRK
    Yo no soy experto en Java. Lo conozco desde hace mucho tiempo, y no lo utilizo para programar.

    No sé si se trata de mitos, por lo menos sé que no en mi caso. El software en java es más lento que en un leguaje menos portable. Y eso, en muchas ocasiones, es toda la diferencia.
    OK, primer mito a desbancar... más lento que qué y en qué circunstancias? desde ya que es mas lento comparado con, por ejemplo, assembler... pero está comprobado que java optimizado es tan rápido como c++ optimizado (buscá el link de la comparación de velocidad de 9 lenguajes -a propósito, al final del post voy a explicar por qué hay unos tiempos bastante extraños en los cálculos trigonométricos).
    El tema de lento viene de hace mucho, cuando todavía java estaba en pañales y se lo usaba MAL. Las tecnologías cambiaron, los APIs cambiaron y, por sobre todas las cosas, los programadores aprendimos más sobre el lenguaje, gracias a las experiencias de otros y a la gran cantidad de documentación e información que fue surgiendo a lo largo de los años.
    Aún asi, qué considerás lento?

    Yo sé que es más lento y también sé porque lo es. A la hora de elegir un software, el hecho que consuma muchos más recursos que la competencia, es un factor importante, el tiempo de CPU también es dinero.

    Si me posiciono como programador, entiendo las bondades de un software que implementa realmente la filosofía orientada a objetos. Y entonces, sería muy simple para mí decir "bueno, hago todo en java", pero la realidad es que si el costo a esto es tener una aplicación que tarda 15 minutos en levantar y me impide correr otros servicios en un mismo equipo porque se lleva todos los recursos...
    Otro mito! He visto correr en pentiums II con 512Mb simultáneamente servicios hechos en java como JBoss (Application Server J2EE), Tomcat y un servidor de WorkFlow, y verlos desenvolverse perfectamente en producción -en un banco también- reemplazando a un servidor original que falló. Los tiempos de inicio de los 3 sistemas? JBoss:40 segundos, Tomcat: 15 segundos, Workflow: 25 segundos.
    Y estamos hablando de sistemas que hacen DE TODO

    Una anécdota interesante: mientras instalaba una herramienta de IBM en un banco, sobre una RS6000 corriendo AIX, sugerí probar la interface gráfica. La persona responsable del equipo me miró con cara de "ni se te ocurra" y me dijo "no, si me levantas una aplicación en java y te llevás un 60% de procesamiento, me van a matar". Entonces le aclaré, que esta interface (a diferencia del resto de las GUIs de IBM) no estaba en java sino en C y entonces se tranquilizó y la probamos. Obviamente, le mostré que el consumo de CPU estaba por debajo de un nivel crítico. Entonces, me contó que ya le había pasado con DB2, con la GUI que está en java.
    OK, una RS/6000 de qué modelo? qué/cuantos procesadores? qué cantidad de memoria?
    Si levantar un programa en Java te toma 60% de procesamiento, tenes algo mal configurado y estas usando una JVM sin optimización para servers... O crees que IBM va a vender software que corre mal en sus propios servidores?

    Eso es importante, aunque los fanáticos de los lenguajes como java lo quieran minimizar, eso es muy importante.

    Mi conclusión es que Java no cambia las cosas. Es una opción más, que desde luego adoptaría, si lo importante es ahorro en costo de mantenimiento del software, o portabilidad. Pero que no deja de tener desventajas que la hacen inútil para ciertas aplicaciones o en determinadas circunstancias operativas.
    Bueno, desde ya que si quiero hacer un RDBMS como Oracle o DB2 no lo voy a hacer en Java -probablemente haga en Java las consolas de administración, eso si-, pero el resto de los escenarios operativos son perfectamente abordables mediante Java, siempre que se lo use de manera correcta, y para usarlo de manera correcta se necesita capacitación (de la misma manera que para cualquier otro lenguaje de programación).
    Sinó mira la variedad de Application Servers hechos en Java -OC4j en Oracle iAS, IBM WebSphere, BEA WebLogic, JBoss, y la lista sigue- líderes de mercado, que todavía no pudieron -y a mi criterio no van a poder- ser desbancados por tecnologías de similar utilidad no basadas en Java, como .NET ( puaj! ). Corren en servidores standard y son parte de los casos de éxito de un monton de empresas.
    Me gusta este mensaje
  • Shandrio escribió el 31/03/2004 a las 01:07 hs. ¿Mensaje inapropiado?

    #4

    Che, que interesante todo lo que decís _Guido_ sobre los mitos de Java. Tenés algún ejemplo concreto de un mal uso del lenguaje que tenga como consecuencia lo que DRK experimentó? O algún paper para leer sobre como optimizar Java para que corra tan rápido como un programa hecho en C++? Realmente me interesa mucho, ya que yo programo en C++ y no en java por el tema de la performance. Si supiera como hacer programas en java que corran igualmente de rápido y sin perder prestaciones sería fabuloso!!

    Saludos
    Me gusta este mensaje
  • _Guido_ escribió el 31/03/2004 a las 01:15 hs. ¿Mensaje inapropiado?

    #5

    Mensaje original de Shandrio
    Che, que interesante todo lo que decís _Guido_ sobre los mitos de Java. Tenés algún ejemplo concreto de un mal uso del lenguaje que tenga como consecuencia lo que DRK experimentó? O algún paper para leer sobre como optimizar Java para que corra tan rápido como un programa hecho en C++? Realmente me interesa mucho, ya que yo programo en C++ y no en java por el tema de la performance. Si supiera como hacer programas en java que corran igualmente de rápido y sin perder prestaciones sería fabuloso!!

    Saludos
    Hay libros dedicados al tema como Java Performance Tuning, de Jack Shirazi, publicado por O'Reilly.... se puede encontrar el PDF en eMule e IRC. Sinó pegame el grito y te lo paso. También tenes una publicación de Sun: Java Platform Performance: Strategies and Tactics. En ambos tenes ejemplos de buenos y malos usos del lenguaje en lo que a performance se refiere.

    Saludos!!
    Me gusta este mensaje
  • Shandrio escribió el 31/03/2004 a las 01:46 hs. ¿Mensaje inapropiado?

    #6

    FABULOSO el libro Java Platform Performance: Strategies and Tactics. Ya voy por el capítulo 3 y estoy re enganchado! Mil gracias!!

    Salu2
    Me gusta este mensaje
  • DRK escribió el 31/03/2004 a las 13:58 hs. ¿Mensaje inapropiado?

    #7

    _GUIDO_, estimado:

    Por mucho que escribas tratando de explicar lo contrario, Java es más lento que C++, hay mucha documentación de Java que explica porqué.

    Java fue, es y será más lento que C++. Ni siquiera menciones el assembler, ya que sería ridículo comparar un lenguaje de alto nivel (altísimo) con el lenguaje de más bajo nivel.

    Si yo tuviese que elegir entre Java y C++ elegiría Java, cambiaría el problema a elegir primero si quiero procedural o OOP. Luego, si decidiera OOP elegiría Java y si fuese procedural, pasará al C y no al C++.

    De todas formas, eso sería personal. Pero si tengo que elegir una aplicación (como usuario) y las opciones son Java y C++. No lo dudo ni un solo instante, C++.

    OK, primer mito a desbancar...
    Olvidate Guido, no es un mito, la informática no es cuestión de fe. No se puede evangelizar en informática. Las ventajas de Java (y de OOP en general) ya las conocemos bien, y NADA tienen que ver con la performance, y aún cuando me digas de la optimización de lo que quieras, 2 + 2 es 4. No pretendas hacerme creer que vos, cuando sumas con Java, 2 + 2 es 3, porque optimizaste mucho.

    Garbage collector, Virtual Machine, Polimorfismo, etc, etc...

    Todo tiene un precio, y ese precio se paga, y los costos son sumas, y 2 + 2 es 4, y no 3 ni 3.5

    Se podrán escribir libros, hacer gráficos e informes comparativos, etc. Pero Java es más lento que C++ por muchos informes que se escriban. Lo que no quiere decir que Java no sirve, pero historicamente, la creencia de un lenguaje que soluciona todos los problemas y sirve para todas las aplicaciones y debería ser utilizado en lugar del resto de los lenguajes, siempre todo esto se pareció más al fundamentalismo religioso que al objetivismo científico.
    Me gusta este mensaje
  • Gallagher escribió el 31/03/2004 a las 14:02 hs. ¿Mensaje inapropiado?

    #8

    yo lo use en el colegio y me parecio EXELENTE , hermoso, RE FACIL De usar
    (quizasporque acosubre al c++)
    pero re lindo, las clases a nivel JAPlet , lo hacen una masa de lenguaje

    el orientad objetos a de por si
    y encima hace poco (Va hace 1 ñoa y medio) vi que habia como una modificadion que se llamba ROBODE, qe hacias robots en java para peliar en uncombate jaaj usando clases
    se los recomiento

    aparte el java esta muy bin remunerador hoy en dia

    sin decir ue los celullares usan su tecnologia tambien
    Me gusta este mensaje
  • _Guido_ escribió el 31/03/2004 a las 22:32 hs. ¿Mensaje inapropiado?

    #9

    Mensaje original de DRK
    _GUIDO_, estimado:

    Por mucho que escribas tratando de explicar lo contrario, Java es más lento que C++, hay mucha documentación de Java que explica porqué.

    Java fue, es y será más lento que C++. Ni siquiera menciones el assembler, ya que sería ridículo comparar un lenguaje de alto nivel (altísimo) con el lenguaje de más bajo nivel.

    Si yo tuviese que elegir entre Java y C++ elegiría Java, cambiaría el problema a elegir primero si quiero procedural o OOP. Luego, si decidiera OOP elegiría Java y si fuese procedural, pasará al C y no al C++.

    De todas formas, eso sería personal. Pero si tengo que elegir una aplicación (como usuario) y las opciones son Java y C++. No lo dudo ni un solo instante, C++.



    Olvidate Guido, no es un mito, la informática no es cuestión de fe. No se puede evangelizar en informática. Las ventajas de Java (y de OOP en general) ya las conocemos bien, y NADA tienen que ver con la performance, y aún cuando me digas de la optimización de lo que quieras, 2 + 2 es 4. No pretendas hacerme creer que vos, cuando sumas con Java, 2 + 2 es 3, porque optimizaste mucho.

    Garbage collector, Virtual Machine, Polimorfismo, etc, etc...

    Todo tiene un precio, y ese precio se paga, y los costos son sumas, y 2 + 2 es 4, y no 3 ni 3.5

    Se podrán escribir libros, hacer gráficos e informes comparativos, etc. Pero Java es más lento que C++ por muchos informes que se escriban. Lo que no quiere decir que Java no sirve, pero historicamente, la creencia de un lenguaje que soluciona todos los problemas y sirve para todas las aplicaciones y debería ser utilizado en lugar del resto de los lenguajes, siempre todo esto se pareció más al fundamentalismo religioso que al objetivismo científico.
    Me gustaría saber qué clase de aplicaciones haces con C++ que _creés_ que no pueden hacerse con otro lenguaje por cuestiones de performance... Despues demostrame con hechos de que Java es realmente mas lento que C++ en ese sentido... También decime cuantas veces se te colgó un soft hecho en C++ y cuantas uno hecho en Java...
    Java _ERA_ mas lento que C++ por cuestiones que ya expliqué... VMs sin optimización ni HotSpots, programadores con malas costumbres, etc... Te invito a probar algo hecho en java HOY, por ejemplo un IDE.
    Tuve el (des)agrado de probar el Visual Studio .NET en mi máquina (Athlon XP 2200+, 512Mb, Win2k con todos los patches) y me pareció lento y de respuesta un tanto aletargada. En cambio muchas veces tengo 2 o 3 IDEs hechos en Java abiertos, con servidores corriendo (IDEA, Eclipse y JBoss + Tomcat, por ejemplo), y puedo cambiar de un soft a otro sin problemas.

    PD: Quedé en explicar las razones por las que los benchmarks de trigonometría dan tiempos mas largos en Java... Resulta que los opcodes del coprocesador matemático de los Intel tiene las rutinas de seno y coseno (FCOS y FSIN) mal implementadas, con un algoritmo que da errores del 0.01%, lo que significa un error bastante grande para aplicaciones científicas, por esta razón, por default el compilador de java usa la aritmética estricta de punto flotante de IEEE para los calculos de seno y coseno. De todas maneras se puede utilizar las operaciones matemáticas de x86 (o de la plataforma correspondiente) cambiando un par de flags en el compilador.

    Saludos!!
    Me gusta este mensaje
  • DRK escribió el 01/04/2004 a las 00:24 hs. ¿Mensaje inapropiado?

    #10

    Yo no necesito explicar ni demostrar nada, porque lo que yo digo es lógico. Mejor explicame vos, cómo es posible que digas que la Virtual Machine, que es un software que se encuentra entre MI software (en Java) y el/los procesadores del equipo, no consuma recursos.

    Es tan simple todo:

    C/C++ -> objeto -> Procesador (Hardware)

    Java -> objeto -> JVM (y cia.) -> Procesador (Hardware)

    A no ser que la VM sea un ente espiritual, para existir va a necesitar memoria y tiempo de CPU. Esa memoria y tiempo de CPU, en muchos casos, voy a preferir guardármela para mí.

    Pero tampoco hace falta dar tantas vueltas, voy a citar una parte de un libro que vos le recomendaste a un usuario en otro tema.

    Garbage collectors vs. efficiency and flexibility

    If all this is such a good idea, why didn’t they do the same thing in C++? Well of course there’s a price you pay for all this programming convenience, and that price is run time overhead. As mentioned before, in C++ you can create objects on the stack, and in this case they’re automatically cleaned up (but you don’t have the flexibility of creating as many as you want at run time). Creating objects on the stack is the most efficient way to allocate storage for objects and to free that storage. Creating objects on the heap can be much more expensive. Always inheriting from a base class and making all method calls polymorphic also exacts a small toll. But the garbage collector is a particular problem because you never quite know when it’s going to start up or how long it will take. This means that there’s an inconsistency in the rate of execution of a Java program, so you can’t use it in certain situations, such as when the rate of execution of a program is uniformly critical. (These are generally called real time programs, although not all real time programming problems are this stringent.)

    The designers of the C++ language, trying to woo C programmers (and most successfully, at that), did not want to add any features to the language that would impact the speed or the use of C++ in any situation where programmers might otherwise choose C. This goal was realized, but at the price of greater complexity when programming in C++. Java is simpler than C++, but the trade-off is in efficiency and sometimes applicability. For a significant portion of programming problems, however, Java is the superior choice.
    Perdón que lo cito en inglés pero ahora no tengo tiempo de traducirlo. Si alguien quiere estos dos párrafos en español, avise...

    El libro se puede bajar de http://www.mindview.net/Books/TIJ/
    Me gusta este mensaje
1 2 3 4 5 >
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 46 RESPUESTAS
  • 2937 VISTAS
  • 10 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB