U svijetu programiranja, mnogo toga se može promijeniti u jako kratkom periodu. Ove godine je najpopularniji jezik X, druge godine će biti Y, a godinu nakon te programski jezik Z. Teško je predvidjeti što će se događati tokom godine i što bi moglo biti popularno. Početkom svake godine nekoliko IT eksperata pokušava predvidjeti trendove za tekuću godinu, ali rijetko koji pogodi u potpunosti.
Uz to, tokom godine je teško jasno vidjeti trendove koji su popularni od previše programskih jezika, alata i raznih frameworka koji svakim danom dolaze na tržište. Tek kada pogledamo unazad godinu ili dvije, možemo donijeti racionalne zaključke.
Rast posljednje verzije JavaScripta
JavaScript/ECMAScript verzija 6 (ili ECMAScript 2015 ili ES6) je došao na tržište u lipnju prošle godine i već tada smo pretpostavljali da bi mogao biti jako popularan jer je donio neke nove mogućnosti za developere koji su prihvatili te nove web standarde. Dokaz tome je da su popularni web preglednici i Node.js (open-source JavaScript runtime) u biti 90-posto kompatibilni sa ES6 standardom.
To znači da ćete u velikoj većini slučajeva imati podršku za sve ono što nova verzija JavaScripta nudi. Dovoljno je reći da kompanije kao što su Google i Airbnb koriste ovu verziju JS-a i da se sintaksa dotičnog jezika može naći u njihovim internim vodičima za programiranje.
Ipak, nije sve ni tako sjajno. Mnogi programeri moraju pružati podršku i za stare verzije JavaScripta i nemaju prilike prijeći na novu verziju istoga. Samim time popularni web preglednici moraju pružiti podršku i za stare verzije JS-a. Također, ES6 mogućnosti nisu ni implementirane u sva JS okruženja kao što je tail-resursion (sva sreća Safari 10 i iOS 10 su izuzetci). Stare verzije JS-a neće nestati preko noći, no ES6 će se i dalje masovno širiti i postaviti neke nove standarde u web programiranju. Ako već i nije.
‘Backend’ kao servis
Backend-as-a-Service (BaaS) ili po hrvatski „Backend kao servis“ je jako rastao u ovoj godini. Pod time mislimo praksu da se koriste third-party servisi za neke repetativne taskove u projektima – kao što su slanje kôda u oblake ili slanje push notifikacija na uređaje. Koristeći te servise, programeri se mogu skoncentrirati na neke druge ključne segmente, a koristiti postojeće za spomenute repetativne taskove. Sva sreća, noviji frontend frameworci će uskoro moći samostalno komunicirati sa time istim servisima, što će olakšati programiranje svima – i backend i frontend programerima.
Također, programeri u zadnje vrijeme koriste tehniku „composition“ u kojoj cijeli sustav slažu od većeg broja malih aplikacija koje međusobno komuniciraju, pa tako lakše mogu implementirati vanjske sustave u svoj IT sustav. Jedan od takvih servisa je Parse. Nažalost, Facebook ga je kupio i ugasio, pa ako ga koristite, migrirajte sve prije 28. siječnja 2017.-te godine. Nakon toga vam više neće raditi. No, nije Parse jedini sustav – mnogo je takvih i praktički sve što trebate ćete već naći gotovo. Pitanje je koliko su vam ti servisi potrebni i koliko ste spremni platiti za njih.
Lakši način deployanja aplikacija
Servisi kao što su Docker i Packer su postali iznimno popularni ove godine i mnogi programerski timovi ih koriste. Oni dozvoljavaju (softverskim) inženjerima da brzo generiraju i repliciraju „slike mašina“ (engl. Machine images) ili „kontejnere“ u kojima imaju softver koji žele deployati, runtime i sve popratne alate koji su im potrebni. Napravite prvi „kontejner“ i samo ga replicirate na X mjesta i možete ga u sekundi deployati na X servera.
Na svim onima koji imaju podršku za Docker, Packer ili neki treći servis. Samim time se ne gubi hrpa vremena na pripremu servera, održavanje, konstantno praćenje servera i slično. Ovako uzmete kontejner i stavite ga na neki server. I to je to. Možete na brzinu probati da li vam nešto radi ili ne radi, te potom „obrisati server“ i aplikaciju. Nije ni čudno da je ovakva „automatizacija“ postala popularna jer na kraju krajeva – treba vam manje ljudi za deploy aplikacije, manje novaca, manje truda i manje vremena. Ako vas to zanima, svakako pogledajte Vagrant, Puppet, Chef, Ansible, Docker i Packer.
Povećano korištenje funkcionalnih programskih jezika
Funkcionalni programski jezici kao što su Haskell, Clojure i Scala su jako rasli ove godine, odnosno rasla je njihova popularnost. Korištenje tih server-side jezika je posljedica rasta broja pametnih telefona i ostalih uređaja koje koristimo, jer s rastom i kvalitetom dotičnih uređaja očekujemo i bolje performanse. Kako naša računala, tableti, pametni telefoni i IoT gadgeti postaju hardverski sve jači, serveri su „postali usko grlo u performansama“ jer ne mogu u isto vrijeme posluživati tako veliki broj uređaja.
Korištenjem funkcionalnih jezika možemo povećati paralelni rad servera sa većim brojem uređaja. Funkcionalni jezici praktički nemaju „stanje“, odnosno oni su većinom stateless, što znači da određeni dijelovi softvera mogu raditi lakše i efikasnije u paralelni i to na više različitih jezgri procesora ili mašina, bez potrebe za nekom kompleksnom sinkronizacijom. To daje funkcionalnoj paradigmi prednost pred objektno-orijentiranom koja se zasniva na upitu i odgovoru od web servisa.
Prijelaz prema „material“ dizajnu
Događale su se i razne promijene na frontendu, odnosno na formama koje korisnici vide prilikom korištenja raznih sustava i aplikacija. Jedan od glavnih „krivaca“ je Google. On je počeo sa material dizajnom i mnoge elemente implementirao u svoje sustave (ChromeOS, Android), aplikacije (Chrome, Drive, Google Play Music), web stranice (YouTube, AdSense) i čak u web tražilicu.
Material dizajn smo mogli vidjeti i u Android aplikacijama kao što su Slack, Twitter, Spotify, Airbnb i Wikipedija, te na web stranicama Asane, Geekbencha i mnogih drugih. Zanimljivo, ovaj dizajn frontenda nisu „usvojili“ iOS, Tizen, Windowsi i MacOS – samo Ubuntu je.
Programeri spomenutih platformi koriste dizajne i stilove specifične za te operativne sustave, odnosno platforme. Biti će zanimljivo vidjeti kuda će nas ovaj trend odvesti u 2017.-oj godini. Da li će sve ići prema nevidljivim sučeljima (Amazon Alexa, Siri, Cortana, Google Home) ili prema novim 3d sučeljima kojima ćemo pristupati kroz virtualnu ili proširenu stvarnost.
Autor: B. P.