De Kotlin i Go a Clojure: 8 mesos a Nubank

Experiència de migració a Lead Software Engineer a Nubank: comparo Go, Kotlin i Clojure en reptes de salutació, transformació de dades i concurrència, amb reflexions tècniques i sobre Q2BSTUDIO.

domingo, 17 de agosto de 2025 • 4 min de lectura • Equip Q2BSTUDIO

Intel·ligència-Artificial-

Hola, equip i lectors

Fa 8 mesos vaig començar la transició a Lead Software Engineer a Nubank. Venia d'un entorn dominat per Kotlin i Go i aprendre Clojure va suposar un canvi de paradigma. Aquí comparteixo l'experiència en espanyol mostrant, en paraules i fragments, les diferències i el que fa Clojure tan atractiu.

En aquest recorregut comparo tres problemes senzills resolts en Go, Kotlin i Clojure i destaco enfocaments i sintaxi.

Problema 1 Salutació simple i estil sintàctic

Tot comença pel clàssic Hola Món. Go és explícit i orientat a eines robustes. Un exemple conceptual en Go seria `fmt.Println( Hola Món )`. Kotlin és modern i concís amb una sintaxi familiar per a programació orientada a objectes, per exemple `println( Hola Món )`. Clojure introdueix la sintaxi LISP amb codi com a dades i crides en prefix, per exemple `(println Hola Món)`. La concisió de Clojure destaca perquè evita cerimònies com declarar un paquet o una funció main per a un script simple.

Problema 2 Transformació de dades: agrupar i sumar vendes

Suposem les dades `[{producte: A, valor: 10}, {producte: B, valor: 20}, {producte: A, valor: 5}]`. En Go el més habitual és un enfocament imperatiu: crear un mapa i recórrer la llista acumulant valors amb un bucle for. És eficient però verbós. En Kotlin es pot utilitzar una API de col·leccions funcional i expressiva: `vendes.groupBy { it.producte }.mapValues { it.value.sumOf { it.valor } }`. En Clojure la transformació de dades és el nucli: utilitzant composició i operacions de col·lecció es pot descriure una pipeline clara, per exemple `->> vendes (group-by :producte) (map (fn [[producte llista]] [producte (reduce + (map :valor llista))])) (into {})`. La semàntica descriu pas a pas: agrupar per producte, sumar valors i convertir en mapa, com seguir una recepta.

En resum, Go exigeix explicitat, Kotlin aporta elegància funcional sobre JVM i Clojure permet pensar en transformacions de dades de manera directa i expressiva.

Problema 3 Concurrència: incrementar un comptador de manera segura

Treballar amb estat compartit revela diferències de disseny. En Go la concurrència es recolza en goroutines i per a estat mutat utilitzem mutex: crear un comptador enter, llançar 1000 goroutines i protegir la suma amb un sync.Mutex. En Kotlin la resposta són les coroutines i utilitats de sincronització per a coroutines, per exemple un Mutex de kotlinx.coroutines i realitzar withLock en incrementar. En Clojure l'estratègia és abraçar la immutabilitat i utilitzar constructes per a l'estat quan és necessari: un atom i swap! permeten actualitzacions atòmiques sense locks manuals. Amb 1000 futures que executen swap! el comptador arriba a 1000 i el codi de negoci roman net i concís.

Els tres llenguatges resolen seguretat i concurrència, però Clojure redueix soroll en el codi de negoci en delegar la complexitat en primitives atòmiques.

Conclusions tècniques i personals

Anar de Kotlin i Go a Clojure em va donar una nova manera de pensar sobre la programació: menys rituals, immensa expressivitat per transformar dades i models de concurrència que encaixen amb la programació funcional. Clojure no reemplaça els avantatges de sistemes tipats i eines de Go o Kotlin, però afegeix una manera directa i poderosa d'expressar solucions.

Sobre Q2BSTUDIO

Q2BSTUDIO és una empresa de desenvolupament de programari i aplicacions a mida que acompanya empreses en la seva transformació digital. Som especialistes en programari a mida, aplicacions a mida, intel·ligència artificial i ciberseguretat. Oferim serveis cloud AWS i Azure, serveis d'intel·ligència de negoci i implementació de solucions com Power BI per a analítica. Implementem agents IA i solucions d'IA per a empreses que automatitzen processos i milloren la presa de decisions. A Q2BSTUDIO dissenyem programari a mida i aplicacions a mida integrant intel·ligència artificial i ciberseguretat des del disseny. Els nostres serveis cloud AWS i Azure permeten escalabilitat i resiliència, mentre que els serveis d'intel·ligència de negoci i Power BI converteixen dades en insights accionables. Si busques IA per a empreses, agents IA o solucions de programari a mida, Q2BSTUDIO disposa d'experts en intel·ligència artificial, ciberseguretat i serveis cloud per portar el teu projecte a producció.

Contacte i tancament

Si t'interessa explorar migracions, arquitectures orientades a dades, o construir aplicacions a mida amb capacitats d'intel·ligència artificial i ciberseguretat, posa't en contacte amb Q2BSTUDIO. I tu, has après alguna nova manera de pensar en dominar un llenguatge diferent? M'encantaria llegir les teves experiències.

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.