Golang backend recent popularity

Lately (in the last few months) I’ve noticed a big surge in Golang Back-End jobs on the EU market. Almost any type of business - outsourcing, fintech, devtools, big tech, etc - is hiring Go engineers. I’ve even noticed some big enterprises that previously relied heavily on Java started posting Go positions.

I’ve only done very basic stuff in Go, so I’d like to hear some opinions. What makes Go so attractive for businesses and why do you think it got particularly popular in the EU recently?

https://www.reddit.com/r/golang/comments/1f1zp9n/golang_backend_recent_popularity/

Și pe mine mă tentează, cum am un pic de timp liber, să mă bag un pic pe golang.

Atracția e deploymentul simplificat mă gândesc. Faci economie pe partea de devops.

1 Like

In general Go nu le place celor ce au invatat C# sau Java.

Cand lipseau genericele era grav. Mie personal nu imi place go fiindca e mult prea diferit de TypeScript, as alege C# sau Kotlin inainte de go daca nu ma intereseaza sa fie ceva binar compilat rapid.

In rest cum integrarea cu AI e pe val python e cam cea mai simpla alegere.

Eu in ultimii 2 ani am migrat de la Go la Python. Bine, mai folosesc si Go dar ocazional. Asa cum a zis @Emanuel_Gug castigi mult la deploy si e exceptional pe partea de microservicii si concurenta. Dar, asa cum zice si @isti37 integrarea cu AI si nu numai face Python mai potrivit pentru cele mai multe aplicatii decat multe alte limbaje.

4 Likes

Care-i legatura cu “integrarea AI”?

Doar nu ai 5 randuri de cod specific unui backend si urmatoarele 5 pentru antrenat modele.

Probleme separate rezolvate cu tehnologii specifice.

Eu a trebuit sa folosesc Python deoarece cei de la OpenAI (Whisper) nu ofera decat librarie pentru Python si alternativele nu sunt la fel de bune… A trebuit sa rulez cod Python in Rust din moment ce libraria Rust nu mergea deloc bine.

Am impresia ca situatia e la fel la alte lucruri legate de AI

1 Like

eu credeam că s-a spart bula asta cu AI…

2 Likes

Izolata interactiunea cu OpenAI intr-un serviciu scris in python si apelat din Go/Rust/whatever.

Ahh nu, ma refer la faptul ca librariile sunt predominant in Python oferite

Cred ca depinde ce fel de AI… Astept sa se sparga bula asta de AI chatbot care face de toate. Dar cele specializate sunt chiar utile

Eu am lucrat in ultimii 4 ani 70% Go, restul Python si Java. Din punctul meu de vedere, as alege oricand Go in detrimentul celorlalte. Exista si exceptii cum ar fi Python si AI. Java pentru anumite enterprise apps unde vei gasi o gramada librarii/biblioteci care iti vor face viata mai usoara. Notable mention pentru C# pentru cei care sunt in Microsoft world.

Acum 1 luna a trebuit sa fac un CLI. PoC-ul cu cateva use cases il facusem in Go in cateva ore. Fisierul avea 2MB si nicio dependinta. Cand a trebuit sa scriu production code, cumva am ajuns la concluzia ca ar trebui facut in java. A durat 1 luna, fisierul avea 30MB pentru circa 1500 loc si chinuiala mare ca nu reusam sa fac native binary sa mearga deloc. Aveam segfault dupa segfault (Daca mai aud argumente ca if err!= nil din Go e o idee proasta si ca try catch e acest construct superior trimis de Dumnezeu tatal, inseamna ca …well mai bine ma abtin).

Am rezolvat pana la urma…nu insa fara durere. Pana la urma si java e un limbaj bun. Nu pentru CLI insa.

De unde cresterea in popularitate? Nu am date concrete. Eu unu va zic ce apreciez eu: simplitatea limbajului, faptul ca 1 lucru se poate face intr-un singur fel (de obicei) duce la discutii mult simplificate pe code reviews, faptul ca pot sa citesc si sa inteleg acel cod la orice ora din zi pentru ca tot codul arata la fel datorita automatic formatter. Sa nu mai zic de alte features gen concurrency. Si sa nu mai zic de lipsa multor features inutile care face cognitive load din capul meu sa fie mult mai suportabil decat alte limbaje.
Debugging go code e o experienta mult mai placuta in comparatie cu alte limbaje.

E un limbaj perfect? Hell no! Multe lucruri pot fi imbunatatite de la enums la nil pointer dereference check by compiler.

In versiunea 1.20 aveau o propunere foarte misto numita Memory Arenas. Care in teorie putea imbunatati semnificativ performanta reducand semnificativ numarul de memory allocations/de-allocations la runtime. Nu s-a avansat insa cu chestia asta…dar am semnale ca vor fi features similare in viitor, in teorie mai stabile si mai usor de folosit decat arenas.

Go e super rapid, consuma memorie foarte putina in comparatie cu alte limbaje si poti fi productiv cu el foarte repede. Nu e la fel de rapid ca alte limbaje, in special limbaje fara garbage collector, dar alea au alte use cases.

Se preteaza foarte bine pentru Cloud & Network services, DevOps/SRE/Infra work, CLI si vad ca vine din urma si pe partea de web development( htmx :heart: ).
Pentru mine nu e o surpriza ca e in crestere, iar din informatiile pe care le am o sa continue sa creasca in zonele astea pentru ca sunt multe proiecte si propuneri cu Go.

3 Likes