Veliki broj naučnih softverskih projekata počinje neobičnim kompromisom. Istraživaču je potreban jezik u kojem može brzo da napiše matematički model, ali kada model postane dovoljno velik, program radi presporo. Rešenje je često bilo da naučnik prototip napiše u jednom jednostavnom jeziku, a zatim angažuje programera da kritične delove ponovo napiše u mnogo bržem, ali složenijem jeziku poput C-a. Grupa istraživača na MIT-u bila je toliko frustrirana tim obrascem da je oko 2009. godine počela da razmenjuje mejlove o tome kako bi izgledao jezik koji je istovremeno lak za naučnika i dovoljno brz za ozbiljne proračune. Iz tih razgovora nastala je Julia. MIT News je 31. avgusta objavio retrospektivu projekta koji je iz malog istraživačkog eksperimenta prerastao u globalni open-source programski jezik sa više od milion korisnika.
Osnovna ambicija zvučala je gotovo previše dobro: napraviti nešto što se koristi lako poput Pythona ili MATLAB-a, a može da postiže performanse bliske C-u. Julia to pokušava da ostvari načinom na koji kompajlira kod tek kada zna sa kakvim tipom podataka radi. Takva „just-in-time“ kompilacija omogućava da naučnik piše relativno visok nivo matematičkog koda, dok sistem u pozadini pravi vrlo specijalizovanu mašinsku verziju za konkretan proračun. Upravo ta kombinacija učinila je jezik popularnim u oblastima gde jedna simulacija može da obuhvati milione matematičkih operacija – fizici, ekonomiji, farmaciji, klimatologiji, robotici i inženjerstvu.
Lista stvarnih primena danas je mnogo šira nego što su tvorci očekivali kada su jezik javno predstavili 2012. godine. Julia se koristila za modelovanje poluprovodnika, neuronskih mreža, trkačkih automobila, avionskih sistema, klime i okeana, analizu moždane aktivnosti i obradu astronomskih podataka. Programi napisani u njoj korišćeni su i pri farmaceutskom modelovanju tokom razvoja vakcina, dok je jedan sistem za izbegavanje sudara aviona radio višestruko brže od ranijeg rešenja. Zanimljiva je i činjenica da su pojedine kompanije koristile Juliju za razvoj audio kodeka, što pokazuje da se jezik od naučnog alata postepeno proširio u industriju.
Najnoviji korak JuliaHub ekosistema ide još dalje i pokušava da spoji programski jezik sa AI agentima za inženjersko projektovanje. Ideja je da inženjer ne mora ručno da povezuje desetine simulacija, već može da unese tehničke podatke i dozvoli sistemu da predlaže dizajn, proverava fiziku, izvodi proračune i otkriva neispravna rešenja. To još nije dugme „napravi mi avion“ u doslovnom smislu, ali pravac je jasan – kod se sve više povlači u pozadinu, dok korisnik opisuje problem na nivou fizike i cilja. Priča o Juliji zato je zanimljiva i izvan programiranja. Pokazuje da neki od najuspešnijih tehnoloških proizvoda ne nastaju zato što neko unapred vidi ogromno tržište, već zato što grupa ljudi toliko ne voli postojeći alat da odluči da napravi bolji za sopstveni posao. A onda se ispostavi da isti problem ima još milion ljudi.
S.B.
















