Si estas considerando ser un desarrollador Web Backend, quizas ya sepas que una de las primeras cosas que debes hacer es dominar un lenguaje de programación del lado del servidor, por lo que quizas tambien ya notaste que no hay un solo lenguaje sino que puedes encontrarte una variedad mucho más amplia, asi que te puedes estar preguntando, ¿Cual lenguaje de programacion debo aprender?.
Bueno en este video vamos a ver que es lo que ofrecen estos lenguajes de programación, que son muy populares y que puedes considerar aprender si quieres ser un Desarrollador Web Backend.
Entre los lenguajes de programación de Backend más populares podemos encontrar a Javascript, PHP, C#, Java, Go, Ruby, y Rust.
Empecemos por Javascript.
Javascript
JavaScript actualmente es uno de lenguajes de programacion para crear aplicaciones web mas populares, principalmente porque mas que un lenguaje es practicamente un estandar para cear aplicaciones para el navegador, es decir que si quieres crear cualquier tipo de aplicacion Frontend debes saberlo, y por esto mismo, muchos desarrolladores que ya saben Frontend, deciden tambien aprender Javascript pero aplicarlo al backend, lo que les permite pasar todo sus conocimiento de Javascript al Backend, y lo que tambien les permite pasar a ser desarrolladores Web Fullstack.
Y la razon de que tengamos tambien a Javascript para crear aplicaciones Backend, es porque existen programas que permiten ejecutar a Javascript fuera del navegador, los cuales son llamados entornos de ejecucion, siendo el mas popular aqui Nodejs.
Asi que si ya sabes frontend, y quieres conocer el Backend, es muy recomendado empezar con Nodejs, o lo que es lo mismo Javascript para Backend.
Nodejs de por si es Single Thread, y soporta concurrencia pero lo hace distinto a otros lenguajes usando un Event Loop y Operacion de entrada y salida no bloqueantes.
En la práctica no se crean aplicaciones con solo paquetes de Nodejs sino que se usan Frameworks de Backend que simplifican el desarrollo, por lo que si vas a dedicarte al desarrollo backend con Nodejs, es probable que terminaras aprendiendo a uar Frameworks como Express, Fastify, Nestjs junto a otras herramientas como Typescript, Jest, Swagger, ORMs, y demas.
Y una de las mayores ventajas de Javascript como lenguaje de Backend es que se pueden usar los mismos paquetes o biblitoecas de Frontend tambien en el back, o hay veces que los paquetes son desarrollados para funcionar en todos estos entornos, por ejemplo bibliotecas de validaciones, conversion de tipos de datos, bibliotecas HTTP, entre otros bibiliotecas.
Así que si quieres aprender Backend pero luego quieres aprender mucho más del desarrollo web, quizas para convertirte en fullstack, Este lenguaje es una buena opcion.
PHP
A pesar que la popularidad de PHP durante los años ha decaido, este sigue siendo aun bastante usada, y sigue siendo una buena opcion al dia de hoy como lenguaje de programacion Backend.
De hecho el CMS mas popular para crear aplicaicones web, como lo es Wordpress, esta escrito en este lenguaje, y cuando se necesita modificar un sitio, crear un template, o crear un plugin para este CMS, es necesario saber PHP, por lo que hace preveer que lo seguiremos viendo a muchos años mas tarde.
Aunque PHP no solo es Wordpres, tambien porque tambien hay otros CMS como Prestashop, Magento y simiares que tambien estan escritos en PHP y muchas webs lo usan para tener una tienda online, o por otro lado tambien hay mucho codigo escrito por empresas en este lenguaje, usando sus Frameworks, siendo uno de sus frameworks mas populares, Laravel, el cual ofrece muchas facilidades para crear aplicaciones profesionales un muy poco tiempo
Aunque si vas a decidirte por este lenguaje, en lo personal te aconsejaria estudiarlo correctamente, porque al ser un lenguaje muy antiguo, puede que encuentres tutoriales desactualizados o con muchos años atras, lo que hace que sea dificil estar al tanto de como usarlo mas facilmente. Ademas al ser un lenguaje batante antiguo, es posible que tambien te encuentres mucho codigo de versiones anteriores en proyectos reales.
Como lenguje PHP tambien ofrece la capacidad de multithreading, y su rendimiento de las aplicaciones de PHP es bastante decente, sin embargo no es tan rapido como sus competidores para crear aplicacioens que solo sean Backend con alta demanda, en donde aqui brillaria mas lenguajes como Go o Rust por ejemplo
Pero si lo tuyo no es solo crear apliaciones backend, sino fullstack, en donde vas a interactuar con interfaces graficas o vas a crear aplicaciones dinamicas como dashboards o aplicaciones que tambien tinen algun landing y asi. Para esto casos PHP sigue siendo una buena opcion.
C#
C# es el lenguaje más promovido del ecossitema de Microsoft, por lo que si quieres crear aplicaciones del sistema operativo Windows, juegos de Xbox, y por supuesto aplicaciones web Backend a nivel empresarial, este es la mejor forma de lograrlo.
Este es un lenguaje que no genera programas tan veloces como Rust o C++, sin embargo la experiencia de usuario es muy comoda que ademas soporta programacion asincrona, y Multhihreading, e incluso prove cierto control sobre memoria, lo que no es tan comun de encontrar en lenguajes de alto nivel, y lo que tambien permite a su vez la posibilidad de hacer muchas optimizaciones en programas.
Este lenguaje es orientado a objetos por defecto por lo que tambien funciona muy bien cuando se tiene que escalar proyectos, ademas que posee Frameworks que ya posee un buen grado de seguridad y una buena experiencia de desarrollo como lo ASP.NET Core o Blazor
Y Aunque su sintaxis no es tan simple como otros lenguajes e incluso es mucho más verboso, por lo que tienes que escribir más para hacer lo que en otros lenguaje, sus herramientas ayudan a producir código rapidamente, y tambien puede ser una opcion como primer lenguaje al haber mucha información. De hecho si llegas a estudiar en la universidad puede llegar a ser tu primer lenguaje
Por supuesto C# tiena una integracion muy buena con editores y IDEs de Microsoft como lo son Visual Studio y Visual Studio Code (que aunque estos dos programas suenen igual, no son lo mismo, de hecho ya he creado un video del tema)
El entorno tipico para trabajar con C# no esta tan relacionado al mundo de las Startups, sino mas al mundo empresarial de empresas que ya usan tecnologia de Microsoft como son bancos, universidad y entidades del gobierno, asi que si aprendes este lenguaje es muy probable que acabes en este tipo de instituciones
Java
A pesar que ha muchos desarrolladores no les gusta este lenguaje, Java es uno de los lenguaje mas populares actualmente para desarrollo backend a nivel empresarial similar de hecho a lo que ofrece C#, siendo este su competidor directo por esto
Por lo que muchas veces es comparado con C# y sus herramientas
Este lenguaje provee soporte multithreading sin embargo no es tan eficiente como el Multhihreading tradicional, Y comunmente tambien se le conoce como un lenguaje que crea programas que consuman mucha memoria
Y al ser un lenguaje que posee strong type safety, y memory safety, ayuda a generar una entorno de desarrollo donde los fallos se encuentran en desarrollo y no cuando la aplicacion esta funcionando, aunque esto es lo mismo para todos los lenguajes de tipado fuerte
Java Es relativamente facil de aprender, y al igual que C# tambien es muy verboso, pero es una vez aprendido sus bases puedes ser muy productivo gracias a que hay mucha herramientas para generar codigo rapidamente. De hecho asi como C# tiene a visual Studio, Java tiene a Intellij IDEA que tambien es un IDE moderno y la empresa que crea este editor crea todos sus productos usando Java principalmente.
Y Al dia de hoy es un enguaje muy usado en entornos empresariales, gracias a su Fraemework de backend mas popular llamado Spring Boot, el cual esta pensando para trabajar en proyectos grandes que pueden escalar a cualquier tamaño.
Go
Go es un lenguaje moderno que fue creado por Google, especificamente para crear aplicaciones de Red y aplicaciones backend con una sintaxis simple pero que asu vez tenga tipado estatico, sea compildo y la experiencia de desarrollo sea muy buena, por lo que tiene sentido que al dia de hoy sea uno de los mejores lenguajes para dedicarse al Backend.
En go tipicamente se prefiere usar solo la biblioteca estandar para crear aplicaciones y se evita en lo posible el usar Frameworks, por lo que la biblioteca estandar practicamente ofrece la mayoria de funcionalidades que necesitaras en un proyecto
Gracias a esto tambien, Go produce programas ligeros y rapidos, y es uno de los lenguajes que tiene el tiempo de compilacion mas rapido actualmente,
Provee la posibilidad del Multhihreading y tambien el uso de punteros. Aunque sus punteros y su garbage collection siempre han sido criticados al no ofrecer el mismo grado de control que los de C o C++ por ejemplo. auqnue esto no es un problema muy notorio en la mayoria de aplicaciones ya que de nuevo el objetivo de GO no es crear sistemas operativos sino aplicaciones de REd y Backend
Este lenguaje se usa tipicamente en arqutiecturas de microservicios, con protocolos como gRPC, o para crear aplicaciones de red como Docker, Kubernetes o Terraform que son herramientas muy populares de la nube y que estan creadas en este lenguaje
los programas en GO son altamente escalable, y es posible aprender Go como lenguaje backend siempre y cuando ya se haya trabajado con un lenguaje previo antes, de hecho es mucho mas accesible dominar el backend co GO despues de haber pasado con lenguajes como Javasript o Python en mi opinio y se quiere asar a un lenguaje de tipado estatico en el backend que sea muy demando en esta area. sobretodo si te quieres especializar con un lenguaje moderno.
Python
Posee una de las comunidades de programadores más grandes actualmente, siendo su entorno mas llamativo este ultimo año la inteligencia artificial, sin embargo tambien es popular usarlo para rcear aplicaciones backend
Y Python no es tan rapido como los otros lenguajes pero su sintaxis simple, y la facilidad con la que se escribe y lee codigo,lo hace que sea uno de los lenguajes favoritos de muchos, lo que tambien lo hace una buena opcion para empesar a aprender a programar y a su vez a ser un desarrollador web backend.
Python ofrece multithreading aunque con limitaciones, lo que significa que el CPU no puede funcionar con su capacidad maxima eficiencia
Tipicamente es un lenguaje de backend bastante usado sobre todo en proyectos donde estan ejecutando modelos inteligentes, esto es asi porque Python es un lenguaje muy utilizado en inteligencia artificial, y cuano se necesita crear una API para que se puedan acceder a estos modelos inteligentes desde otra app es normal que se escoja el mismo lenguaje para crear su Backend
Y Este lenguaje puede ser usado para mucho mas, pero cuando quieras obtener un trabajo es una buena idea especializarte en un area, y a partid de alli ir conociendo otras areas.
Puedes emepzar como desarrollador Web Backend y despues estuidar Machine Learning y a partir de alli ir ampliando tus conocimientos por ejemplo. Por supuesto en los otros lenguajes tambien hay paquetes de machine learning y frameworks, pero no hay comparacion a lo que tiene el ecosistema de Python en esta area
El framework mas popular de Python es Django, sin embargo muchas veces encontraras tambien frameworks como FastAPI o Flask siendo usado con modelos inteligentes, frameworks de machine learning o junto con aplicaciones de analisis de datos.
Ruby
A pesar que Ruby no se le mencione mucho, este aun sigue siendo un lenguaje que sigue siendo muy usado y posee muchas biblioteas de desarrollo web backend que permiten crear apliaciones Backend de producción de una forma muy rapida, al dia de hoy es usado en ecommerce por plataformas como Shopify, o por CMS como Discourse por ejemplo
y aunque su multithreading es mas lento que en otros lenguajes, de hecho Ruby es uno de los lenguajes mas lentos en esta lista, y es compicado de llegar a escalarlo. Gracias a su Framework Ruby on Rails, es posible crear aplicaciones de forma muy rapida sobretodo en Startups donde necesitan prototipar un proyecto lo mas pronto posible.
Por lo que al dia de hoy Ruby aun sigue estando activo, y al ser un lenguaje que se enfoca en la legibilidad al igul que pyhton lo hace muy simple de crear un producto en poco tiempo.
Rust
Rust es un lenguaje moderno que tiene una comunidades mas activadas en Internet actualmente, y a pesar que es un lenguaje de nivel de sitemas que tipicamente es comparado con C o C++, y que por lo general esos lenguajes son usados en programas como compiladores, intepretes, o hardware, aun asi tiene muchos modulos disponibles para hacer practicente lo mismo que en estos otros lenguajes de nivel alto, por lo que tambien se puede usar en el desarollo web backend.
De hecho Rust tiene una experiencia de desarrollo similar a lenguajes de alto nivel como tener su propio adminsitrador de paquetes similar a Nodejs, un sitio centralizado para buscar sus paquetes y toma inpsiracion de muchos lenguajes.
Y Rust es de lejos el lenguje mas rapido en esta lista, su manjeo de memoria es innovador, gracias a sus sitemas de borrow checker y tambien provee memory safety, admeas de proveer multithreading, lo que lo vuelve a sus progrmas faciles de escalar,
Rust no es un lenguaje orientado a objetos en el sentido tradicional, como C++ o Java, debido a que no utiliza conceptos como la herencia y el polimorfismo basado en clases. Sin embargo, Rust posee muchas características de otros lenguajes de programación, tanto orientados a objetos como funcionales, que le permiten ser extremadamente poderoso y flexible
Aunque es un lenguaje que es mucho mas complicado de escribir que los anteriores y su curva de aprendizaje es mucho más alta.
Para dominar Rust debes conocer mucho del manejo seguro de la memoria, y de su sistema de borrowchecker, aunque una vez aprendido puedes llegar a crear aplicacioens con un rendimient alto para mucho mas que solo backend, o practiamente desde aplicaciones para Hardware, compladoes,
actualmente en backend te puedes llegar a encontrar a Rust en algos servicios dentro de arquitecturas de microservicios, mas que todo un proyecto este escrito solamente en Rust, sin embargo es posible.
De hecho tambien puedes encontrar frameworks siendo la mayoria de estos muy rapidos como puede ser su Framework Actix Web.
En fin como puedes ver estos son los lengujaes mas populares, no quiere decir que no hayan mas, porque otros tambien que podria mencionar seria
- Elixir
- Haskell
- Lua
- Dart
Sin embargo los que se mencionan aqui son faciles de empezar, son populares y puedes obtener un trabajo con estos.
Si quieres un lenguaje sencillo de aprender como primer lenguaje, podras ir por JavaScript, Pythono PHP, si ya conoces algo de programacion y quieres un lenguaje moderno de Backend, go es mi recomendacion, o si quieres trabajar para alguna empresa o instituacion grande como programador, C# o Java entran mucho mas acorde a estos ambitos, y si ya has trabajado con un lenguaje de nivel de sistemas como C o C++, Rust te será mucho más acorde y podras usar muchas ideas de lenguajes modernos en este.
La elección al final es tuya, asi que te recomiendo investigar mas a fondo cada uno y si tiene una duda puedes dejarlo en los comenario.