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
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
Citar
class Noticias (models.Model):
titulo = models.CharField(max_length=120)
post = models.TextField()
fecha = models.DateField()
def __unicode__(self):
return self.titulo
titulo = models.CharField(max_length=120)
post = models.TextField()
fecha = models.DateField()
def __unicode__(self):
return self.titulo
controlador noticias con paginacion.
Citar
def 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))
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<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%}
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