Wolfram research bi uskoro trebao predstaviti 3 nove usluge, od kojih je jedna programming cloud. To će biti platforma za programiranje u oblacima, te će vam odmah dozvoljavati da gotovu aplikaciju stavite u produkciju
Ako želite početi programirati, vrlo vjerojatno ćete se susresti sa problemom koji imaju svi početnici – koji jezik odabrati. No prije toga ćete morati vidjeti na koji način želite programirati – da li će to biti objektno orijentirano programiranje, funkcionalno programiranje, skriptno programiranje …? Što želite programirati – mobilne aplikacije, desktop aplikacije, web servise i web stranice? Mnogo je pitanja za one koji ulaze u svijet programiranja. A da ne govorimo da unutar svake navedene paradigme imate jako veliki izbor programskih jezika. Od onih koji su na „sceni“ već 30+ godina do nekih novih jezika kao što su Haskell, C#, Java … I onda se ljudi koji rade u Wolfram Researchu dosjete da bi i oni mogli napraviti još jedan programski jezik, s novom sintaksom koji će biti „high-level“, prilično apstraktan i navodno mnogo moćniji od postojećih programskih jezika. Kada kažemo moćniji, mislimo da ćete s malo linija kôda moći puno toga napraviti i da ćete na raspolaganju imati jako veliki broj već gotovih funkcija, odnosno metoda. Ovaj projekt se zove „Wolfram programming cloud“, no prije nego se pozabavimo istim, kratak uvod u Wolfram Alpha engine koji je kratko vrijeme s nama (op.a. svega pet godina), a već je mnogo toga ponudio korisnicima.
Wolfram Alpha
Wolfram Alpha je računalna baza znanja, točnije engine koji vam odgovara na gotovo sva pitanja koja postavite istome. Standardne tražilice poput Googlea, Yahooa, Binga … će vam ponuditi veliki broj web stranica na kojima možda postoji rješenje na pitanje koje ste postavili. Najčešće ćete naći rješenje, no morati ćete otvoriti nekoliko web stranica da biste dobili cjelokupan odgovor ili da bi ste našli točno ono što tražite. S druge strane, Wolfram Alpha će vam direktno odgovoriti na pitanje koje mu postavite bez preusmjeravanja na druge izvore. Ponekad odgovor nećete dobiti, no u velikom postotku budete. Od kuda točno uzimaju podatke ne znamo – vjerojatno se oslanjaju na svoju bazu koju su izradili tako što su „pokupili“ podatke sa drugih izvora – no znamo da su prilično točni i da niti jednom nismo bili razočarani dobivenim odgovorom. Osim što možete dobiti informaciju koja vas zanima, recimo koliki je BDP u Vietnamu (op.a. upišite u wolfram alpha „GDP vietnam“ pa ćete vidjeti što je dogovor na pitanje), možete mu postavljati i složena matematička pitanja na koja ćete dobiti odgovor sa kompletnim postupkom rješavanja. U startu se Wolfram Alpha prvenstveno i koristio za matematičke probleme, dok je kasnije postao jednostavno engine za odgovaranje na pitanja bilo koje vrste. Preporučamo vam samo da prvo pogledate sekciju „Examples“ koja vam pokazuje kako što konkretnije postaviti pitanje kako bi dobili kvalitetniji odgovor. Nažalost, Wolfram Alpha se danas ne koristi koliko bi se trebala koristiti. Većina Internet korisnika će u 95% slučajeva koristiti samo Google za pronalaženje odgovora, a mnogo puta ga neće dobiti ukoliko se radi o matematičkim ili financijskim problemima, dok bi ga preko ove stranice dobili u sekundi. No, nadajmo se da će se i to promijeniti. Kao što smo rekli, Wolfram je s nama tek nekoliko godina i vjerujemo da njegovo vrijeme tek dolazi.
Ostali Wolfram proizvodi
Kako biste shvatili pozadinu ove priče, moramo vas upoznati ukratko sa proizvodima koje Wolfram nudi. Oni se razvijaju već dugi niz godina, a na Internetu se nude 5 godina.
Mathematica – Wolfram Mathematica je definitivno najbolji alat za bilo kakve matematičke izračune. Nakon 25 godina razvoja pobjegao je konkurenciji toliko daleko da ih nitko u slijedećih 25 godina ne može stići. Ovaj proizvod vam nudi apsolutno sve ako se bavite bilo kakvim inženjerskim poslom ili jednostavno želite preko programiranja nešto napraviti, a tiče se upravo matematike, fizike, mehanike. Ono što vam Mathematica nudi je toliko veliki broj funkcija i mogućnosti da ju niti oni koji se bave isključivo matematikom neće moći u potpunosti svladati. Često se Mathematica koristi na fakultetima kao prvi programski jezik jer ima fantastičnu sintaksu, user friendly je i možete, kao što smo rekli, izračunati ili nacrtati bilo šta – bio to običan graf ili kompleksno geometrijsko tijelo.
Finance platform – Riječ je o vrlo moćnom alatu, a tiče se financija. Ovaj proizvod se oslanja na Mathematicu, točnije koristi Mathematicu u pozadini, dok korisniku nudi spektar vrlo korisnih alata. Ti alati vam mogu poslužiti za neke trivijalne stvari kao što su izračun kredita ili nešto kompleksnije što se koristi u modernom menadžmentu i ekonomiji. Grafovi, metode, tehnike – jako je puno toga i ne želimo nešto izdvajati, no što god pomislite možete riješiti sa ovim proizvodom. Ne shvaćamo zašto se baš u menadžmentu koriste neki drugi (specijalizirani) alati kada pružaju mnogo manje nego Wolframova financijska platforma.
SystemModeler – Ovaj je proizvod specijaliziran za 3D modeliranje, te bi trebao konkurirati raznim CAD proizvodima. U njemu možete napraviti apsolutno sve – od 3D vijka i matice do svemirske letjelice, kao i vršiti razne simulacije, izračune … SystemModeler se koristi prilično puno u raznim industrijama (auto industriji, avio industriji itd.), ali i u edukaciji na fakultetima povezanim sa mehanikom i strojarstvom. U svakom slučaju, riječ je o vrhunskom proizvodu.
To je to što se tiče postojećih Wolframovih alata. No ta tri alata su bili inspiracija za još 3 nova alata – Programming cloud (koji nas zanima), Discovery platform (platforma za istraživanje i razvoj koja bi se također trebala koristiti u raznim industrijama), te Data science platform (proizvod za one koji se bave znanošću povezanom sa podacima i rudarenjem istih). Wolfram Research ništa ne radi slučajno – svaki proizvod ima svoj put, te je podloga za neki drugi proizvod koji će doći u budućnosti.
Wolfram Programming cloud
Wolfram Programming Cloud sa nestrpljenjem očekuje šačica programera. Zašto to kažemo? Zato jer će od njega koristi imati oni koji programiraju specifične stvari. WPC sigurno neće koristiti programeri koji programiraju aplikacije za Android ili iPhone telefone, kao niti oni programeri koji rade desktop aplikacije za škole, bolnice, državu upravu … Korist od ovog jezika i ove platforme će imati startupi koji će proizvod bazirati na raznim matematičkim algoritmima, oni koji žele napraviti web servis koji će računati i obrađivati veće količine podataka, oni koji žele napraviti aplikaciju koje će morati obraditi velike količine podataka i slični. Ponavljamo, u realnom sektoru postoji potreba za ovakvim proizvodom, ali sumnjamo da će biti prevelika zainteresiranost programera za ovom platformom. Ono što odlikuje WPC je slijedeće:
1) Apsurdno brzi razvoj i puštanje aplikacije u produkciju
Prva karakteristika koja se spominje kod Programming clouda je brzina razvoja aplikacije. Ako ste ikada radili aplikaciju onda znate da je to dugotrajan proces koji može trajati i mjesecima ako se radi o velikoj aplikaciji jer morate raditi dio po dio aplikacije, stalno raditi testiranje, spremati podatke negdje (što znači povezati aplikaciju sa bazom podataka i stalno testirati da li se podaci dobro zapisuju i povlače) i još mnogo toga. WPC bi trebao riješiti taj problem i omogućiti vam 3-4 puta brži razvoj aplikacije. To će učiniti na način da vam daje veliki broj gotovih funkcija na korištenje koje bi za vas trebale učiniti što god poželite. Recimo, imati ćete ugrađene gotovo sve poznate matematičke algoritme (za sortiranje, pretraživanje …) i sa jednom linijom kôda ćete ih moći koristiti.
U nekim jezicima vam treba možda i 50-60 linija kôda da implementirate neki takav algoritam, da ga testirate, a potom i koristite. U biti, WPC ne želi da se zamarate s time kako nešto napraviti – sve vam je već gotovo i na raspolaganju, vi samo iskoristite te gotove module i funkcije i napravite aplikaciju, odnosno funkcionalnost koju želite ponuditi korisnicima. Nadalje, tu će biti i novi koncept programiranja koji nazivaju „Inkrementalno interaktivno programiranje“ koji će dozvoljavati da se svaki novi dio kôda zasebno testira i da se inkrementalno ide u razvoj aplikacije. Kako će to funkcionirati, nismo sigurni, no svakako nas zanima što će to biti i da li će se pokazati praktičnim i efektivnim u praksi. Ne treba ni spominjati da će ovo biti vrlo apstraktan jezik i da ćete morati u potpunosti razumjeti kako ovaj jezik funkcionira da biste mogli s njime nešto konkretno napraviti. Dobra je stvar što će odmah u platformi biti implementirana cijela dokumentacija (teška oko 50-60 GB) koja će vam maksimalno olakšati programiranje sa konkretnim primjerima i velikom količinom teksta koja će objasniti što koja funkcija radi, koje parametre dobiva, što će vam vratiti kao rezultat itd.
Osim toga, WPC bi trebala biti platforma koja će korisnicima dozvoljavati da gotove aplikacije odmah stave u produkciju i da ih korisnici diljem svijeta vrlo brzo mogu koristiti ili skinuti na svoje računalo – to ovisi kakav tip aplikacije napravite. Sličan koncept ima i SourceForge, no to je platforma za pohranu računalnog kôda u oblake o kojem imate prilike čitati u ovom broju vašeg omiljenog časopisa. No, rezime ovog paragrafa je – brzi razvoj aplikacije sa što manje linija kôda, jako puno funkcija i modula, te platforma za hostanje aplikacije i puštanje iste u produkciju.
2) Jezik
Wolfram Programming Cloud je platforma koja dolazi u paketu sa novim jezikom koji će se najvjerojatnije zvati Wolfram Programming Language. Bez obzira na njegovo ime, riječ je o jeziku sa jako jednostavnom sintaksom. Doslovno bi se funkcije trebale pisati kao engleska riječ (ili više njih) – primjer: ako želite manipulirati sa slikom imati ćete funkcije kao što su ImageResize, ImageTrim, ImageCrop, ImageAdjust, ImageEffect … ista stvar je i sa stringovima, arrayjevima, matematičkim izračunima…
Sintaksa će biti jednostavna, a Wolfram bi vam trebao ponuditi, kao što smo već maloprije spomenuli, ogromnu bazu metoda i raznih funkcionalnosti da ćete u jako malo slučajeva morati izmišljati nešto novo ili raditi velike „custom“ klase koje će za vas nešto odraditi. Neki od ugrađenih libraryja (skup metoda/funkcija) su: library za 2D/3D vizualizacija, analizu grafova, analiza podataka, „Inženjerstvo podataka“ (metode za rudarenje po podacima), pisanje matematičkih formula, upravljanje velikim brojevima, velikim količinama podataka, library za upravljanje API-jima i još puno, puno toga. Preporučamo vam da pogledate „Complete language reference“ na službenim web stranicama (www.wolfram.com/programming-cloud).
Osim nabrojanih libraryja, tu će se naći i alati za izradu sučelja, ugrađeni modeli/klase koji će predstavljati modele/objekte iz realnog svijeta, baze podataka koje ćete moći lako koristiti, pristup platformi sa mobilnih i tablet uređaja … U svakom slučaju, Wolfram sprema jako puno toga i jedva čekamo da isprobamo nešto napraviti. Vjerujemo da će razvoj ići jako brzo kada se stekne određena razina znanja i kada se upoznaju ugrađene metode. Svi oni koji će koristiti ovaj jezik i ovu platformu morati će određeno vrijeme provesti čitajući dokumentaciju, gledajući što ima ugrađeno i kako se spomenute komponente uopće koriste. No, tako je sa većinom programskih jezika, tako da tome ne treba pridavati previše pozornosti.
3) Napišite kôd jedanput, iskoristite ga svuda
Wolfram će imati sustav za distribuciju aplikacije, odnosno stavljanje iste u produkciju (Wolfram Universal Deployment System). Tako ćete moći napisani kôd pretvoriti u API koji će se moći pozivati od bilo kuda na Internetu, moći ćete svoj kôd ugraditi u neke druge web stranice ili web aplikacije, moći ćete imati interaktivnu aplikaciju u oblaku koju će korisnici moći koristiti, moći ćete napraviti aplikaciju sa formama koja će korisnicima davati određene informacije u ovisnosti o podacima koje unesu, a govori se čak i o tome da ćete jednog dana moći raditi mobilne aplikacije, iako o tome još uvijek ima jako malo informacija. Čak se ne spominje niti jedna mobilna platforma ali za pretpostaviti je da se radi o Android platformi jer je ona najrasprostranjenija i open source je.
No, kada podvučemo crtu čini nam se da Wolfram nema namjeru stati na onom malom broju programera koje smo spomenuli, nego žele da ovu platformu koristi širi krug programera za aplikacije bilo koje vrste. Realno gledajući, web programiranje je nešto što će u bliskoj budućnosti biti vrlo traženo, a ako WPC to bude mogao podržati i dati programerima dobre alate, ne vidimo razlog zašto WPC ne bi postao popularan.
Ostale mogućnosti
Što još reći o ovoj platformi? Pa i nema se mnogo jer sve informacije su za sada samo mrtvo slovo na papiru. Ono što nas zanima je konkretno rad platforme u realnim uvjetima. Wolfram Research tvrdi da će ova platforma biti odlična i za mnoge poduzetnike. Pitanje je zašto? Zašto bi WPC bio bolji od nekih drugih platformi? Neki od mogućih odgovora su:
– odlična testna okolina u kojoj će se moći simulirati realni uvjeti kada imate jako puno korisnika (koliko brzo radi aplikacija)
– neograničena interoperabilnost sa drugim API-jima
– mogućnost konzultiranja sa stručnjacima (ovo će vjerojatno biti dio premium usluge koja će koštati prilično puno)
– mogućnost „miješanja“ ovog jezika sa drugima i tako dalje
Ponavljamo, ako se ostvari sve nabrojano, ova platforma će biti fantastična i vrlo rado ćemo ju koristiti. Ako ne, onda će to biti samo još jedna platforma u nizu, specijalizirana za matematičke probleme. Sudeći po iskustvima koje imamo, puno je izgledniji prvi scenarij, no do konačne ocjene ćemo morati još malo pričekati. Koliko? Ne znamo jer još uvijek nema službenog datuma kada će ova platforma biti dostupna za javnost.