JavaScript: Svi ga koriste, nitko ga ne zna

Pitali smo developere o JavaScriptu: Svi ga koriste, nitko ga ne zna

U sklopu tehnološkog dijela WinDays16 koja se održava u Poreču, u nizu predavanja, posjetitelji mogu očekivati i dva posvećena JavaScriptu o čemu će govoriti developeri Vedran Maršić i Ivan Varga iz Axilisa. To je bio odličan povod da ih posjednemo i saznamo sve o trendovima u JavaScriptu, koji su najpopularniji frameworkovi te kako odabrati najbolji za svoj projekt.

Developeri Vedran Maršić i Ivan Varga iz Axilisa na konferenciji WinDays16, koja se upravo održava u Poreču, govorit će o mogućnostima posljednje verzije JavaScript standarda, a čut ćemo više i o Reactu, Facebookovoj JavaScript biblioteci za razvoj korisničkih sučelja te treba li ga koristiti za razvoj aplikacija.

Od nužnog zla do (developerske) ljubavi

ivan_varga_jpg
Ivanu se ljubav s JavaScriptom dogodila nakon što ga je počeo koristiti na ozbiljnijim projektima.

No, prvo se vratimo malo unatrag. Ivan je s JavaScriptom počeo raditi još kao student, iako priznaje kako je kao netko tko je učio programirati u jeziku kao što je C++, JavaScript smatrao nužnim zlom. No, nakon što ga je počeo koristiti na ozbiljnim projektima, rodila se ljubav. Vedranova priča je slična, a počinje s korištenjem JavaScripta prije nekoliko godina za Web Start Contestu.

Od tada se količina JavaScripta sa svakim novim projektom povećavala. U početku sam dobro prošao jer je tada jQuery biblioteka bila u zreloj fazi. Materijali za učenje i pokazni primjeri bili su lako dostupni. Razlike u implementaciji JavaScripta u internetskim preglednicima nisu se toliko osjetile. Hvala tvorcima jQuery biblioteke koji su prekinuli najcrnje razdoblje u povijesti JavaScripta.

Čak i oni koji površno prate developersku scenu, vjerojatno su upoznati s činjenicom kako je, unatoč omraženosti, JavaScript i dalje među popularnijim jezicima, a to potvrđuje i Vedran:

Postoji definitivni trend rasta popularnosti JavaScripta i njegovog ekosustava. Po GitHutu, servisu koji rangira jezike prisutne na GitHubu, JavaScript ima najveći broj aktivnih repozitorija, što je samo jedan od indikatora. Sve je veći broj biblioteka i platformi. Gotovo sve su open source.

Dodatno, Ivan objašnjava:

Ono što bi također istaknuo je pomicanje JavaScripta iz preglednika na druge platforme. Na serverskoj strani to možemo zahvaliti Nodeu. Vidimo da se i nativne mobilne aplikacije izrađuju korištenjem JavaScripta uz pomoć React Native tehnologije. Razvoj hibridnih mobilnih aplikacija već je duže vrijeme moguć koristeći PhoneGap/Cordovu.

Koji su najpopularniji frameworkovi?

Ivan: React i Angular nije lako usporediti jer React pruža samo prezentacijsku funkcionalnost.

Razgovor s Ivanom i Vedranom bio je prilika i da saznamo više o najpopularnijim JavaScript frameworkovima, a uz Angular, React ili jQuery na koje će većina pomisliti, sugovornici mi napominju kako ne treba zaboraviti ni Ember, Backbone, Polymer ili Knockout. Vedran objašnjava:

Angular je punokrvni primarno web front end framework. Uz Cordovu/PhoneGap može se koristiti za izradu hibridnih mobilnih aplikacija. Njegov razvoj, kontinuitet i kvalitetu osigurava Google, što ga je učinilo popularnim za razvoj popularnih SPA (Single Page Application) web aplikacija. Angularov koncept koji je učinio značajnu prevagu nad konkurencijom su direktive i deklarativan način promjena HTML-a uz two way data binding. To je prilično ubrzalo razvoj web SPA aplikacija.

Govoreći o razlikama između Reacta i Angulara, Ivan ističe:

React i Angular nije lako usporediti jer React pruža samo prezentacijsku funkcionalnost. Uobičajeno se koristi s Flux arhitekturom među kojima je najpopularnija Redux implementacija. Posebnost ovakvog pristupa je undirectional data flow, što olakšava ispravljanje i detekciju pogrešaka u aplikaciji. Razvoj, kontinuitet i kvalitetu razvoja Reacta osigurava Facebook te ga čini iznimno popularnim frontend frameworkom za SPA aplikacije.

Ivan dodaje kako se React u odnosu na konkurenciju može pohvaliti brzinom koju može zahvaliti primjeni koncepta koji se koristi u industriji izrade igara.

Pri promjeni izgleda web stranice u internetskom pregledniku ponovno se iscrtava minimalna količina elemenata na web stranici. Njegovoj popularnosti je, osim vlastite kvalitete, doprinijela i činjenica da je dio Angular zajednice nezadovoljan dugim iščekivanjem nove verzije Angulara koja je nekompatibilna s prethodnom verzijom. React Native omogućava razvoj nativnih mobilnih aplikacija korištenjem web tehnologija što je programerima izuzetno zanimljivo jer mogu koristiti dio alata koji već poznaju za razvoj mobilnih aplikacija.

Prednosti i kontroverze AngularaJS 2.0

AngularJS 2.0, koji je od kraja prošle godine dostupan u beta verziji, razvijan je u skladu s onime što donose novi standardi web razvoja – ES2015/ES6 i web komponente. Ivan objašnjava kako su glavne kritike na račun Angulara 1 performanse, stoga je to dio u kojem možemo očekivati najviše poboljšanja u Angularu 2.0. Vedran dodaje:

Osim toga, broj koncepata koje susrećemo u Angularu 1 kao sto su controller, service, factory, directive u Angularu 2 reduciran je na koncept komponente što pojednostavljuje korištenje i umanjuje mogućnost pogreške prilikom programiranja.

No, uspio je izazvati i brojne kontroverze. Zašto?

Najveći otpor novom Angularu je činjenica da ne postoji automatski proces nadogradnje vaših Angular 1 aplikacija. Angular tim je predvidio dva scenarija postupnog prelaska na novu verziju. Prvi je pisanje Angular 1 aplikacija novom sintaksom uz pomoć ngForward ili korištenje vašeg koda unutar Angular 2 aplikacije uz pomoć ngUpgrade.

Kako odabrati najbolji framework?

vedran_fosna_axilis_jpg
Vedran zvani Fosna: Pri odabiru najboljeg frameworka treba uzeti u obzir prethodno iskustvo tima, ali i kulturu unutar njega.

Uzevši u obzir mnoštvo JavaScript frameworkova i opcija koje nude, postavlja se pitanje kako odabrati najbolji. Ivan naglašava kako je odabir najboljeg otežan činjenicom da su sve platforme relativno mlade i da je tek nekolicina developera koji su imali dovoljno vremena da se upoznaju s više njih. Vedran se nadovezuje i ističe:

Možda je bolje pitanje kako odabrati najbolji framework za vaš tim i projekt. Potrebno je uzeti u obzir prethodno iskustvo u timu, sklonost isprobavanju najnovijih, u praksi neiskušanih tehnologija i kulturu u timu. Neki frameworkovi ne podržavaju platformu za koju se razvija, primjerice web, native mobile, hybrid mobile pa ih je potrebno isključiti iz razmatranja.

Kuharica (koja generalizira i značajno pojednostavljuje izbor, ali i zanemaruje neke činjenice koje vam mogu biti važne):

web + native mobile = React + React Native
web + hybrid = Angular 1 ili Angular 2 (beta) + Cordova/PhoneGap

A na pitanje imaju li u Axilisu namjeru razvijati neki svoj JavaScript framework, Ivan ističe kako to u njihovom slučaju ne bi imalo previše smisla jer su postojeći u fazi ubrzanog razvoja te da razvojni timovi aktivno rješavaju probleme koji se pojavljuju.

No, ima smisla doprinijeti razvoju nekog od frameworka koji koristimo putem GitHuba. To može biti prijava buga, rješavanja buga ili implementacija nekog dijela. Takve stvari se ne planiraju unaprijed, već se događaju same od sebe kad osjetimo potrebu.

Budućnost JavaScripta: Daljnja popularizacija i standardizacija

vedran_marsic_jpg
Vedran: Planirano je da se novi JavaScript standardi donose svake godine.

Govoreći o budućnosti JavaScripta, Ivan kaže kako očekuje njegovo širenje i popularizaciju čemu će doprinijeti daljnja standardizacija. Dodaje kako je primjetno širenje web tehnologija na razne platforme: server – Node, hybrid mobile – Cordova/PhoneGap, native mobile – React Native, a s njima i JavaScripta. Vedran dodaje:

Razvoj JavaScripta je značajno ubrzan. Planirano je da se novi JavaScript standardi donose svake godine. Zbog toga je najnovija standardizirana verzija JavaScripta, ECMAScript 6 (ES6), preimenovana u ECMAScript2015 (ES2015). To je velik napredak, kada znamo da je prethodni ES5 standard donesen 2009. godine, od ES4 standarda se odustalo, a ES3 standard je donesen 1999.

Također, naglašava kako će se više osjetiti poteškoće s izravno podržanim verzijama JavaScripta u internetskim preglednicima, posebno u onim mobilnim.

Te poteškoće danas rješava korištenje polyfil biblioteka i prevođenje novijih verzija JavaScripta u starije. Primjeri polyfil biblioteka su core-js ili polymer. Primjeri prevoditelja za JavaScript su Babel (FB), Traceur (Google). Oni prevode kod koji je pisan u novijim verzijama JavaScripta u starije verzije. Takav kod se može izvoditi bez poteškoća u internet preglednicima koji ne podržavaju najnoviji ES standard. Tu je potrebno spomenuti i TypeScript (Microsoft) koji je jezik koji dodaje statičke tipove u JavaScript i prevodi se u ES5.

Za automatizaciju prevođenja (i nekih drugih akcija) u razvojnom ciklusu mogu se koristiti Webpack, Browserfy, Gulp ili Bower. Dok ovo govorim, vjerojatno je napisano nekoliko novih alata u tu svrhu. To je prokletstvo i blagoslov open source zajednice. Mnogo je izazova u odabiru pravog seta alata koji mogu ubrzati razvoj vašeg projekta.

Ivan ističe:

Standardizacija web komponenti koju očekujemo u narednim verzijama web standarda trebala bi ukloniti potrebu da svaki frontend framework definira vlastitu verziju web komponenti. To bi trebalo smanjiti veličinu frontend JavaScript biblioteka i malo pojednostaviti posao programerima.

Također skreće pažnju na tezu kako je JavaScript asemblerski jezik za web te da će se u budućnosti pisati sve manje JavaScripta.

Jezici kao što su C++, Java, Python, C# prevodit će se u binarni oblik koji će se moći izravno izvršavati u internetskim preglednicima. U tom smislu se radi na web assembly standardu. Zamislite SQLLite bazu u internetskom pregledniku korisnika. Ovo je daljnja budućnost, ali svakako zanimljiva. Smatram da će utjecaj standardizacije JavaScripta biti jači te da će JavaScripta biti sve više, a ne sve manje tijekom sljedećih 5 godina.

Zašto učiti JavaScript?

axilis_js_skola

Zagrebačka tvrtka Axilis 14. svibnja pokreće i besplatnu JavaScript školu za koju su prijave otvorene do 1. svibnja, a održavat će se svake subote, od 14. do 11. lipnja u prostorima zagrebačkog HUB-a 385. Namijenjena je svim zainteresiranima uz uvjet da imaju osnovno znanje programiranja, ne nužno u JavaScriptu. Tijekom pet tjedana polaznici će se upoznati s JavaScript platformama, trendovima, ali i steći praktična znanja jer JavaScript svi koriste, ali ga tek rijetki znaju. Kao preporuku svima koji razmišljaju o Axilisovoj JavaScript školi, Ivan zaključuje:

JavaScript je jezik koji je prisutan već duže vrijeme, još relativno nedavno samo u našim preglednicima. Zbog već spomenutih problema, poput nestandardne implementacije na različitim preglednicima, tromosti u mijenjanju standarda, često je smatran nužnim zlom, odnosno alatom za kojim ne posežete rado. Moderni trendovi učinili su JavaScript sveprisutnim, dok je stav developera o JavaScriptu ostao i dalje isti. Stoga imamo situaciju u kojoj postoji mnoštvo developera koji mogu reći da rade s JavaScriptom dugi niz godina, no sami za sebe se neće usuditi reći da su stručnjaci. Zbog toga smatram da su ovakve škole i događaji prijeko potrebni kako bismo uspješno popratili promjene koje se događaju.

Sukladno članku 94. Zakona o elektroničkim medijima, komentiranje članaka na Netokraciji dopušteno je samo korisnicima koji ostave svoje ime i prezime te mail adresu i prihvate pravila ponašanja.

Pravila ponašanja

Na Netokraciji za vas stvaramo kvalitetan, autorski potpisan sadržaj i zaista se veselimo vašim kvalitetnim, kontruktivnim komentarima. Poštujmo stoga jedni druge prilikom komentiranja, kao i Zakon, držeći se sljedećih pravila ponašanja:

  • Ne budite 💩: Nema vrijeđanja, diskriminiranja, ni psovanja (osim ako nije osobni izričaj, ali onda neka psovka bude općenita, a ne usmjerena prema nekome). Također, upoznajte se sa stavkom 2. članka 94. Zakona o elektroničkim medijima prije no što ostavite komentar.
  • Samo kvalitetna rasprava, manje trolanja: Ne morate se ni sa kim slagati, ali budite konstruktivni i doprinesite raspravi! Svako trolanje, flameanje, koliko god "plesalo" na granici, leti van.
  • Imenom i prezimenom, nismo Anonymous 👤: Autor sadržaja stoji iza svog sadržaja, stoga stojite i vi iza svog komentara. Koristimo ime i prezime te pravu email adresu.

Kako koristimo podatke koje ostavljate? Bacite oko na našu izjavu o privatnosti.

Sve ostale komentare ćemo s guštom spaliti, jer ne zaslužuju svoje mjesto na internetu.

Odgovori

Tvoja e-mail adresa neće biti objavljena.

Popularno

Društvene mreže

Biste li plaćali za korištenje Facebooka i Instagrama? A YouTubea i X-a?

Nova epizoda Netokracijina podcasta kao da se nije odmaknula od Noći vještica jer strava se nastavlja - big tech ekipa uvodi pretplate na sve strane. No, dogodila se jedna stvar koja nam daje nadu... Elon Musk održao je prvi "all hands" sastanak!

Ekskluzivno

Daytona osigurala 2 milijuna dolara od investitora poput CEO-a Stack Overflowa i Damira Sabola

U najranijoj, pre-seed rundi financiranja, Daytona je osigurala investiciju od čak 2 milijuna dolara, primarno od poznatih američkih i hrvatskih (su)osnivača.

Netokracija Podcast

Ovo je email strategija kojom je Burazin privukao investitore poput direktora Stack Overflowa

U novoj epizodi ulazimo u detalje o: (vjerojatno) najvećoj pre-seed rundi u hrvatski startup; tome kako SAD namjerava kontrolirati AI sustave koji bi mogli napraviti atomsku bombu te zašto osnivača Netokracije Ivana Brezaka Brkana izbacuju iz zagrebačkih kavana?

Što ste propustili

Intervju

Kako esport industrija izgleda danas – iz perspektive partnera, sponzora, igrača i regulatora?

Ovoga prosinca u Zagrebu čeka nas prvo izdanje Beyond Esports konferencije koja se, kao što joj i ime kaže, bavi esport industrijom i svemu onome što ju pokreće.

Ekskluzivno

Vinare čeka EU regulativa, ali Kovačević i Drmač imaju rješenje: Craft Technology E-etikete!

Tko god je imao doticaja s EU regulativama zna da nisu jednostavne niti ih se smije shvatiti olako. Jedna takva stiže i u svijet vinara, a hrvatski Craft Technology mogao bi im tu biti od velike pomoći.

Tvrtke i poslovanje

LAQO opet u potrazi za najodrživijim tech rješenjima koja će nagraditi s 18 tisuća eura

Nakon uspješnog prvog izdanja s više od 250 prijava, krenule su prijave za drugo izdanje LAQOthona, nagradnog natječaja idejnih tech rješenja na temu održivosti u organizaciji Croatijinog LAQO osiguranja, prvog 100 posto digitalnog osiguranja.

Analiza

Hoće li robotaksiji na ulice Zagreba i – kad?

I je li uopće realno očekivati da će se to dogoditi? U ovoj epizodi Netokracijinog podcasta pretresli smo tu vruću temu i to iz svih kutova - tehnološkog, operativnog, financijskog i komunikacijskog.

Startupi

10 godina Lean Startup Hrvatska: Ekosustav nekad i danas, što je plan za Smion?

Nakon 10 godina i na desetke radionica, edukacija i događaja Lean Startup Hrvatska postaje Smion te se nastavlja još više fokusirati na razvoj poduzetničkog i inovacijskog ekosustava. U velikom intervjuu, komentiramo desetljeće iza njih, kao i okolnosti na domaćoj sceni nekada i danas.

Analiza

Diskriminira li PlayStation Store Hrvate? Popusta nemamo, euro se tek uveo, a plaćali smo bonovima…

Domaće obožavatelje PlayStation konzole ova godina nije nimalo mazila. Štoviše cijelu godinu obilježio ih je osjećaj "zadnje rupe na svirali" jer sve do sredine studenog nisu mogli kupovati karticama. Zašto? PlayStation Store 11 mjeseci nije prešao na euro niti je dvojno iskazivao cijene...