Prije točno dvije godine sam objavio prvu (javnu) verziju svoje Minimal Math Library (MML) biblioteke C++ klasa i funkcija za “numerical computing” … and boy, oh boy, dokle smo došli danas.
Nakon tog početka su objavljene i verzije MML 0.6, MML 0.7, MML 0.8, MML 0.9, a onda nakon “usiljenog marša”, 10. ožujka 2024. i verzija 1.0 … crown jewell.
Eh 🙄🤣.
Gledajući kako je to izgledalo iz današnje perspektive MML-a izgrađenog uz pomoć najboljih AI alata … izaziva podsmjeh.
No, to je bilo prije više od godinu i po dana i suočen s enormnošću količine programskog kôda koji je trebalo proizvesti da se Minimal Math Library dovede u poravnanje s mojom (mora se priznati, izuzetno ambicioznom) vizijom, posvetio sam se korištenju do tada implementiranog MML-a i krenuo u pisanje knjige – Exploring Physics with C++.
Realizacija mog ultimativnog sna.
Nakon starta, knjiga je prošla kroz verzije 0.2, 0.3, 0.4, i (za)stala na 0.5 sredinom srpnja, taman pred početak pravog ljeta … baš kad je postalo zanimljivo.
186 stranica (a u novoj verziji je već novih 20ak spremno) i to je nešto što definitivno planiram dovršiti.
No nakon ljeta su se pojavili čudesni poslovni izazovi, koji su me okupirali dobra tri mjeseca, tijekom kojih sam do kraja istražio mogućnosti AI agenata za pomoć pri programiranju, prvenstveno u Visual Studio Code IDE okruženju, i gotovo isključivo s Claude Sonnet 4.5 agentom (i Claude Opus 4.5 kad se pojavio ❤️ – ovi ostali su za golog đolenka u usporedbi s ova dva malca kapitalca), i to je bilo poprilično transformirajuće iskustvo.
Još se sjećam kad sam prije nekih godinu dana, tadašnjeg “top-of-the-class” GPT-4.1 agenta pitao da mi kreira implementaciju QuadraticSolver-a, dakle, rješenje polinoma četvrtog stupnja … i njegov fail je bio monumentalan 🤣.
Danas, godinu dana kasnije, Claude Opus 4.5 ne da taj kôd izbaci u pet sekundi, već zna (provjereno ;), napisati i solvera za nalaženje svojstvenih vrijednosti i svojstvenih vektora generalne realne matrice … što je poprilično impresivan poduhvat. I kad sam prije nekih mjesec i po, dva shvatio što sve moderni AI može, dok se istovremeno počeo bližiti kraj implementacije poslovnog projekta, rekoh … ajmo vidjeti dokle mogu dovesti MML s AI-jem.
A maaaalaaac … 😮💪
Dvjesto dolara troška na Github Copilotu i par stotina sati mog rada kasnije (pri čemu je moj rad prvenstveno bio idejni dizajn, slaganje cijele arhitekture i verifikacija da je AI stvarno napravio što sam mu rekao!), novi release MML-a je tu … i ČUDESAN JE ❤️❤️❤️.
Evo linka na Github repozitorij – https://github.com/zvanjak/MML

Popis key features (nisam ni znao da se u Markdownu može staviti ovako lijepe simbole … čovik uči dok je živ!).

Ono u čemu me AI posebno oduševio je u generiranju cross platform visualization alata, baziranih na FLTK-u i Qt-u na Linuxu (a koji rade i na Windowsima, ali tamo je ipak WPF car ;), čime je MML kao library prešao iz Windows-only u prave cross-platform vode 💪.

Jest da Qt pre-built visualizerima treba proper versioning, i jest da još u stvari to trebam pošteno istestirati na Macu (laptop je trenutno na posudbi kod sinčine), ali ako GCC 15 i Clang 21 to korektno buildaju na Linuxu, ne bi ni Mac trebao biti neki problem.
Istaknuti ću još i “flagship example” (kako ga je nazvao AI 🙂 … i dosta sam zadovoljan kako izgleda simulacija kolizije dva star clustera s po 100 “zvijezda” oko centralne “crne rupe” 😎.

S početnih 15-ak tisuća linija programskog kôda, MML.h je došao do impresivnih 50K (uz još 100K u testovima i potpornom kôdu) 💪💪💪.

Da sam sve to išao sam pisati, bez pomoći AI agenta, na starinski način, s Googleom i Stackoverflowom kao glavnim pomagačima, trebalo bi mi minimalno godinu dana, a vrlo vjerojatno i dulje! Pri čemu bi kvaliteta kôda sigurno bila lošija, a ovako detaljnu dokumentaciju u stvari ne bih napravio nikad.
Ali … svi oni koji misle “aaa, developeri su osuđeni na propast, sav kôd će pisati AI” su u teeeškoooj zabludi (isto kao i svi oni investitori koji su u AI hype uložili stotine milijardi dolara), jer u cijelom tom procesu generiranja kôda od strane AI-ja, moja uloga je bila KLJUČNA!
Stotine i tisuće promptova, ali još puno važnije od toga – stotine donesenih odluka, stotine i stotine ukazivanja AI-ju da je napravio grešku i krenuo krivim putem … da ne pričamo o desecima i desecima kontinuiranih refactoringa, apsolutno nužnih kako bi ta masa generiranog programskog kôda zadržala svoju internu konzistentnost i dizajn … naradio sam se ko sivonja.
No. bila je to posve drugačija vrsta developerskog rada nego prije par godina – bez kucanja kôda, ali zato mozak, prateći galopirajući AI, cijelo vrijeme radi na najjače, paralelno čitajući što AI izbacuje, radeći review onoga što je upravo završio, i pišući instrukcije za sljedeći prompt.
Intelektualno vrlo iscrpljujuće, ali istovremeno i čudesno ispunjavajuće iskustvo!
Nije još to ni blizu skroz gotovo, i imam u Todo listi puno daljnjih poboljšanja, ali ona osnovna vizija, da na početku svog C++ programa staviš #include “MML.h” i dobiješ na raspolaganje praktički sve što ti može zatrebati iz područja numeričkog izračunavanja, bez zajebancije s build sistemima i dodatnim dependencyima, i da to sve radi kako treba da se ti možeš posvetiti rješavanju svog problema … ta vizija je sad realnost.
Uz sav taj trud, dosta sam promišljao i o načinu licenciranja MML-a, i na kraju sam odlučio zadržati postojeći dual licensing model, pri čemu sam dosta zadovoljan kako mi je to AI posložio .

20 dolara za ovako čudesan library … navali narode dok nije nestalo 😎🤣.
Sumnjam da ću ih prodati puno, ali eto, za slučaj da se nekome MML pokaže koristan i za neki ozbiljniji posao, ili za slučaj da osobno-istraživački projekt preraste u nešto ozbiljnije i potencijalno komercijalno isplativo.
U svakom slučaju, moje čudesno dvogodišnje putovanje s MML-om se nastavlja, obnovio se i stari žar za rad na knjizi ❤️ (za koju se nadam da će procvjetati s novim MML-om), i baš me zanima kakav ću release pripremiti za iduću Staru Godinu.