Tiene validez aun codigo JSP de un libro de hace 10 años ?

Iniciado por limalimon1, 17 Diciembre 2011, 17:49 PM

0 Miembros y 3 Visitantes están viendo este tema.

Stoya

Cita de: Kase en 29 Diciembre 2011, 02:46 AM
el  margen minimo es solo unas decimas mas que java...   python al igual de java se precompila a bitecode tras su primera ejecucion...

¿Unas décimas? La mediana de python3 dice que tarda 58.05 veces más que C, mientras que java tarda 1.65 veces más. Eso es algo más que unas décimas.

Cita de: Kase en 29 Diciembre 2011, 02:46 AMpero tarda bastante mas por que se interpreta por el interprete en lugar de tener el apollo de una maquina java que ocupa el equivalente a una orca en un estanque..

¿De qué hablas? ¿La máquina de java ocupa qué? ¿Qué tienes de servidor?

Cita de: Kase en 29 Diciembre 2011, 02:46 AMno negare que java gana en velocidad de procesamiento...
pero es desarrollo web, no requiere de calculos enormes que estresen el procesador, solo mantener variables en session y desplegar cosas..

Para muchos usuarios a la vez.


Cita de: Kase en 29 Diciembre 2011, 02:46 AMes entonces cuando python vale la pena por simplisidad sobre java..
y en tiempo de respuesta y cantidad de peticiones por segundo se dan su batalla  al igual que RoR. y dejando muy atras a php...

Y esto supongo que me lo tengo que creer porque lo dice una orca desde un estanque.

Cita de: Kase en 29 Diciembre 2011, 02:46 AMablamos de solo un par de decimas de segundo que facil pueden ser ignoradas por la estupides del programador al no elegir bien el algoritmo

No son un par de décimas, es 50 veces más lento. Si tarda 2 décimas entonces pasa a 100, si tarda 1 segundo entonces pasa a 50 segundos.

Cita de: Kase en 29 Diciembre 2011, 02:46 AMno me molesta decir que java es mas eficiente, lo es si  te tomaste la molestia de estudiarlo varios años y leerte toda la documentacion de los modulos que usas
lo que me causa el infarto es el "mucho mas eficiente" sacrificar meses de tiempo de desarrollo para un par de decimas de segundo ganadas no tiene mucho de eficiente, y en python siempre puedes acudir a escribir rutinas en C

50 veces más rápido es mucho más eficiente, lo mires como lo mires.

Cita de: Kase en 29 Diciembre 2011, 02:46 AMyo te dire que no te sirve... si estas estudiando por hobby mejor salta directamente a un framework como  struts2   es java, usa jsp, es mvc,  y es facil de anexar con springs y hivernate...

Totalmente de acuerdo en esto.

Kase

#11
aver.. parece que no sabes  ver bien tu paginita..  o no leiste bien mi comentario, dije margen minimo


Java 7 -server   1.11           1.11    1.36    1.65   2.02           3.01    5.97
Python 3     1.13    1.13           7.34     58.05   76.85   149.86   149.86

1.13 - 1.11 =.02

literalmente el margen minimo es solo un par mas de decimas

por que en el resto de las mediciones se separa tanto?   por que java tiene una maquina virtual preparada para ejecutar programas...  una maquina que minimo esta hay gastandote 100mgs de ram
mientras que python tiene un interprete, que  es muy distinto a una maquina virtual..
la diferencia radica en eso mismo..  python no esta preparado en ram para ejecutar programas

por que digo que es una orca en un estanque?   anda que si tienes 1g de ram, y la maquina virtual se come 100mg  eso equivale a una orca en un estanque..


CitarCita de: Kase en Ayer a las 02:46
no negare que java gana en velocidad de procesamiento...
pero es desarrollo web, no requiere de calculos enormes que estresen el procesador, solo mantener variables en session y desplegar cosas..

Para muchos usuarios a la vez.

la diferencia  entre django, ruby on rails y algun framework de java resolviendo peticiones por segundo es apenas notable... y muy supeior a php...

pero es muy raro encontrar un servidor java economico =P


PD: me intriga saber que pequeñas tareas testearon...  por que de entrada  python no tiene arreglos, tiene listas y tuplas, y si usaron listas en lugar de tuplas  comparandolo contra los arreglos de java es muy natural tanta diferencia...

Stoya

Cita de: Kase en 30 Diciembre 2011, 20:57 PM
literalmente el margen minimo es solo un par mas de decimas
¿Y? si te vas a fijar en un único valor tienes que fijarte en la mediana, los casos extremos nunca son significativos.

Cita de: Kase en 30 Diciembre 2011, 20:57 PMpor que en el resto de las mediciones se separa tanto?   por que java tiene una maquina virtual preparada para ejecutar programas...  una maquina que minimo esta hay gastandote 100mgs de ram
mientras que python tiene un interprete, que  es muy distinto a una maquina virtual..
la diferencia radica en eso mismo..  python no esta preparado en ram para ejecutar programas
Mira cómo han hecho las mediciones, porque no tienes ni idea.

Cita de: Kase en 30 Diciembre 2011, 20:57 PMpor que digo que es una orca en un estanque?   anda que si tienes 1g de ram, y la maquina virtual se come 100mg  eso equivale a una orca en un estanque..
La diferencia en el uso de memoria tampoco es tanta, de hecho python supera a java en algunos tests: http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&lang=python3&lang2=java

Cita de: Kase en 30 Diciembre 2011, 20:57 PMla diferencia  entre django, ruby on rails y algun framework de java resolviendo peticiones por segundo es apenas notable... y muy supeior a php...
Y me lo tengo que creer porque lo dices tú...

Cita de: Kase en 30 Diciembre 2011, 20:57 PMPD: me intriga saber que pequeñas tareas testearon...  por que de entrada  python no tiene arreglos, tiene listas y tuplas, y si usaron listas en lugar de tuplas  comparandolo contra los arreglos de java es muy natural tanta diferencia...
Pues mira la página, está todo ahí.

Kase

#13
seguro que no me aceptaras este link como respuesta
http://blog.apsl.net/weblog/2010/07/29/va-a-desaparecer-python/

pues diras que es un evangelizador de python

intento encontrar una compracion que vi etre  django, ror, zen php,  y otros..

dejango  y ror rondaban las 300 peticiones por segundo con cacheo y django mas de 200 sin cacheo

enserio por que te molesta tanto decir que python es bueno?  ::)

ami no me molesta para nada decir que java es superior  :xD

si yo tuviera que elegir  entre python y  java para un proyecto web grande elegiria python...  por que simplifica mucho la programacon de este. escribo menos codigo... django esta muy bien ordenado.
y bien optimizado puede llegar a 300 peticiones por segundo, y ni me imagino cuanto mas soportaria teniendo el motor sql en una maquina distinta y  el servidor de  archivos 'media' en otra...

e leido.. (intento encontrar las fuentes pero no se donde) que  java tiene un rendimiento que ronda tambien las 300 peticiones por segundo? si es mucho mas espero me corrijas.. y la verda no me sorprenderia que fueran 400 o 500

es solo que la complejidad de programar algo en java contra la simplisidad de programar algo en django es avismal..

en java solo e probado   jsf,  icefaces, struts1, struts2,  y en persistencia hybernate...
de jsf  y icefaces solo puedo hablar pestes.... hay que  configurar de 3 a 4 clases para cada cosa que quieres hacer   e importar un monton de beans por todos lados.

struts 1 me gusto un poco.. pero struts 2  y el uso de pojos simplifico demasiado la codificacion.. si me obligaran a usar java en un proyecto web usaria struts 2 o me daria un tiro.

aun asi que puede superar a algo tan simple como python-django

modelo
Citarclass Noticias (models.Model):
   titulo = models.CharField(max_length=120)
   post = models.TextField()
   fecha = models.DateField()
   def __unicode__(self):
       return self.titulo

controlador noticias con paginacion.
Citardef noticias (request,n=1):
   noticias = Noticias.objects.filter(fecha__lte = datetime.now()).order_by('-fecha')[(n-1)*10:n*10]
   pagina = []
   for np in range(int(ceil(float(Noticias.objects.count())/10.0))):
       pagina += [{'url':np+1,'numero':np+1}]
   return render_to_response('noticias/noticias.html', locals(),RequestContext(request))

vista
Citar{%for noticia in noticias%}
<h1><a  href='/noticia/{{noticia.id}}/{{noticia.titulo|slugify}}'>{{noticia.titulo}}</a></h1>
<p>{{noticia.post|safe|urlizetrunc:35}}</p>
<br><small>{{noticia.fecha}}</small>
<hr>
{%endfor%}
<div id='paginador'> pagina:{%for n2  in pagina%}
{%if n != n2.numero%}
<a href=/noticias/{{n2.url}}>{{n2.numero}}</a>
{%else%}
   {{n2.numero}}
{%endif%}
podria simplificarse usando javascript para paginar y mejoraria el rendimiento del servidor al no tener que paginar el mismo y delegarlo al cliente... pero me gusta que mis clientes no sufran

y nisikiera tengo que programarlo cada que lo ocupo..  las app de django son plug and play y django ya me esta dando 300 pps...
hacer lo mismo en java me causa dolor de cabeza.. y solo  para conseguir unas cuantas mas de pps?  

PD: si hablamos de calculos matematicos complejos y extremadamente largos.. si python es 10 veces mas lento (5 veces mas lento con numeros muy grandes) que C
pero tienes librerias  como numpy  que estan escritas en C  y por eso mismo se acercan a su velocidad

Stoya

#14
Muy bien el código en python es muy bonito, pero no estás explicando (y el blog tampoco explica) de dónde salen afirmaciones como éstas:

Citarpasando de las más de 300 peticiones por segundo que aguanta un proyecto mínimo de Django a las 34 peticiones por segundo del mismo proyecto desarrollado en uno de estos frameworks PHP.

Que es lo que me importa.

Dame una referencia a un benchmark fiable si la tienes y si no la demagogia puedes dejarla para otros.

Por otro lado tengo entendido que grok es mejor que django, pero no lo he probado, así que no lo puedo afirmar, la comparativa que vi se basaba en lo que proporcionaba cada framework, pero no hacían ninguna alusión al rendimiento obtenido.

Kase

#15
Cita de: Stoya en  1 Enero 2012, 06:22 AM
Muy bien el código en python es muy bonito, pero no estás explicando (y el blog tampoco explica) de dónde salen afirmaciones como éstas:

Que es lo que me importa.

Dame una referencia a un benchmark fiable si la tienes y si no la demagogia puedes dejarla para otros.

Por otro lado tengo entendido que grok es mejor que django, pero no lo he probado, así que no lo puedo afirmar, la comparativa que vi se basaba en lo que proporcionaba cada framework, pero no hacían ninguna alusión al rendimiento obtenido.

googleando un poco
http://letsgetdugg.com/2009/04/19/catalyst-vs-rails-vs-django-cook-off/
72 por segundo.

http://www.rkblog.rk.edu.pl/w/p/simple-python-frameworks-benchmark/

segun de 100 a 400 sin problemas

http://brainacle.com/benchmark-of-django-deployment-techniques.html


depende mucho del hardware ( ._.)   como te dije asumo que java es mucho mejor... pero en relacion  simplisidad-rendimiento prefiero python + django

y el modulo de memcach esta muy bien desarrollado... n__nU  ¿me intriga saber como andara con tornado?

aparte en programacion web no requires calculos complejos... y para calculos complejos mejor usar los modulos escritos en C que tratar de resolverlo con python puro...  su carencia de arreglos de manera natural  es  un fail ala hora de potencia de calculo

bueno, sin rencores..  no era mi intencion comenzar una guerra.. xD  solo defendi un poco mi lenguaje main....

Stoya

Lo que pasa es que los benchmarks tienen que comparar dos lenguajes, si no no se tiene la referencia y para otro puede ser otro hardware el que se use, es decir, si no están ambos lenguajes incluidos en el benchmark no sirve para la comparción, ya quieras comparar python con php o java.

No hay rencores, simplemente es un tema que me interesa. Pero no le puedo decir a mis jefes: "vamos a usar python que me ha dicho un tío en un foro que mola mucho", con un benchmark sí podría, pero igualmente, tampoco me es una prioridad, simplemente sería algo que podría venirme bien en el futuro, si me lo das lo tengo, si no, lo tendré que buscar, si es que en algún momento realmente me compensa el esfuerzo de buscarlo.

adastra

Respondiendo a la pregunta original,
Depende del código que este en tu libro y los conocimientos que tengas sobre Java, si dominas JSP y Servlets, puedes comenzar a aprender frameworks como JSF, pero si no tienes las bases de conocimiento necesarias Servlets y JSP, pues es recomendable adquirirlas primero...

Sobre la "disputa" entre Pyton y Java... En realidad creeis que hay uno mejor que otro? llevo programando en ambos lenguajes desde hace 10 años y os puedo asegurar que las diferencias en rendimiento dependen en gran medida de la plataforma en la que se ejecutan, el "tunning" realizado y en el entorno, las diferencias son minimas, ambos tienen caracteristicas "buenas" y "malas", los utilizo dependiendo de lo que quiera hacer y ya esta.
son HERRAMIENTAS, no un fin en si mismo.

Stoya

Sin embargo python como herramienta parece mucho más fácil de utilizar, tiene una sintaxis más escueta que supuestamente optimiza el tiempo del programador.

El problema es que no hay datos reales del rendimiento del programador y el rendimiento de los programas generados, y sin datos no se puede convencer al jefe de nada.

En el momento en que haya datos buenos estoy seguro de que muchos lenguajes incluso desaparecerán, ante otros que tal vez existan ya o se creen a la luz de los datos.

Hasta entonces habrá gente haciendo las cosas no tan bien como sería posible teniendo los datos y tomando mejores decisiones.