Respuesta también disponible en Quora: ¿Qué lenguaje de programación de back-end vale la pena aprender hoy?

En mi opinión, estas son dos opciones idóneas para hacer el trabajo en el servidor y que realmente valen la pena aprender. Por supuesto hay otras opciones.

Go - https://golang.org

  • Lenguaje de programación de tipado estático y compilado.
  • Combina la versatilidad y fácil uso de un lenguaje de tipado dinámico con la potencia y confiabilidad de un lenguaje de tipado estático compilado.
  • Compila directamente a código de maquina.
  • Tiene un eficiente recolector de basura (GC).
  • Compila increíblemente rápido.
  • Es multiplataforma (GNU/Linux, Windows, Mac).
  • Go es simple. Tiene una sintaxis limpia con un flujo de trabajo basado en texto, diseño minimalista y especificación de lenguaje claro.
  • Soporte explícito para programación concurrente y funcional.
  • De prototipado y desarrollo rápido.
  • Amplio set de herramientas de desarrollo como testing, linting, debugging, code coverage, race detector, profiling y modules. Todo esto incorporado.
  • Amplia gama de paquetes y librerías.
  • Excelente documentación y recursos disponibles.
  • Comunidad amplia y en crecimiento continuo.
  • Curva de aprendizaje baja si vienes de lenguajes de tipado dinámico como Javascript, Python, Ruby, PHP o similares. Algunos proyectos escritos en Go:
  • Docker
  • Vitess
  • Kubernetes
  • Traefik Proxy
  • InfluxDB
  • Entre muchos otros

Compañías usando actualmente Go alrededor del mundo (en inglés)

Rust - https://www.rust-lang.org/

  • Rust es un lenguaje de propósito general que puede usarse para cualquier finalidad.
  • Es un lenguaje de programación de sistemas de tipado estático y compilado.
  • Combina la potencia y control a bajo nivel de C/C++ con la seguridad de la memoria (memory safety) y la seguridad de hilos (threads safety).
  • Puede considerarse una alternativa a C/C++.
  • Compila directamente a código de maquina.
  • No posee un recolector de basura (GC).
  • Rust se asegura de que tu programa es libre de los típicos bugs de gestión de memoria como null pointers dereferences, double frees, dangling pointers y similares. Todo esto en tiempo de compilación.
  • Es multiparadigma.
  • Soporte de concurrencia y paralelismo incorporados.
  • Es multiplataforma (GNU/Linux, Windows, Mac).
  • Comunidad en crecimiento continuo.
  • Documentación regularmente buena pero en constante actualización.
  • Gama media de paquetes y librerías.
  • Amplio set de herramientas de desarrollo como testing, linting, code coverage, debugging, profiling, gestor de paquetes.
  • Curva de aprendizaje medio/alto incluso si vienes de lenguajes de tipado dinámico como Javascript, Python, Ruby, PHP, etc.

Algunos proyectos escritos en Rust:

Conclusión

Yo desarrollo en ambos lenguajes y debo decir que realmente me place ver los resultados.

Respuestas relacionadas