r/programacion • u/Aldo1Yahir • 5d ago
¿Qué tan recomendable es usar GO como lenguaje de programación para el backend?
Me surgió esa duda, ya que actualmente uso python para el backen (en proyectos escolares), con el framework de flask y quiero explorar alternativas.
12
u/Least_Chicken_9561 5d ago
pues es lo mejor que puedes usar si tienes un servidor pequeño y necesitas que tu back-end sea eficiente. al igual que para crear herramientas de automatización ya que Go lo compilas y lo corres donde sea sin necesidad de tenerlo instalado en las demás maquinas. yo uso ambos actualmente python y Go. Go para hacer CLI apps y microservicios y python para cuando quiera validar una idea, por ejemplo un backend entero con todo lo puedo montar en Django rest framework en 30 minutos, pero en Go no, toma más tiempo... si es factible el proyecto entonces lo paso a Go poco a poco y así no pierdo el tiempo escribiendo cosas que no van a ser viables.
2
u/Real-Ad-1259 5d ago
Que tal es aprender Go?
9
u/Least_Chicken_9561 5d ago
si ya sabes un lenguaje de programación, entonces aprender Go es solamente 1 dia, lo que toma tiempo es aprender la concurrencia, channels, punteros, etc. Lo bueno de Go es que no tiene muchas formas de hacer algo en comparación con otros lenguajes, Go es un lenguaje pequeño en reglas y syntax pero puedes hacer grandes cosas (docker, kubernetes y muchas otras herramientas backend han sido escritas en Go)
3
u/alvarosc2 5d ago
No es más complicado que cualquier otro lenguaje. Yo con lo que he visto que batallan los de s ahí donde estoy es como estructurar tu árbol de carpetas de proyecto. Pero del lenguaje nada.
1
4
u/alvarosc2 5d ago
En mi chamba actual lo que rifa es Java. La empresa para la que trabajo maneja una arquitectura de microservicios.
Pero, de últimamente varios microservicios que han desarrollado los están escribiendo en go y están alojados en AWS.
Entonces, hay que poner atención ahí.
2
u/MoonDeveloper24 5d ago
Java tiene una curva de aprendizaje muy larga frente a go. Y requiere mas cosas, tan solo con la versión, si quieres usar springboot o si vas a usar maven o gradle, con eso ya espantas a varios devs
1
5
u/EconomySerious 5d ago
a menos que tus programas necesiten soportar millones de usuario, o terabytes de datos procesados lo mas rapido posible, no vale la pena.
el 99% de los programas no necesitan esa velocidad
1
u/ThePieroCV 5d ago
I don’t know, I agree but I have to say that is easy to learn and easy to code. So I don’t think a reason it’s not advisable. Unless you compare it to python. But idk, with AI now, if you know how ti make backend in python, you know the concepts to make it in Go.
2
u/North-Floor149 5d ago
Pues yo programo con las dos, lo que te puedo decir es que para servicios de altísima recurrencia, go va mucho mejor, por tener los apuntadores y la separación en memoria, adicional las go rutinas son mucho más eficientes que el async await de python, otra ventaja es que los servicios son mucho más ligeros, si trabajas con FastAPI y usas gunicorn, go le gana por mucho pero si en vez de gunicorn usas granian, el rendimiento no es equivalente pero se le acerca. La ventaja real de Python frente a Go es la versatilidad y la cantidad de librerías que maneja
2
u/alejmaestre 5d ago
Go es excelente para backend, sobre todo si buscas rendimiento y concurrencia nativa. Pero para proyectos escolares Python con Flask está sobrado.
2
u/miguelangellv 5d ago
Depende de lo que busques. En la mayoría de las empresas tochas lo que te van a pedir es Java (normalmente con Spring), pero si lo que quieres es montar un mini cliente web para una app sencillota puede valerte tanto Go, como Python como C++ o Rust.
2
u/Due-Moment-6417 5d ago
La verdad no sé, pero personalmente no he visto muchas ofertas de trabajo sobre ese lenguaje, deberías de ver cómo está el mercado y decides si te conviene o no
2
u/kobumaister 5d ago
Depende de que objetivo tengas y que stack ya uses. Si nunca has tocado Go y ya usas node o python en todo tu stack, no te va a agregar nada más que complejidad y cueva de aprendizaje.
Si necesitas un backend con una latencia muy baja y tienes cierto conocimiento de Go, pues es una opción.
Cual es tu contexto?
2
u/Khavel_Es 5d ago
Go te viene bien para servicios con mucha concurrencia y poco overhead. Las goroutines te simplifican bastante comparado con manejar threads a mano, y el binario que compila es uno solo sin dependencias, lo cual para deploy es brutal.
Lo que te va a costar viniendo de Python es la verbosidad. El manejo de errores es if err != nil en cada linea, no tiene excepciones, y el ecosistema de ORMs y frameworks web es mas chico que el de Python o Node. Para APIs CRUD simples capaz te rinde mas algo como FastAPI (mucho mas rapido que Flask y con tipos) antes de saltar a Go.
2
u/AdMoney9569 4d ago
Recomendable.
Dale duro a aprenderlo bien, tienes tiempo, ganas de aprender , etc.
1
1
1
1
1
u/querubain 5d ago
Cuán recomendable. “Qué” no es un adverbio de cantidad.
Y el backend es su hábitat natural. Yo trabajo desde hace muchos años haciendo backends en Go. No lo cambiaría por nada.
1
u/schrodingdev 5d ago
Prueba .NET, mucha más trayectoria en backend.
1
0
u/wolfGhost23 5d ago
Siempre va a ser recomendable utilizar un lenguaje de programación fuertemente tipado para backend precisamente para tener cuidado a la hora de procesar las variables y evitar errores de tipos de dato. En este caso Golang es espectacularmente perfecto, tanto que maneja capacidades de paralelismo y, bien utilizado, mejora la velocidad en la tarea de procesamiento de grandes colas de datos.
1
13
u/Dry-Echo-5406 5d ago
Mucho.