Neverovatno široka dostupnost web sajtova, što geografski, što prema tipovima uređaja sa kojih se pristupa, učinila je da sajtovi postepeno postaju bogatiji za mnoge funkcionalnosti. Danas se već u internet programiranju jasno izdvaja koncept web aplikacija, koje sa internet prezentacijama jedino imaju zajedničko to da se izvršavaju u internet browser-u.
Savremene web aplikacije (Single Page aplikacije - SPA) koriste neke od mnogobrojnih biblioteka koji olakšavaju razvoj i donose implementaciju osnovnih funkcionalnosti, kako bi progamer bio fokusiran na izradu aplikativne logike. Neke od njih su Knockout, Durandal, Breeze, Vue, Angular, React, Ember... Nove biblioteke izlaze jako često. Većina je open-source tako da svako može da da svoj doprinos i unapredi neku funkcionalnost. Rezultat toga je da je danas skoro nemoguće uraditi dva kompleksna projekta jedan za drugim, a da se koriste iste biblioteke.
U 2017. godini, jedna od najviše korišćenih biblioteka za nove projekte je React. Razvijena od strane Facebook-a, polako preuzima primat od Angular biblioteke, iza koje stoji kompanija Google. React donosi neke nove koncepte zbog kojih većina početnika, ali i iskusnih programera odvaja deo vremena da se posveti učenju ove biblioteke.
Za razliku od Angular-a, React ne donosi rešenja u sve slojeve web aplikacije, već je fokusiran na korisnički interfejs. To znači da je potrebno povezati ga sa još nekoliko biblioteka kako bi se zaokružila arhitektura cele aplikacije. To naravno zahteva više znanja, ali daje ogromnu fleksibilnost.
Umesto da forsira razdvajanje aplikativne logike od implementacije korisničkog interfejsa, React donosi arhitekturu baziranu na komponentama, pri čemu svaka komponenta vezuje korisnički interfejs i pripadajuću logiku u jednu celinu. Ta komponenta se zatim može koristiti po potrebi na različitim mestima u aplikaciji, kao i u drugim aplikacijama po potrebi.
Da bi se promena na ekranu koja nastaje kao posledica izvršavanja aplikativne logike videla kod korisnika aplikacije, React inicira ponovno iscrtavanje komponente koja sadrži promenu, umesto da na stranici pronalazi pojedinačne elemente i menja njihov izgled i sadržaj. Na ovaj način postižu se drastično bolje performanse za aplikacije koje imaju jako puno sadržaja, npr Facebook.
Učenje biblioteka na kojima je pisan i sam Facebook za mnoge je motivacija samo po sebi. Kada naučite React i napišete nekoliko aplikacija koristeći ovu biblioteku, zavolećete koncepte koje donosi i shvatićete zbog čega ogroman broj projekata u današnje vreme sadrži React u svojoj osnovi.
Pomenuli smo popularne biblioteke React i Angular i kako one omogucavaju i ubrzavaju razvoj savremenih web aplikacija ali nismo pomenuli da je srž ovih biblioteka JavaScript, programski jezik koji danas prakticno pokreće web. JavaScript je postao standardni jezik weba i savremenog programiranja. Ovaj jezik koji je prakticno stvoren za nedelju dana i usavšavan godinama je i najteži i najlakši programski jezik današnjice za učenje. Najbolje je ići korak po korak, naučiti osnovne koncepte programiranja, osnove i sintaksu JavaScripta i uz dosta vežbe, nakon toga, mogućnosti su neograničene i biće vam svejedno koju biblioteku ćete koristiti kada znate šta je i kako funkcioniše njena osnova, a to je JavaScript.
Kada sve ovo sagledate iz druge perspektive i steknete dosta iskustva u radu sa JavaScriptom i bibliotekama, možda ćete baš vi napisati neku novu biblioteku za buduće generacije. A te generacije u ovom svetu dolaze već za godinu – dve!