21 vrući trend u programiranju - i 21 u hladnom

Programeri se vole podsmjehivati ​​svijetu mode u kojem trendovi pušu poput povjetarca. Duljina suknje raste i pada, pigmenti dolaze i odlaze, kravate postaju masnije, a zatim tanje. Ali u svijetu tehnologije strogost, znanost, matematika i preciznost vladaju hirom.

To ne znači da je programiranje profesija lišena trendova. Razlika je u tome što trendove programiranja pokreću veća učinkovitost, povećana prilagodba i jednostavnost upotrebe. Nove tehnologije koje isporučuju jedan ili više ovih pomračuju prethodnu generaciju. To je meritokracija, a ne hirovitost.

Slijedi popis onoga što je trenutno, a što nije među današnjim programerima. Neće se svi složiti s onim što je na popisu A, što na popisu D i što je izostavljeno. To je ono što programiranje čini beskrajno fascinantnom profesijom: brze promjene, strastvena rasprava, iznenadni povratak.

Vruće: pretprocesori

Ne: hrpe cjelovitih jezika

Nedavno su ljudi koji su stvorili novi programski jezik morali sve što je pretvorilo kôd u bitove koji se unose u silicij. Tada je netko shvatio da bi mogao podmetnuti posao koji je prethodio. Sada ljudi s pametnom idejom jednostavno napišu pretprocesor koji novi kôd prevodi u nešto staro s bogatim skupom knjižnica i API-ja.

Skriptni jezici poput Pythona ili JavaScript-a nekada su bili ograničeni na male projekte, ali sada su temelj za ozbiljan rad. A oni kojima se JavaScript nije svidio, stvorili su CoffeeScript, pretprocesor koji im omogućuje ponovno kodiranje, bez teških interpunkcija. Postoje deseci varijacija koje predviđaju i predviđaju sintaksu na drugačiji način.

Ljudi koji su voljeli dinamično tipkanje stvorili su Groovy, jednostavniju verziju Jave bez pretjerano ustrajnih interpunkcijskih znakova. Čini se da postoje deseci jezika - Groovy, Scala, Clojure, Kotlin itd. - koji rade na JVM-u, ali postoji samo jedan JVM. Mnogo jezika možete pokretati i na .Net-ovom VM-u. Zašto izumiti kotač?

Vruće: bez poslužitelja

Ne: Docker

Ovo nije točno istina. Posudni kontejneri su posvuda. Poslužitelji se stalno okreću i zatvaraju spremnike. Međutim, lučki radnik kontejneri su soooo puno veća nego što je potrebno da bude.

Ako malo razmislite, možda ćete napisati samo nekoliko desetaka redaka stvarnog koda za donošenje odluka za tu mikroservisu koju postavljate, ali morat ćete ubaciti milion redaka konfiguracije kako bi Node.js i sve drugo započelo ispravno s Dockerom. Da, sve je to standardno, ali to nedostaje suština.

Nove arhitekture bez poslužitelja dopuštaju nam da implementiramo samo onih nekoliko izjava koje tada vrijede i donose stvarne odluke. Sve ostalo prepušteno je ljudima koji nam iznajmljuju platformu bez poslužitelja.

Da, žalit ćemo se na zaključavanje i nedostatak prilagodbe za nekoliko godina, ali za sada se opcije bez poslužitelja čine slatkim olakšanjem svih devopa i konfiguracije.

Vruće: JavaScript MV * okviri

Nije: JavaScript datoteke

Davno su svi naučili pisati JavaScript za iskakanje okvira upozorenja ili provjeriti sadrži li adresa e-pošte u obrascu znak @. Sada su HTML AJAX aplikacije toliko sofisticirane da malo ljudi započinje ispočetka. Jednostavnije je usvojiti razrađeni okvir i napisati malo ljepljivog koda kako biste implementirali svoju poslovnu logiku.

Sada postoje deseci okvira poput Kendo, Sencha, jQuery Mobile, AngularJS, Ember, Backbone, Meteor JS i mnogi drugi, svi spremni za obradu događaja i sadržaja za vaše web aplikacije i stranice.

To su samo web aplikacije. Postoje i brojni programi koji nude razvoj više platformi za svijet pametnih telefona / tableta. Tehnologije poput NativeScript, PhoneGap, Apache Cordova i React Native nekoliko su mogućnosti za stvaranje aplikacija iz HTML5 tehnologije.

Vruće: CSS okviri

Nije: generički CSS

Nekoć je dodavanje malo pizzazza na web stranicu značilo otvaranje CSS datoteke i uključivanje nove naredbe poput font-style:italic. Zatim ste spremili dosje i nakon teškog jutarnjeg posla otišli na ručak. Sada su web stranice toliko sofisticirane da je nemoguće ispuniti datoteku tako jednostavnim naredbama. Jedan dotjera boju i sve nestane. To je poput onoga što kažu o zavjerama i ekologijama: sve je međusobno povezano.

Tamo su CSS okviri poput SASS-a i njegovih rođaka poput Compass-a pronašli solidne temelje. Oni potiču pismeno, stabilno kodiranje nudeći programske konstrukcije poput stvarnih varijabli, blokova za ugniježđenje i miješanja. Možda ne zvuči kao novost u programskom sloju, ali to je veliki pomak za sloj dizajna.

Vruće: SVG na platnu

Nije: Flash

Flash godinama izluđuje ljude, ali umjetnici su oduvijek voljeli rezultate. Izmjenjivanje anti-aliases izgleda sjajno, a mnogi su talentirani umjetnici izgradili duboki niz Flash koda kako bi ponudili sofisticirane prijelaze i animacije. Casual igre su i dalje vrlo popularne. Tako se Flash drži života na webu.

Sad kad JavaScript sloj može učiniti gotovo isto, proizvođači i programeri navigavaju za kraj Flasha. Bolju integraciju s DOM slojem vide u novim formatima poput SVG (Scalable Vector Graphics). SVG i HTML sadrže jednu veliku hrpu oznaka koje su web programerima često jednostavnije koristiti. Zatim postoje veliki API-ji koji nude složeno crtanje predmeta Canvas, često uz pomoć grafičkih kartica. Sastavite ih i ostaje vam nekoliko razloga da više koristite Flash.

Vruće: Gotovo veliki podaci (analiza bez Hadoopa)

Ne: veliki podaci (s Hadoop-om)

Svatko se voli osjećati kao Veliki čovjek u kampusu, a ako nije, traži kampus odgovarajuće veličine u kojem se može istaknuti. Stoga ne čudi da su, kad su riječi "veliki podaci" počele prolaziti kroz izvršni paket, odijela počela tražiti najveće, najsnažnije sustave velikih podataka kao da kupuju jahtu ili neboder.

Smiješno je što mnogi problemi nisu dovoljno veliki da bi se koristila najfinija rješenja za velike podatke. Svakako, tvrtke poput Googlea ili Yahooa prate sve naše pregledavanje weba; imaju datoteke s podacima izmjerene u petabajtima ili jotabajtima. Ali većina tvrtki ima skupove podataka koji se lako mogu uklopiti u RAM osnovnog računala. Ovo pišem na računalu sa 16 GB RAM-a - dovoljno za milijardu događaja s pregršt bajtova. U većini algoritama podatke nije potrebno čitati u memoriju jer je njihovo streaming s SSD-a u redu.

Bit će slučajeva koji zahtijevaju brzo vrijeme odziva na desetke strojeva u Hadoop oblaku koji rade paralelno, ali mnogi će se uspijeti fino priključiti na jednom stroju bez gnjavaže oko koordinacije ili komunikacije.

Vruće: Iskra

Ne: Hadoop

Nije toliko bitno što se Hadoop hladi. Više je to što je Apache Spark užaren, što čini model Hadoop pomalo starim. Spark posuđuje neke od najboljih ideja Hadoopovog pristupa izvlačenju značenja iz velikih količina podataka i ažurira ih s nekoliko čvrstih poboljšanja koja čine da se kôd izvodi mnogo, puno brže. Najveći je možda način na koji Spark čuva podatke u brzoj memoriji, umjesto da zahtijeva da se sve upisuje i čita iz distribuiranog sustava datoteka.

Naravno, mnogi ljudi spajaju to dvoje koristeći Sparkovu brzinu obrade podataka pohranjenih u distribuiranom sustavu datoteka Hadoop. Hadoop i Spark češće su partneri nego konkurenti.

Vruće: Konfiguracija baze podataka

Ne: Programiranje softvera

Davno su se programeri znali šaliti kako nisu znali kako će programiranje izgledati u sljedećem stoljeću, ali znali su da će se zvati Fortran. Ova je šala bila toliko smiješna da bi pali s dinosaura i slomili drveno donje rublje. Tada bi se vratili konfiguriranju baze podataka.

I danas gradimo baze podataka, ali ono što smatramo "bazom podataka" sada je mnogo puta sofisticiranije i moćnije. Gotove baze podataka sinkronizirat će se same na kontinentima, nudeći fleksibilni kompromis između dosljednosti i brzine. Neke će usluge u oblaku poput Firebasea potiskivati ​​nove podatke do web aplikacija koje se izvode na mobilnim klijentima.

Većina revolucije bez poslužitelja temelji se na spoznaji da su mnoge pohrane podataka u oblaku sada toliko moćne da trebamo napisati samo nekoliko klauzula ako-tada-da bismo napravili prilično cool web aplikaciju.

Vruće: okviri igara

Ne: razvoj izvornih igara

Nekoć je razvoj igara značio zapošljavanje mnogih programera koji su sve napisali na C-u od nule. Naravno, koštao je milijun dolara, ali izgledao je sjajno i trčao je poput vjetra. Sada si nitko ne može priuštiti luksuz prilagođenog koda. Većina programera igara odustali su od svog ponosa prije više godina i koriste biblioteke poput Unity, Corona ili LibGDX za izgradnju svojih sustava. Ne pišu C kod toliko koliko upute za knjižnice.

Je li šteta što naše igre nisu ručno izrađene s ponosom već su otisnute pomoću istog motora? Ne. Većina programera odahnula je. Budući da se ne moraju baviti detaljima, mogu se koncentrirati na igru, narativni luk, likove i umjetnost. 

Vruće: Statički generatori web stranica

Nije: web-stranice s jednom stranicom

Sjećate se kada su URL-ovi upućivali na web stranice ispunjene statičnim tekstom i slikama? Tada su se pojavile dinamičke web stranice s jednom stranicom koje su ih zamijenile jednom pametnom web aplikacijom koja će dohvatiti dotične podatke. Pogodi što? Klatno se ljulja unatrag i sva djeca grade statičke generatore mjesta. Ima ih na desetke. To je poput hibrida. Sve podatke stavite u jednu hrpu, a zatim napišete kôd koji podatke lijepi u neke predloške, tako da postoji jedna HTML datoteka za svaki statički URL, a to dolazi iz svakog retka u tablici podataka.

Djeca misle da su ove statične stranice superbrze i jesu. Samo im nemojte reći da su stari dinamični sustavi poput WordPressa i Drupala radili približno na isti način, čuvajući predmemorije koje su uglavnom bile ispunjene statičkim stranicama generiranim najnovijim podacima.

Vruće: GraphQL

Ne: ODMOR

Nije kao da je REST mrtav. Samo što želimo učiniti više s API-jem, a GraphQL je način za to. GraphQL vraća podatke u JSON-u, baš kao i REST. GraphQL započinje HTTP POST-om, baš kao i mnogi REST pozivi. Samo što GraphQL sintaksa omogućuje određivanje vrlo složenih upita sa samo nekoliko pritiskanja tipki. To programerima olakšava traženje samo onoga što žele, a smanjuje količinu poslužiteljskog posla koji se mora obaviti kada netko želi malo drugačiji API.

Vruće: IDE-ovi u oblaku

Ne: lokalni IDE-i

Davno su ljudi koristili kompajler naredbenog retka. Tada je netko to integrirao s uređivačem i drugim alatima za stvaranje IDE-a. Sada je vrijeme da IDE pomrče (ha) alati temeljeni na pregledniku koji vam omogućuju uređivanje koda, čak i koda radnog sustava. Ako vam se ne sviđa kako WordPress funkcionira, dolazi s ugrađenim uređivačem koji vam omogućuje da odmah i tamo promijenite kôd. Microsoftov Azure omogućuje vam pisanje JavaScript koda za ljepilo točno na njegov portal. Ovi sustavi ne nude najbolja okruženja za otklanjanje pogrešaka, i postoji nešto opasno u uređivanju produkcijskog koda, ali ideja ima noge.

Možete početi s AWS Cloud9, Codenvyjem i Mozilinim WebIDE-om, ali nastavite istraživati. Alati temeljeni na webu postaju sve snažniji. Na primjer, moguće je izraditi cijeli projekt analize velikih podataka na Microsoftovoj Azure web stranici. A ako počnete istraživati ​​opcije bez poslužitelja, brzo ćete shvatiti da sav svoj kôd možete napisati u element obrasca na web stranici. Onaj koji nije puno veći od oblika koji koristite za ažuriranje svojih prijatelja na Facebooku.

Vruće: GPU

Nije: CPU

Kad je softver bio jednostavan, a upute su bile složene u lijep red, CPU je bio kralj računala jer je radio sve teške poslove. Sad kad su video igre ispunjene opsežnim grafičkim rutinama koje se mogu paralelno izvoditi, video kartica pokreće emisiju. Na fantastičnu video karticu lako je potrošiti 500, 600 ili više dolara, a neki ozbiljni igrači koriste ih više. To je više nego dvostruko više od cijena mnogih osnovnih stolnih računala.

Osim toga, igrači se nisu jedini koji se hvale svojim GPU karticama. Računalni znanstvenici sada pretvaraju mnoge paralelne programe da bi radili stotine puta brže na GPU-u. A znanstvenici podataka koriste poslužitelje prepune GPU-ova kako bi ubrzali razvoj svojih modela strojnog učenja. 

Vruće: GitHub

Ne: životopisi

Naravno, o kandidatu biste mogli saznati čitajući napuhani popis postignuća koji uključuje potpredsjednika mlađeg visokog šahovskog kluba. Ali čitanje nečijeg stvarnog koda toliko je bogatije i poučnije. Pišu li dobre komentare? Gube li previše vremena razbijajući predmete u male razrede koji malo rade? Postoji li prava arhitektura s prostorom za proširenje? Na sva ova pitanja može se odgovoriti uvidom u njihov kod.

Zbog toga sudjelovanje u projektima otvorenog koda postaje sve važnije za pronalaženje posla. Dijeljenje koda iz vlasničkog projekta je teško, ali kod otvorenog koda može ići svugdje.