67 pensamientos en “Java vs. Python”

  1. Se puede decir más alto pero imposible decir más claro.

    Apenas he probado Java, y he hecho alguna cosilla en Python, pero si he mirado con algo de profundidad Ruby y estoy totalmente de acuerdo con la frase.

    De todas formas Magnus desarrolla en Python así que hay que entender la frase en ese contexto :).

    @Zootropo
    te falta el link http://www1.tripnet.se/~mly/mly.html
    ;).

  2. Yo no se programar en Java así que no voy a comparar ambos.
    De todos modos me quedo con Python que ya le e cogido mucho carillo XD

  3. joé a mi me enseñan programacion con java en la ing. informatica 🙁

    yo lo veo bien pero en este blog no hay mas que criticas 😛 será verdad…

  4. El código será más bonito pero java es más eficiente.

    Por otra parte lo suyo es saber desarrollar independientemente del lenguaje. Al fin y al cabo los lenguajes están muy sujetos a modas.

    1. Hombre, es que si nos ponemos así, Java es más bonito que C, pero C es más eficiente. Y C es más bonito que el ensamblador, pero el ensamblador es más eficiente.

      Y ojo, que lo digo desde la perspectiva de una persona a la que le gusta Java, como puede atestiguar los artículos sobre el lenguaje en la bitácora. No vayáis a pensar que soy un fanboy de Python.

      1. Algo me decía que alguien me hablaría de C.
        ¿No estamos hablando de lenguajes de alto nivel?

        De todas formas llevas razón, pero creo que me has entendido igual que yo a tí. Era sólo por trollear un poquitín 😛

        No sé si fué en este blog o en /. donde vi una comparativa 30 y pico lenguajes de programación en función de su rendimiento… a ver si lo encuentro y lo pego por aquí, las gráficas asustan.

        Por cierto ruby era de los peores en rendimiento, no muy lejos de python.

        1. Si, también vi la comparativa. Es un hecho que el rendimiento no es el punto fuerte de los lenguajes de script.

          A ver si Google lo remedia con Unladen Swallow 🙂

          De todas formas para la mayoría de los programas la diferencia de rendimiento no es apreciable.

        2. A ver, esto es “ingenieria elemental” jaja. A mayor fluidez a la hora de programar, es decir, a la hora de programar y encontrar un lenguaje que sea facil de usar y entender, Caso Ruby, el codigo intermedio es mayor, esto es por el compilador. De ahi que si miramos Groovy on Grails, veremos que se demora una eternidad para compilar una applicacion. y ni decir si queremos generar el War de la misma. todo es cuestion de gustos. Como se dice en el mundo linuxero, hay diferentes flavores, o flavours. Yo utilizo Java, C++, Ruby, C#, PHP y Cada cual tiene su uso y necesidad, en cada uno se sacrifica algo para mermar algo. Ya sea algo tan simple como Dinero vs Tiempo, o algo tan complejo como el tema de TiempodeCompilacion vs TiempodeProgramacion.

          Saludos.

      2. No se puede decir que ensamblador es mas eficiente en la programación todo depende de que estés programando ensamblador resulta mas eficiente para programas para hardware (drivers), juegos para consolas ya que se especifica la memoria que vamos a usar pero programar otro tipo de software es muy deficiente ya que se requiere mas tiempo de programación y hay peligro de afectar recursos inesperados, java o C por otra parte son mas eficientes para crear programas de de administrativos, de oficina, edición, por mencionar algunos, además ensamblador es lenguaje de bajo nivel y los otros son de alto nivel.
        No es fácil comparar si no se hablo de lo que se desea programar con ellos.
        No he programado en Python pero en java si y me parece un lengua muy buena por tiene portabilidad y es muy sencillo de entender.

        Pero todos los lenguajes son lo mismo lo único que cambia es la sintaxis del lenguaje pero si sabes programar puedes dominar cualquier lenguaje.

      3. Yo creo q con eficiencia se refiere a que java es multiplataforma, he trabajado un poco con phyton y java, en lo personal prefiero java.

      4. Pero el punto está en el equilibrio entre buenas prácticas, lo práctico, lo seguro, lo eficiente. Por eso Java es el mejor.

  5. No he probado phyton pero soy feliz con java… siempre he logrado lo que he querido como lo que querido… algunas veces con un poco de esfuerzo, pero es como todas las cosas, tienen sus pros y contras!!

  6. for(long i=0; i<1000000; i++)
    continue;
    Java
    real 0m0.323s
    user 0m0.196s
    sys 0m0.040s

    for i in xrange(1000000):
    pass
    Python
    real 0m0.176s
    user 0m0.168s
    sys 0m0.004s

    Mas rápido no lo creo

    1. ejecuta un foreach de java ¬¬

      a python le faltan unos años más para que sea más masivo ….

      Luego de unos años tanto python como java pasarán de moda ¬¬

      que tontas estas comparaciones…

  7. IMHO, no se que coño le veis a Python. lejos de mi intencion flamear, pero:

    1) la sintaxis es odiosa. Vamos a ver! no estaba claro ya que la sintaxis basada en formato era cosa del pasado? que les costaba poner un {} o un BEGIN/END?

    2) es interpretado, no ya en bytecodes, sino en texto plano. WTF! no hay mas que ver el grafico de python en la [a href=”http://gmarceau.qc.ca/blog/uploaded_images/size-vs-speed-vs-depandability-2009.png”]imagen[/a]. Ni compilacion, ni optimizacion, ni leches. Mira q me gustan poco las VM pero les veo su logica. en cambio, los lenguajes de script en desktop?!?! por favor.

    3) el tipado dinamico, WTF! muy comodo, si señor, y al control de tipos q le den. eso sin tener en cuenta el tiempo extra a la hora de crear objetos y cambiarles de tipo. yo no tengo experiencia directa con python, pero si con el lenguaje de scripting de matlab, y cosas como el tipado dinamico hacen q el rendimiento de estos sea entre 10 y 100 veces peor que con C, Pascal, etc.

    No estoy diciendo q los lenguajes de scripting no tengan sentido. Tienen su sentido en determinados ambientes donde hacer algo rapido para una prueba rapida es importante, pero me parece a mi que los proyectos medianos para desktop no son uno de ellos. IMHO, python y ruby son el hype de la decada en cuanto a lenguajes, ya veremos cuanto tarda en aparecer el proximo python killer y todo el mundo se olvide de ellos, o me equivoco y quiza se consoliden.

    Disclaimer: repito que mi intencion no es la de flamear, es simplemente curiosidad pura y dura. Por una parte no me parece un avance frente a Java/C#, pero por otra, la gente no para de hablar de el (coño, hasta B.Eckel habla bien de el, y le tengo en buena estima) y lo esta utilizando ultimamente en bastantes programas. Algunos son buenos programas, aunque su rendimiento y responsividad, ejem, me callo.

      1. Indentar el código es una buena práctica. Si no indentas, no eres un buen programador. Y si lo haces, ¿cuál es el problema con Python?
      2. Python es semi interpretado. El código fuente se compila a bytecode cuando se ejecuta por primera vez.
      3. Es de tipado dinámico, pero tiene tipado fuerte.
      1. 1.) indentar codigo es una buena practica, y ayuda a la legibilidad, pero no deberia ser el mecanismo para separar bloques, un ejemplo:

        #foo.py
        #…
        i=0
        while i<100:
        if i<10:
        print i
        i=i+1
        #…

        #foo2.py
        #…
        i=0
        while i<100:
        if i<10:
        print i
        i=i+1
        #…

        si indentas por error la sentencia ‘i=i+1’ tienes un bonito bucle infinito. corrigeme si me equivoco, pero es perfectamente correcto en python, no? es una chorrada de ejemplo, pero es lo mas sencillo q se me ha ocurrido.

        3.) pero aunq se compruebe en tiempo de ejecucion el tipo de una variable, solo se encontrara un bug relacionado con el tipo de una variable en tiempo de ejecucion, no en compilacion. si el bug se encuentra en una zona poco ejecutada del codigo, tendras una bonito bug aleatorio con condiciones no replicables.

        Repito que no tengo experiencia con python, asi q me puedo equivocar. Existe algun mecanismo en python para evitar 1 y 3 del q no haya oido hablar?

        1. me cago en la leche, voy a poner ‘_’ como si fuesen espacios:

          #foo.py
          #…
          i=0
          while i<100:
          __if i<10:
          ____print i
          __i=i+1
          #…

          #foo2.py
          #…
          i=0
          while i<100:
          __if i<10:
          ____print i
          ____i=i+1
          #…

          1. Igualito que si te equivocas al poner llaves

            i=0;
            while (i<100) {
            __if (i<10) {
            ____print i;
            __i=i+1
            }}

            o

            i=0;
            while (i<100) {
            __if (i<10) {
            ____print i;
            __i=i+1}
            }

            Tu argumentacion para mi no tiene fundamento.

            Nota: apenas se java y no tengo claro que la sintaxis sea correcta.

    1. Al final me voy a tener que registrar y todo.

      Igual que pienso que Java es mejor que python en función del rendimiento de las aplicaciones y de su escalabilidad, lo cual defendí en anteriores comentarios, también es cierto que cuando una empresa como lo es Google desarrolla íntegramente en python, y teniendo en cuenta la cantidad ingente de datos que mueven, algo tendrá python que no tiene java.

      Respecto a la sintaxis, qué importa eso, ya tenemos IDE que lo hacen todo por nosotros. Yo personalmente cuando escribo algo en java y voy con prisas no me fijo en las tabulaciones, total, cuando tengo el método ya escrito pulso CTRL ALT F y netbeans me lo pone todo perfectamente ordenadito y tabulado (o identado, odio esa palabra). Seguro que en python hay algo igual, de hecho netbeans está desarrollando un módulo para desarrollar con python y no me extrañaría que a corto plazo den soporte en el glassfish para aplicaciones python.

      Respecto al tipado dinámico sí estoy de acuerdo, no me gusta nada, no le veo ninguna utilidad ni me parece que el código sea más legible, de hecho si se alarga es al contrario porque el tipo de la variable se vuelve contextual con lo cual casi que tendríamos que estar ejecutando de memoria. Otra cosa es que fuese como javascript, que da igual el tipo porque sólo puede ser DOM, string o función (alguna cosa más, pero pa resumir).

  8. si te equivocas identando, será porque identas con pocos espacios… además de que muchos editores de texto para programadores, como Kate, te dan la opción de identar o des-identar. Yo programo en Python al igual que en otros lenguajes, y debo decir que con los identados me equivoco, pero con las llaves tiendo a errores, como ocurre por ejemplo al copiar código.

    Un saludo.

  9. Yo comencé a usar python para mejorar mi indentación. Sobra decir que ahora python me gusta bastante y lo uso para proyectos personales.

    1. Mi problema con java es que lo comparo con python en la facilidad de cada uno para escribir ‘scripts’, no en el ‘poder’ que tiene cada lenguaje.

      Eso es lo que me impide practicar java, cualquier sugerencia para solucionarlo, se agradece.

  10. Hoa Gente, Yo he probado los dos, es mas los estoy utilizando y desde mi punto de vista, ambos tiene ventajas sobre el otro, como se Python es 10, que digo 100 veces mas Simple que java(pero no por eso es menos potente), pero en si java es muchisimo mas Portable, ya que por ejemlo Cras una aplicacion con interface grafica en Python con Linux y pasarlo a ese mismo codigo a Windows, es un parto, mientras que con Java es mucho mas Simple pero asi y todo, para imprimir un mensaje con Python solo hace falta un:
    #print “Mensaje”
    Simple Facil y muy practica,
    saludos jajajaja

    1. La complicación de portar un programa para Linux en Python que tenga interfaz gráfica a Windows dependería del framework de creación de GUIs que utilizaras y no de Python en todo caso.

      No tiene ningún tipo de complicación portar un programa que use PyGTK o wxPython a Windows por ejemplo.

      De hecho en ese punto es incluso mejor que Java porque sí tendrías widgets nativos o muy parecidos a los de Windows.

  11. Pues las comparaciones de tiempo y del codigo, no son mas que una pelea en vano, cada lenguaje esta diseñado para una funcionalidad, python es un lenguaje hermoso y claro de entender, aparte de que muy divertido, apuesto que muchos resescubrieron lo divertido que ra programar cuando lo aprendieron, pero, java es un lenguaje robusto con un gran valor en el mercado, si nos fijamos bien, si queremos hacer una aplicacion rapiday de manera divertida utilizamos pyhton si deseamos hacer una aplicacion grande y con mucho cdigo, conexcion y convinando varias tendencias( web, desktop, portabilidad) utilizamos java, OJO, no estoy diciendo que python no es un lenguaje robusto ya que cuenta con infintos frameworks creanme, lo cual es obvio porque es apollado por la comunidad open sources, al igual que el buen java (OpenJdk). Todo depende el proyecto que deseamos contruir si quieres eficiencia en una palm C sera el adecuado, si quieres una aplicacion robusta (empresarial)Java no suena tan mal, si deseas hacer una aplicacion de gestion o un videjuego son meterte en tantos lios como con C pues Python suen buena opcion 🙂

  12. Pingback: Java vs Python

  13. Yo no programo en python, pero he escuchado excelentes comentarios de él, mientras que de Java si puedo dar mi voto a favor ya que no hay cosa que no se pueda hacer (o eso he visto yo).

    Un saludo!

  14. por razones laborales tuve que usar python, mas alla de todas las ventajas (que los pythonianos se cansan de repetir en cualquier foro de java, c# o ruby :D) tambien he estado hechando unas lecturitas de ruby (mas ruby que rails) y en lo personal, conociendo algo de java, python y ruby puedo en mi humilde opinion decir:
    -python es el mas sencillo de programar y muchisimo mas sencillo de entender a simple vista el codigo de otros, pues su sintaxis es sencilla y te da la sensacion que hay una sola forma correcta de resolver los problemas que se te puedan presentar. Ruby es el que me resulta mas dificil de entender a simple vista (tal vez porque solo lo estoy comenzando a utilizar).Java…que se puede decir, simplemente java, uno de los idiomas universales.
    – no obstante por otro lado python me resulta aburrido, programar en java es como escribir una larga novela, donde para llegar a la parte interesante tienes que llevar al lector por una serie de eventos, pero cuando llegas te engancha, ruby es como un poema, me resulta el mas entretenido para programar aunque es mañoso y entender lo hecho por otros no es tan simple, python es como escribir un informe para el trabajo, es rapido, sencillo, practico, conciso….pero aburridisimo!!, aunque creo que es cuestion de personalidad (me gusta siempre buscar formas diferentes de programar y resolver las situaciones que se me presenten), seria interesante iniciar un articulo donde se compararan no los lenguajes sino las comunidades de programadores de cada lenguaje y como cada quien visualiza a los que programan en otro lenguaje….

  15. Pues bien java es un poderoso lenguaje y lo he usado se que su sintaxis es un poco tediosa pero tiene sus encantos el cual lo atrapa a uno sobre todo en los primeros dias que se aprende a programar pero python es sencillo y muy util. con cual me quedo?.

    con los dos.

  16. He estado viendo python, especificamente utilizando django y desde el punto de vista del programador te permite hacer mas funcionalidad con menos codigo.

    Lo que no me termina de gustar son los tipos de datos dinamicos.

    Aunque escucho repetidamente que el codigo se lee mas facilmente, mi experiencia tratando de modificar codigo existente es que seguirle la pista a las clases heredadas es mucho mas complicado que en Java.

    En Java, cualquier IDE decente logra conocer el 100% las relaciones entre las diferentes clases e interfases, y te puede ayudar a entender rapidamente donde esta el codigo que necesitas ver o modificar.

    En python, a las clases le aparecen metodos y propiedades en ejecucion que hacen imposible contar con una ayuda 100% efectiva por parte del IDE. Al final, te fuerzan a hacer unit tests para saber que rayos pasa en el codigo cuando se ejecuta y esto puede ser igualmente complicado si no conoces el codigo.

    Si es algo muy pequeño no debe haber problemas, pero en un sistema real con cientos de clases creo que esto crea un problema de mantenimiento grave.

  17. MIren yo trbajo con Phyton hice un simulador de vuelo, tambien control de tiro .. obvio mis programas son 80% Phyton, 10% C++ y 10% Java, Phyton no es tan veloz en tiempo real algo que java si me permite hacer mis conexiones, En lo tecnico Phyton le lleva lejos a Java, pero depende ah que esta orientado cada uno: Recordar … Google (60% Phyton); youtube (90%phyton)… porque ellos utilizaran Phyton??

    1. Python es un lenguaje rapidísimo en la búsqueda de datos y minería.. Gogle y yoyube lo usan esencialmente para realizar sus “Buscadores” ya que en esta áreas de la programación python le gana lejos a java y a cualquier otro lenguaje. Java es un lenguaje robusto que consume recurso exponencial mente a diferencia de python.Python fue creado para realizar minería de datos y Java para ser multiplataforma… Cada uno tiene sus ventajas en sus respectivos campos… (“Los lenguajes no pasan de moda si no que se pierde su campo”)

  18. Pingback: I ♥ Python

  19. a ver youtube no esta escrito en python, esta escrito en PHP el 50%, parte del codigo tal vez esta hecho en python un 5% o 10%, recordar q Youtube aparte de usar PHP, usa Javascript, XML, Mysql,(la verda no se si a un usa Mysql), Ajax, HTML5, Flash, un 10% de Java, CSS, te lo digo ya q estube leendo la API de Youtube, aparte de ser desarrollador web con PHP, y JSP, cada lenguaje tiene sus cosillas…! cuando ves algun video en algunas paginas veras al final algo como .php

  20. Pingback: FactorZero | Java Contra Python

  21. Bueno, con lo poco que sé sobre programación, en c++,visual basic, bisual.net, java netbeans y python, lo único que puedo decir es, el lenguaje que mas me ayuda en la programación es Java Netbeans, es mas fácil, amigable y te ayuda bastante en el momento de programar.

    1. ignorante Netbeans es un IDE, el mismo que esta diseñado para JAVA,JAVA FX ,Php y Perl

      Abeis enojado al gato y no conviene enojar a este GATITO

    2. Netbeans es un IDE para programar en java como eclipse y otros y tiene plugins para otros lenguajes como php, c++, etc
      yo he probado java y python, java es muy dificil pero tienes demasiada información en cambio python es facil pero con poca información en español en comparación con java aunke eso está cambiando

  22. Para mi es cuestion de funcionalidad (donde y para que)

    C# = Programar algo para salir de apuro con API y no WEB

    C++ = De manera eficiente sin API

    Python = Programar mis cosas para linux con miles de posibilidades y con GTK, para web, le falta madurar Django

    Java = Multitodo, en especial para programar android

  23. Últimamente se esta incrementando el Uso del lenguaje PHP por su flexibilidad y sobre todo en el bajo presupuesto que requiere realizar un proyecto en el mismo, y el tiempo de desarrollo es menor.

    REALIZAR un proyecto en Java es costoso, ya que no hay muchas personas que dominen bien el lenguaje.

    miau!

  24. Android también es de Google, y las aplicaciones de Android qué son … JAVA.

    Aun así, no estoy defendiendo Java sobre otros, máxime porque no conozco Python.

    Seguro que como todo en la vida, tiene sus pros y contras y dependiendo del contexto será más apropiado uno u otro.

  25. Antes de entrar a Ing. Informática aprendí a programar con Python.
    Ahora nos están enseñando a programas con Java y a los compañeros les cuesta mucho entenderlo por la complejidad de su sintaxis, en cambio yo que ya tengo las ideas claras sobre programación solo tengo que aprender la sintaxis.
    Moraleja: aprende a programar con Python y ya aprenderás la sintaxis de otros lenguajes.

  26. He desarrollado en python y en Java.. tb en otros lenguajes.

    Me gustan ambos lenguajes y cada uno tiene sus pros y contras..

    Pyton es dinámico, si todo lo basas en dict, list, etc… necesitas tener muy buenos developpers para que sea mantenible, y que el código sea bueno de verdad.

    lo q no me gusta de python es la gestión de memoria, multithreading, el GIL, etc.. el garbage collector es lamentable y en grandes proyectos si quieres afinar en rendimiento es un dolor de muelas…

    El Java me gusta, se estructura muy bien, el paquetado me parece más currado q el de python, el multithreading a años luz, etc, etc, etc…Los developpers no deben ser tan buenos, con que sean buenos ya estructuran el código bien.

    De Java no me gusta la instalación, no poder tocar en producción cosas, etc… en python es editar el fichero y listo.

  27. Java para mi es lo mejor, y puede complementarse con Python 😛 Java es muy eficiente, pero ya se viene el nuevo futuro de la programación Orientada a Objetos… JavaFX!! esperen unos 2 años y ya verán 🙂

  28. Muy bien. Mi visión…Como al final todo lo manejarán máquinas la pregunta sería. Que es mejor para un bot java o python?.Yo creo que java, c, c# son para bots y a la larga una persona no podrá superarlos profesionalmente. Para una persona la mejor es la que haga que dedique menos tiempo a hacer algo. A mi emplear python hace que tarde menos en montar algo porque incorporo módulos o plataformas prefabricadas, no me gusta inventar la rueda cada día. Seguro que en un futuro se simplificará mas que el python.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.