¿Java es una imposición de SUN o realmente es mejor que python?

Comparte, opina, comenta y discute las noticias y temas de actualidad alrededor de GNU/Linux, el Software Libre y el acontecer del mundo informático.
Avatar de Usuario
hmg79
Forista Legendario
Forista Legendario
Mensajes: 2211
Registrado: Lun Mar 31, 2008 8:00 am

Re: ¿Java es una imposición de SUN o realmente es mejor que python?

Mensaje por hmg79 » Dom Ago 08, 2010 4:15 pm

Si es para programación en web, hay un framework muy bueno para programar en php5, que sirve para olvidarte un poco de todo lo repetitivo y trabaja prácticamente orientado a objetos, symfony es el sistema, corre en windows o linux, siempre que instales pear.-
la pagina del proyecto es http://www.symfony-project.org/
un hermoso manual que explica casi todo lo referido al framework http://librosweb.es/symfony_1_2/

Java es una tecnología que por marketing lo mismo que .net, hace que todas las empresas quieran que se desarrolle sobre dichos sistemas, o sea si pensas vivir de eso, realmente Java te conviene mas que python, ahora que si lo tuyo es aprender a programar nomas o hacer desarrollos fuera de un ambito empresarial, y al igual que varios mensajes anteriores, me gusta mas python.-
El tema es que hoy en dia la mayoria de las ofertas de trabajos a programadores se basa en JAVA.-
quimm2003
Forista Nuevo
Forista Nuevo
Mensajes: 2
Registrado: Dom Ago 08, 2010 6:07 pm

Re: ¿Java es una imposición de SUN o realmente es mejor que python?

Mensaje por quimm2003 » Dom Ago 08, 2010 6:17 pm

Hola,

normalmente es muy complejo decidir si un lenguaje es mejor que otro. Eso depende de variables emocionales, de costumbres, de política, etc. Yo programo en C y en Java en el trabajo, pero me daría lo mismo trabajar con PHP, .NET, Phyton o lo que fuera.

Si, además de los criterios que das, es para ti esencial que el lenguaje sea open source, yo diría que Phyton "es más" open que Java. Por lo demás, todos los lenguajes permiten programar páginas web, de un modo u otro. En Java se usan las páginas jsp (java server pages), un código embebido en el html que el servidor interpreta y devuelve al cliente como html puro.

Saludos
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: ¿Java es una imposición de SUN o realmente es mejor que python?

Mensaje por mcun » Dom Ago 08, 2010 8:58 pm

si lo que te interesa es la web... el futuro es html5.


sin duda pero no es apto para escritorio y otras

Si es para programación en web, hay un framework muy bueno para programar en php5,...........


si lo conozco pero busco un lenguaje que me permita realizar una aplicación de escritorio con funcionalidades web mas precisamente un sistema de gestión de pymes con una conexión a BBDD online y una web para comercio electrónico PHP5 ya lo manejo pero las implementar de seguridad son muy deficientes y no me seria muy útil para la programación de escritorio, podría manejar varios lenguajes, PHP5 para web y otro para la aplicación de escritorio, pero prefiero realizarlo todo desde un solo lenguaje si es posible.

hasta el momento no hay nadie que exprese las virtudes de java por sobre python lo que termina por volcar la balanza en favor de python les agradezco a todos por sus opiniones ya les contare como me ha ido ;) espero pronto tener algún resultado positivo. De todos modos si alguien tiene mas que aportar es bienvenido ;)
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: ¿Java es una imposición de SUN o realmente es mejor que python?

Mensaje por akodo » Jue Ago 12, 2010 11:34 pm

Antes de nada confieso que no me he leído (aún) todo el debate pero creo que urge un poco responder (si es que no se ha respondido ya)
niky45 escribió:
Que no sea una maquina de tragar recursos


entonces olvidate de java. sin contar ya de por si el tema ram y CPU (que no es ligero), solo instalar la maquina virtual son mas de 100 Mb en HDD. Si eso es ser ligero.... :?

Que sea libre u opensurce


mientras que el lenguaje en si ya por fin fue liberado, pero creo que la maquina virtual (o algo que era necesario para la ejecucion), sigue sin ser libre.

Bueno, que la jvm ocupe 100MB admito que es creible (andará por esas cifras), pero esa es la máquina "oficial" de sun. Existen jvm libres (creo que alguna está en construcción) que al menos en teoría deberían servir para ejecutar programas java.
Al menos para Ubuntu he encontrado "jamvm" que según en la descripción el ejecutable ocupa ~110KB (sí KB) en powerPC y ~80KB en intel. Además tienes "cacao" pero creo que no soporta extensiones swing.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Avatar de Usuario
linuxlover
Forista Medio
Forista Medio
Mensajes: 143
Registrado: Mié Ago 17, 2005 7:00 am

Re: ¿Java es una imposición de SUN o realmente es mejor que python?

Mensaje por linuxlover » Vie Ago 13, 2010 4:10 pm

Creo que algunos opinan desde un odio generalizado a Java (ni que se comiera a los niños...), de forma poco objetiva. Python es un gran lenguaje, pero hay que usarlo con cuidado para aplicaciones de tiempo crítico. Por ejemplo, Java es mucho más rápido realizando cálculos. Hay páginas con comparativas donde se ve que Python es un "lenguaje lento". Python va bien para aplicaciones de escritorio que no requieran excesiva velocidad.

Saludos.

Olvidé comentar la "teoría del Marketing", según la cual Java es más utilizado en aplicaciones web porque Sun le da mucho bombo... Django fue liberado en 2005, cuando J2EE existía desde hacía AÑOS. ¿Conocéis la teoría de que el primero que llega gana terreno? Pues, a buen entendedor, pocas palabras bastan.

No trato de defender a Java, porque, además de ser un lenguaje que no me gusta, no cobro por ello, pero hay opiniones (incluso afirmaciones) que rozan lo absurdo.
Athlon 1400
1 GB RAM
GeForce 5200

Ubuntu 8.10
------------------
Asus M51VR

Ubuntu 8.10
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: ¿Java es una imposición de SUN o realmente es mejor que python?

Mensaje por mcun » Vie Ago 13, 2010 6:16 pm

Bue se pone interesante ya pensaba yo que nadie tenia nada que decir en favor de java.

yo he leído que java es mejor que python para operaciones que sobrecarguen el microprocesador, pero también leí que se puede usar una exención de c++ para ello con lo cual lo haría tan veloz cono este último.
http://python.org.ar/pyar/RendimientoPythonVsJavaVsNet

supongo que habrá algo para java que lo mejore en este u otro aspecto, como bien a dicho Akodo lo de las maquinas ligeras.

En cuanto a la teoría del que llego primero mmm no me convence mucho puede ser un aspecto mas pero no "El motivo" ya que si fuera así el desarrollo general de las tecnologías estaría bastante comprometido. Por otro lado supongo que cuando salio java no seria lo que hoy es ya que evidentemente el desarrollo de el lenguaje y las maquinas a sido constante, por lo cual unos años de diferencia no hacen la diferencia en mi opinión, máxime cuando se esta en la etapa inicial.

Es un tema complejo ya que depende de muchos factores como ser el programador, el entorno, etc.

por ello que la pregunta se centra en si java es mejor o solo es mas extendido por un buen manejo de SUN
gracias por comentar
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Avatar de Usuario
hipersayan_x
Forista Legendario
Forista Legendario
Mensajes: 1905
Registrado: Vie Abr 27, 2007 7:00 am
Contactar:

Re: ¿Java es una imposición de SUN o realmente es mejor que python?

Mensaje por hipersayan_x » Vie Ago 13, 2010 7:44 pm

Para agregar mas leña al fuego :D , y C++, no? digo, o sea, C++ sabiéndolo manejar es un todo terreno, y mas eficiencia que con C++ imposible, a menos claaarooo que te metas en assembler :D
Y si, C++ también se puede usar para procesar paginas dinámicas in server side según he leído :)
Desarrollo en Qt: Qt Developer Network
Mis proyectos: github | SourceForge.net
Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: ¿Java es una imposición de SUN o realmente es mejor que python?

Mensaje por akodo » Sab Ago 14, 2010 4:50 pm

De todas formas, para incrementar el rendimiento (aunque realmente no se utilice para eso) puedes utilizar JNI desde java:
Java_Native_Interface
Con eso se pueden utilizar APIs más optimizados que los que hay en java aunque perdiendo portabilidad. No he tenido necesidad de utilizarlo nunca, pero es una opción que se puede tener en cuenta.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Avatar de Usuario
linuxlover
Forista Medio
Forista Medio
Mensajes: 143
Registrado: Mié Ago 17, 2005 7:00 am

Re: ¿Java es una imposición de SUN o realmente es mejor que python?

Mensaje por linuxlover » Dom Ago 15, 2010 12:32 pm

Aquí está la comparativa prometida:
http://shootout.alioth.debian.org/u32/which-programming-languages-are-fastest.php

Java 6 es más rápido que cualquier versión de Python. Me sorprende que no esté lejos de C++, pero la comparativa está hecha de una forma más que seria y con difrentes tipos de tests.

Al menos en cuanto a cálculos, doy fe de que Python es LENTÍSIMO. Prueba burda realizada por mí mismo: 2 operaciones en coma flotante repetidas 10 millones de veces --> C++, 1 segundo / Java6, 5 segundos / Python 2.6, más de un minuto. Por muy burda que sea la prueba, la diferencia no puede ser una ejecución 15 veces más lenta en Python si no es porque Python es mucho más lento. Repito que Python me gusta para aplicaciones de escritorio o aplicaciones que no requieran velocidad de ejecución, pero tampoco es el súmmun como lo quieren pintar.

La teoría de embeber C++ es un parche de último recurso que no debería usarse y que se usa por la deficiencia de velocidad de Python. es como si me compro un coche muy bonito y me toca cambiarle el motor para que ande..

Otra cuestión que no me gusta nada de Python es que, en OOP, no existe la visibilidad protected. No veo ninguna razón de peso para tal cosa, la cual a mí me parece una barbaridad, casi un paso atrás en un lenguaje que se supone que es moderno y un paso adelante.

La teoría de que Java llegó primero se sustenta por la sencilla razón de que hay MUCHÍSIMO código Java heredado de hace más de 5 años, y cambiar todo eso a otro lenguaje supone un dolor de muelas, además de mucha plata, como dirían los argentinos =). Java comenzó a utilizarse masivamente antes de que apareciera Python y ahora es mejor seguir con él que cambiar a otras cosas, no sólo en proyectos heredados (razón obvia), sino incluso para proyectos nuevos, ya que el conocimiento que se suele tener en una empresa de Java es mayor que de otros lenguajes. Por tanto, sigo pensando que la "mano negra" de Sun es un factor de importancia menor. No hay mano negra, por ejemplo, para seguir usando CVS, y se sigue usando más de lo que parece, porque una migración a Subversion (u otro) de todos los proyectos antiguos de una empresa es una locura.

C++ es todo terreno, pero no sé si sirve para aplicaciones web o sólo CGI's (lo desconozco). Si sólo sirve para lo segundo, está claro por qué no se usa demasiado en este campo.
Athlon 1400
1 GB RAM
GeForce 5200

Ubuntu 8.10
------------------
Asus M51VR

Ubuntu 8.10
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: ¿Java es una imposición de SUN o realmente es mejor que python?

Mensaje por mcun » Dom Ago 15, 2010 3:39 pm

me has hecho dudar eso es bueno...

mira lo de los cálculos complejo tienes razón en que python es mucho mas lento no hay secreto en ello, ahora no se si usar un parche es algo tan malo como dices, para mi no es mas que la relación entre dos lenguajes yo programo sistemas web y uso varios lenguajes para ello PHP SQL HTML no veo por que no usar c++ para una operación sea malo.

Con respecto a la falta de protección de los atributos de una clase yo he leído que si la tiene ( aunque confieso que no tengo la suficiente experiencia como para asegurarlo) si mal no recuerdo un atributo privado se declara __ Privado __publico__

aja lo encontre,,, del libro...
Python Para Todos escribió:En Python no existen los modificadores de acceso, y lo que se suele
hacer es que el acceso a una variable o función viene determinado por
su nombre: si el nombre comienza con dos guiones bajos (y no termina
también con dos guiones bajos) se trata de una variable o función pri-
vada, en caso contrario es pública. Los métodos cuyo nombre comien-
za y termina con dos guiones bajos son métodos especiales que Python
llama automáticamente bajo ciertas circunstancias, como veremos al
final del capítulo.


Supongo que ello esta implementado por python por ser fiel a su filosofía del mismo modo eliminaron el case por considerarlo innecesario. ¿tu que opinas?

Pero recién estoy en la etapa de investigación aun no puedo hablar por mi mismo ya que estoy documentan-dome y analizando.

en cuanto al link que pasaste hice algunas pruebas rápidas y si parece que java lleva ventaja pro no soy un entendido en la materia tendré que analizar mejor ese site gracias por el link ;)
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: ¿Java es una imposición de SUN o realmente es mejor que python?

Mensaje por akodo » Lun Ago 16, 2010 11:44 am

linuxlover escribió:Aquí está la comparativa prometida:
http://shootout.alioth.debian.org/u32/which-programming-languages-are-fastest.php

Java 6 es más rápido que cualquier versión de Python. Me sorprende que no esté lejos de C++, pero la comparativa está hecha de una forma más que seria y con difrentes tipos de tests.


Java interpretado (opción -Xint) es parecido a python, y sin embargo en steady state (que supongo que será con la máquina virtual ya funcionando completamente) es similar a C++
No creo que me confunda demasiado diciendo que gran parte de la velocidad ganada se deba a los JIT compilers (compiladores "just in time") que básicamente lo que hacen es compilar código si ese código se ha ejecutado un número de veces, en previsión de que ese código se vaya a ejecutar más veces. Supongo que lo compilará a código nativo similar a lo que hace C/C++, de ahí el incremento de velocidad. De todas formas, no estoy seguro de que JIT sea libre así que es posible que no todas las jvm lo tengan incorporado.

Por otro lado, hay dos cosas que no me gustan de python: que no haya declaración de tipos, y que las funciones puedan devolver cualquier cosa. A la larga no veo otra cosa que problemas ya que, en el mejor de los casos, te saldrá un error, pero en una línea diferente de donde realmente está. Un error de "acceso indebido" (por llamarlo de alguna forma) al llamar a un método de una clase te lo puede marcar 20, 30 o 50 líneas por encima (o debajo) del error real, algo tan simple como que te has confundido y en una función has devuelto un valor entero y no una clase. Y esto me ha pasado y me ha llevado tiempo depurarlo.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: ¿Java es una imposición de SUN o realmente es mejor que python?

Mensaje por mcun » Lun Ago 16, 2010 3:42 pm

akodo escribió:Por otro lado, hay dos cosas que no me gustan de python: que no haya declaración de tipos, y que las funciones puedan devolver cualquier cosa. A la larga no veo otra cosa que problemas ya que, en el mejor de los casos, te saldrá un error, pero en una línea diferente de donde realmente está. Un error de "acceso indebido" (por llamarlo de alguna forma) al llamar a un método de una clase te lo puede marcar 20, 30 o 50 líneas por encima (o debajo) del error real, algo tan simple como que te has confundido y en una función has devuelto un valor entero y no una clase. Y esto me ha pasado y me ha llevado tiempo depurarlo.


si esto parece contrario a el zend de python "mejor explicito que implícito" aunque no llego a comprender bien tu ejemplo.
¿ te refieres a cuando intentas acceder a un entero como si fuese un string ? ¿ dices que el error te lo marca en el momento del llamado y no en la asignación o sin referencia a ella?

¿Puedes desarrollar un poco tu idea? tanks :?
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Avatar de Usuario
akodo
Moderador
Moderador
Mensajes: 1457
Registrado: Mié Nov 28, 2007 8:00 am
Ubicación: En la X del explorer (pulse para llamar)

Re: ¿Java es una imposición de SUN o realmente es mejor que python?

Mensaje por akodo » Lun Ago 16, 2010 6:09 pm

A ver si no meto la pata con la sintáxis...

Código: Seleccionar todo

def getSuperObject():
    if <condición de error>:
        return -1
    else:
        return superObject.superObject()

def main():
    superObject1 = getSuperObject()
    superObject1.doSomething()

En ese código, obtienes supuestamente un superObject, pero en realidad ocurre un error y por tanto te devuelve un -1 (indicando que ha habido un error). Supuestamente el método doSomething debería funcionar, pero te da el correspondiente error (debido a que no te devuelve un objeto sino un -1).
El error te lo marcaría en esta última línea al acceder a un método que un entero no tiene.

En este caso se devuelven 2 objetos distintos intencionadamente, y la función "getSuperObject()" está permitida tal como está. El problema está cuando no hay esa intención de devolver 2 objetos diferentes:

Código: Seleccionar todo

def getSuperObject():
    if algo:
        return superObject.superObject(algo)
    else:
        return superObject.superObject

En este ejemplo se intenta devolver un objeto superObject, pero resulta que al escribir te confundes y se te olvida poner el "()" en el método del else. Resulta que 200 líneas más abajo aparece un error diciendo que el método "doSomething()" no existe en el objeto <cualquier cosa> cuando tienes puesto "superObject1.doSomething()"

Aún quisiendo devolver la clase (que supongo que es lo que devolvería superObject.superObject) creo que java lo tiene mucho mejor gestionado y queda mucho más claro y con poca probabilidad de confusión.
Descargue el gestor de mp3 "Music Manager" -> ([url=http://ctrlalt.iespana.es]mmlf[/url])
Última versión del gestor "Music Manager" -> ([url=http://sourceforge.net/projects/jmusicmanager/]jmmm[/url])
Avatar de Usuario
mcun
Administrador
Administrador
Mensajes: 3888
Registrado: Lun Abr 19, 2010 12:30 am
Ubicación: En una de las nalgas del culo del mundo (según la Bersuit Vergarabat)
Contactar:

Re: ¿Java es una imposición de SUN o realmente es mejor que python?

Mensaje por mcun » Lun Ago 16, 2010 6:25 pm

ahora te entendí mejor ya me llamaba la atención el enfatice de algunas guías sobre el debugger en tiempo de programación

ahorita no encuentro el enlace pero esto es algo parecido
http://docs.python.org.ar/tutorial/errors.html

Definitivamente este debate me esta siendo muy provechoso, les agradezco mucho sus intervenciones y opiniones ;)
Los programadores de verdad no documentan. La documentación es para los idiotas que no pueden leer un volcado de memoria.

Trusted Network and Developer | Lee el Reglamento !! |WIKI-EL | Twitter @mr_mcun
Debian + TTY | ArchLinux + awesome | openSUSE + Gnome-Shell | Linux User #508809
Avatar de Usuario
hipersayan_x
Forista Legendario
Forista Legendario
Mensajes: 1905
Registrado: Vie Abr 27, 2007 7:00 am
Contactar:

Re: ¿Java es una imposición de SUN o realmente es mejor que python?

Mensaje por hipersayan_x » Lun Ago 16, 2010 6:30 pm

akodo escribió:A ver si no meto la pata con la sintáxis...

Código: Seleccionar todo

def getSuperObject():
    if <condición de error>:
        return -1
    else:
        return superObject.superObject()

def main():
    superObject1 = getSuperObject()
    superObject1.doSomething()



Código: Seleccionar todo

def getSuperObject():
    if <condición de error>:
        return -1
    else:
        return superObject.superObject()

def main():
    superObject1 = getSuperObject()

    try:
        superObject1.doSomething()
    except:
        hacer_otra_cosa()


akodo escribió:En este caso se devuelven 2 objetos distintos intencionadamente, y la función "getSuperObject()" está permitida tal como está. El problema está cuando no hay esa intención de devolver 2 objetos diferentes:

Código: Seleccionar todo

def getSuperObject():
    if algo:
        return superObject.superObject(algo)
    else:
        return superObject.superObject

En este ejemplo se intenta devolver un objeto superObject, pero resulta que al escribir te confundes y se te olvida poner el "()" en el método del else. Resulta que 200 líneas más abajo aparece un error diciendo que el método "doSomething()" no existe en el objeto <cualquier cosa> cuando tienes puesto "superObject1.doSomething()"

Aún quisiendo devolver la clase (que supongo que es lo que devolvería superObject.superObject) creo que java lo tiene mucho mejor gestionado y queda mucho más claro y con poca probabilidad de confusión.


En python, TODO, y repito, absolutamente TODO es un objeto, y no tiene la culpa de que vos escribas mal.
Desarrollo en Qt: Qt Developer Network
Mis proyectos: github | SourceForge.net
Responder
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje