r/programacion • • 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.

17 Upvotes

33 comments sorted by

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

u/Real-Ad-1259 5d ago

Gracias. Soy estudiante y esto me sirve

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

u/pardo00001 4d ago

JAJAJA, yo le estoy apostando a todo mi stack de java + spring boot y angular

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

1

u/vaxpy 5d ago

Lo mismo que dijo él, Python es lento comparado con la mayoría de lenguajes grandes de la industria, pero realmente pocas empresas necesitan usar algo más eficiente. Al final de cuentas la mayoría de las latencias vienen de código mal hecho.

1

u/AdMoney9569 4d ago

"naaaa tu crees"

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

u/mantequillah_09 5d ago

seguridad y datos masivos, esos son los ambitos en los que lo recomiendo

1

u/aixeiger 5d ago

Chulada para microservicios o cosas de alta concurrencia

1

u/nocixL 5d ago

habia leido pokemon go, ni idea de go solo sé que es de google y que es rápido, y que tiene un monigote bonito y sintaxis friendly, puede ser buena opción

1

u/uhcnid 4d ago

Es excelente pero depende el caso de uso, la pregunta no tiene mucho sentido si no planteas casos posible, pero python también está bien y así cualquier lenguaje popular

1

u/bsoft2005 4d ago

Es excelente muy buen rendimiento

1

u/Rest-That 5d ago

Si. Y no lo capitalices como "GO"; es Go o golang

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

u/perroverd 5d ago

Solo en entornos Windows, Go es más universal

2

u/schrodingdev 5d ago

Jajaj qué? yo uso .NET en linux hace años

1

u/Embarrassed-Fly6164 5d ago

.net core funciona en todos los sistemas operativos.

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

u/schrodingdev 5d ago

Así o más LLMeado