Python vs Nodejs

En el momento de realizar una página web dinámica tendría que venirnos a la cabeza diversas opciones: Python, Node.js, PHP, Java, Ruby y Go. Como mínimo. Y si no lo hace, es el momento adecuado de aprender. Cada uno guarda una serie de características que lo hacen brillar respecto al resto. No existe, a día de hoy, el lenguaje perfecto. Solo los que mejor solucionan una serie de problemas.

A continuación no voy a dar una ley, solo la opinión de un programador web que ha tenido la suerte de trabajar en varios proyectos con ambos lenguajes. Y a diario los utiliza. No obstante os invito a dar correcciones o aportaciones en los comentarios.

Python

Es mucho más que lenguaje: bello, claro, gran comunidad, eventos, miles de bibliotecas de gran calidad, Frameworks increibles… Es una gran apuesta para realizar un sitio. Grande o pequeño. Archiconocido por Django. Muy demandado también en otras áreas.

Cuando es recomendable

  • Cuando hay un gran equipo.
  • Proyectos que se van a alargar en el tiempo.
  • Funcionalides muy a medida.
  • Rápido desarrollo.

Pros

  • Código claro.
  • Mantiene un proyecto ordenado.
  • Fácil de mantener.
  • Extensible a otras plataformas.
  • Bibliotecas varidas y estables.
  • Test sencillos de generar.
  • Django.

Contras

  • Difícil de desplegar en un VPS. Necesitas tener buenos conocimientos de Linux.
  • Lento comparado con la competencia.
  • No es la mejor solución para real-time.

Nodejs

Node.js es en realidad un entorno de ejecución. El motor V8 de Google para Javascript. O dicho de otro modo, es el software para ejecutar Javascript. Nos permite, con muy poquito, montar una web potente. Con gran capacidad para la ejecución paralela y fácil de desplegar.

Cuando es recomendable

  • Realización de proyectos real-time.
  • Gran carga de peticiones.
  • Pocos recursos en el servidor.
  • Rápida formación del equipo.

Pros

  • Fácil de aprender.
  • Sencillo de desplegar.
  • Muchos ejemplos por la red.
  • Rápido.
  • Cómodo a la hora de desarrollar.

Contras

  • Difícil de mantener una estructura o un estilo claro en el desarrollo.
  • No recomendable para proyectos grandes.
  • Frameworks mejorables.
  • Esta en constante evolución.
  • Manejo pobre de las excepciones.