Python en la Web2.0

Python en Aplicaciones Web (PAW)

En el comienzo la web no era mas que una simple colección de páginas estáticas que evolucionaron de manera rápida hacia una forma de confeccionarlas de manera dinámica mostrando información y calculando datos a partir de peticiones, método conocido como CGI; que a pesar de sus ventajas trajo serios problemas como fueron la carga de recursos en máquinas del servidor. Como consecuencia empezaron a desarrollarse nuevas alternativas como la inclusión de lenguajes de programación interpretados en los servidores, de manera tal que fuera el servidor quien ejecutara el código en las páginas, como era de esperar esto trajo toda una revolución en la web, aparecieron nuevos lenguajes interpretados y nuevas arquitecturas de programación. A mediados de los noventa lenguajes como Java y PHP fueron los que eliminaron gran parte de estos problemas tomando gran fuerza en el mundo de la web, la popularidad de este último ha ido creciendo dada su facilidad al poder incrustar HTML en sus programas o viceversa, convirtiéndose en la actualidad en uno de los lenguajes mas empleado por los desarrolladores.
Pero no solo PHP esta ganando gran popularidad en el desarrollo de la WEB 2.0, lenguajes como Ruby y Python van cobrando día tras día más fuerza en la web, en especial Python lenguaje de programación poderoso y fácil de aprender, ideal para scripting y el desarrollo rápido de aplicaciones en varias áreas y plataformas. Pero ¿Por que demoró tanto en ganar popularidad en la web? a pesar de ser ideal para esta, fíjense que hablamos de popularidad y no de condición.
Sabemos que fue a partir del nacimiento de Ruby on Rails (RoR) en el 2004, que comenzaron a surgir framework como Django, Turbogear, web.py y más recientemente web2py, RoR simplifico mucho el trabajo de plataformas como J2EE y Python le dio nueva vida a la web 2.0, haciéndola mas fácil y divertida.

Hay para todos

La popularidad de framework como Django, Turbogear, web.py y web2py hacen de muchos de los que se inician en la web con Python una inquietud a la hora de elegir, el objetivo de este artículo es eliminar esa inseguridad enfocándome en tres de los framework mencionado anteriormente.

Django

Es un framework que ahorra tiempo considerable en el desarrollo Web, su filosofía es genial – bajo acoplamiento, menos código enfocándose en el desarrollo rápido, consistencia siguiendo el principio DRY (no te repitas) y explicito es mejor que implícito. Django presenta uno de los sistemas de plantillas mas flexibles y potente existente, separando la lógica de la presentación, desalentando la redundancia, permitiendo la seguridad y extensibilidad así como el fácil desacoplo del código HTML, es importante que entiendan esto ya que el sistema de plantilla de Django es ideal para los diseñadores no para programadores (por lo que no permite de manera intencional la inclusión directa de código de programación en HTML) como es el caso de web.py o PHP, en cambio nos permite insertar algunas sentencias del lenguaje, así como la creación de nuestras propias extensiones.

Una de las principales ventajas de Django, es que no se entromete, dejándote trabajar fuera del ámbito del framework según lo necesites, a continuación se listan otras de sus ventajas:
Potente ORM, infinita flexibilidad, encierra las mejores prácticas, diferencia el GET del POST, eficiencia SQL, sintaxis concisa y poderosa, opción de escribir SQL crudo cuando se necesita, bajo acoplamiento en el diseño de URLs, URLs definitivas, uso de objetos request y permite el desarrollo en equipo.

Desventajas de Django:

Comparándose con framework como web2py su curva de aprendizaje suele ser un poco más elevada, aunque esto es en gran medida por su flexibilidad. Esa curva de aprendizaje elevada esta dada principalmente por su configuración y la alta flexibilidad en el diseño de URLs.

web.py

Es un framework que si comparamos con Django y web2py es intencionalmente demasiado pequeño, pero no se engañen el trabajo con clases es demasiado potente, Aaron Swartz es su creador y define a web.py como el anti-framework, esto es en gran parte por que web.py no es mas que una plataforma web pequeña con solo las librerías imprescindibles para la creación de aplicaciones web (un framework minimalista).

Entre sus ventajas resalta la definición de sus vistas que al igual Django separa el GET del POST, pero web.py lo hace de una manera más sencilla e intuitiva.
El sistema de plantillas de web.py conocido como templater a diferencia de Django permite la inclusión de código Python por completo en HTML, esto tiene sus ventajas e inconveniencia; pero el objetivo detrás de eso es traer a Python al HTML, siendo la sintaxis por mucho más sencilla e intuitiva que la Django y de web2py. web.py no trata de hacer que la base de datos se vea como un objeto como es el caso de Django y web2py, sino que sea fácil de usar y a la vez bastante rápido; mucho mas que la DAL (capa de abstracción) de web2py.

Lo cierto es que el uso de web.py es ideal para aquellos que disfrutan del desarrollo Web, un programador con conocimiento suficientes en Python lograrían grandes resultados con el uso de este framework.

web2py

web2py es el framework ágil de la programación web con Python, su facilidad para el desarrollo de aplicaciones web lo han hecho ganar en popularidad, aunque rompe un poco con los patrones de la programación web. Este no requiere de instalación o configuración (para modo de desarrollo), entre los principios de web2py está el DRY, principio heredado de Django; aunque no comparte el principio de Python Explicito es mejor que implícito – En particular web2py importa automáticamente sus propios módulos haciendo con esto un poco de magia. web2py presenta una interfaz admin basada en la web que ha diferencia de la de Django nos permite el diseño, depuración, evaluación, ejecución, traducción, tickets de error e implementación del código así como una DAL que a diferencia de web.py trabaja la base de datos como un objeto, otra de sus características especiales son los mecanismos para generar HTML desde la controladora mas conocido como helper.

Su principal desventaja quizás radica en su falta de flexibilidad, ya que a diferencia de Django o web.py las aplicaciones de web2py no son independientes del framework, ya que sus aplicaciones radican dentro del mismo, esto podría provocar problemas a la hora de acoplarlo con otro sistemas. En mi opinión web2py es un framework para aplicaciones de pequeño y quizás de mediano tamaño, esto no significa que no se puedan hacer grandes cosas con el – todo lo contrario, web2py cumple el propósito para el que fue hecho; hacer rápido y fácil el desarrollo de aplicación pequeñas con Python ideal para aquellos que se inician en la web por que solo son necesarios conocimientos básico sobre Python, Ajax y SQL.

Conclusión

Django -> Desarrollo de aplicaciones web de pequeño, mediano y gran tamaño, altamente flexibles y acoplables con variados sistemas.
web.py -> Para escribir la aplicación web ideal.
Web2py -> Desarrollo ágil de aplicaciones web de pequeño y mediano tamaño.

Anuncios

Responses

  1. Flask

    Flask es un microframework de python para aplicaciones web, que emplea objetos locales de subprocesos para peticiones, secciones y algún objeto extra. Si lo sé, esto puede causar problemas con servidores que no hagan uso de thread, es por esta razón que Flask emplea Werkzeug tomando ventajas de su trabajo.
    En pocas palabras Flask es ideal para aplicaciones grandes o para servidores asincrónicos, pero su objetivo es lograr esto de manera rápida y fácil.

    Que nunca tendrá Flask.

    1. Flask nunca tendrá una capa de base de datos, ni librerías de formularios o cosas asi por el estilo.
    2. Flask nunca tendrá un sistema de plantillas propio (como Django o web2py).

    Por qué?

    Flask emplea Werkzeug como puente para implementar una correcta aplicación WSGI y emplea a Jinja2 como sistema de plantilla, los desarrolladores tienen distintos gustos y necesidades y como es bien difícil (prácticamente imposible) cumplir con ellos Flask nos brinda una muy buena base para construir aplicaciones, a través de terceras extensiones como (SQLAlchemy, Jinja2, etc).

    Descargar Werkzeug


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: