11 predviđanja za budućnost programiranja

Jedino što leti brže od vremena je napredak tehnologije. Jednom nakon ručka, prijatelj dizajnera čipova brzo se opravdao spretnim objašnjenjem da Mooreov zakon znači da mora svoj čip postaviti 0,67 posto brže svaki tjedan, čak i dok je bio na odmoru. Da nije, čipovi se ne bi udvostručili u brzini svake dvije godine.

Sad kad je stigla 2017., vrijeme je da napravite inventuru tehnoloških promjena, makar samo kako biste znali gdje možete staviti svoje oklade u izgradnju vještina programiranja za budućnost.

Od sve veće sigurnosne glavobolje interneta stvari do strojnog učenja posvuda, budućnost programiranja postaje sve teže predvidjeti.

Oblak će pobijediti Mooreov zakon

Postoje neugodni koji tvrde da su kompanije za proizvodnju čipova pogodile zid. Oni više ne udvostručuju brzinu čipa svake dvije godine kao što su to činili tijekom halcyon godina '80 -ih i '90 -ih. Možda - ali više nije važno jer su granice između čipova manje definirane nego ikad.

U prošlosti je brzina CPU-a u kutiji na vašem stolu bila bitna jer ste, eto, mogli ići samo onoliko brzo koliko je silicijski hrčak unutra mogao vrtjeti svoj točak. Kupnja većeg, bržeg hrčka svakih nekoliko godina udvostručila je i vašu produktivnost.

Ali sada CPU na vašem stolu jedva prikazuje informacije na ekranu. Većina posla obavlja se u oblaku gdje nije jasno koliko hrčaka radi na vašem poslu. Kada pretražujete Google, njihov masivni oblak mogao bi posvetiti 10, 20, čak 1.000 hrčaka da pronađu pravi odgovor za vas.

Izazov za programera je pronalaženje pametnih načina za elastično raspoređivanje dovoljno računarske snage na problem svakog korisnika, tako da rješenje dolazi dovoljno brzo i da mu korisnik ne dosadi i odluta na konkurentsku stranicu. Dostupno je dovoljno energije. Tvrtke u oblaku omogućit će vam da se nosite sa simpatijama korisnika, ali morate pronaći algoritme koji paralelno rade lako, a zatim organizirati sinkronizaciju poslužitelja.

IoT sigurnost postat će samo zastrašujuća

Mirai botnet koji se otvorio prošle jeseni bio je poziv za uzbunu programerima koji stvaraju sljedeću generaciju interneta stvari. Ovi pametni mali uređaji mogu se zaraziti kao i svako drugo računalo i mogu koristiti svoju internetsku vezu za pustoš i propuštanje pasa rata. I kao što svi znaju, psi se na internetu mogu pretvarati da su bilo tko.

Nevolja je u tome što trenutni opskrbni lanac naprava nema nikakav mehanizam za popravljanje softvera. Životni ciklus uređaja obično započinje dugim putovanjem od proizvodnog pogona do skladišta i na kraju do korisnika. Uobičajeno je da se do 10 mjeseci odvija između sklapanja i prve uporabe. Uređaji se isporučuju na pola svijeta širom tih dugih, dugotrajnih mjeseci. Sjede u kutijama i čekaju u brodskim kontejnerima. Tada sjede na paletama u velikim trgovinama kutijama ili u skladištima. Dok su se raspakirali, sve im se moglo dogoditi.

Izazov je pratiti sve to. Dovoljno je teško ažurirati baterije u detektorima dima svaki put kad se satovi promijene. Ali sada ćemo se morati pitati o našoj pećnici s tosterom, sušilici za rublje i gotovo svemu u kući. Je li softver ažuran? Jesu li primijenjene sve sigurnosne zakrpe? Broj uređaja otežava bilo što inteligentno praćenje kućne mreže. Na moj je bežični usmjerivač povezano više od 30 uređaja s IP adresama, a ja znam identitet samo njih 24. Da želim održati pametni vatrozid, poludio bih otvaranjem pravih priključaka za prave pametne stvari.

Davanje ovih uređaja šansi za pokretanje proizvoljnog koda blagoslov je i prokletstvo. Ako programeri žele izvoditi pametne zadatke i omogućiti korisnicima maksimalnu fleksibilnost, platforme bi trebale biti otvorene. Tako cvjeta revolucija proizvođača i kreativnost otvorenog koda. Ali ovo također daje piscima virusa više prilika nego ikad prije. Sve što trebaju učiniti je pronaći jednu marku widgeta koja nije ažurirala određeni pokretački program - voilà, pronašli su milijune widgeta pripremljenih za hostiranje botova.

Video će dominirati webom na nove načine

Kada je odbor za HTML standarde počeo ugrađivati ​​video oznake u sam HTML, vjerojatno nisu imali velike planove za preuređivanje zabave. Vjerojatno su samo htjeli riješiti propuste s dodataka. Ali osnovne video oznake odgovaraju na JavaScript naredbe, što ih čini u osnovi programabilnima.

To je velika promjena. U prošlosti se većina videozapisa konzumirala vrlo pasivno. Sjednete na kauč, pritisnete gumb za reprodukciju i vidite što je urednik videozapisa odlučio da biste trebali vidjeti. Svi koji gledaju taj mačji video vide mačke u istom slijedu koji je odredio kreator mačjeg videa. Svakako, nekoliko premotavanja unaprijed, ali videozapisi dovode do svog zaključka s toliko redovitosti koliko švicarski vlakovi.

JavaScript kontrola videa je ograničena, ali najslabiji web dizajneri smišljaju pametne načine kako integrirati video s ostatkom web stranice u bešavno platno. Ovo otvara mogućnost korisniku da kontrolira kako će se narativ odvijati i komunicirati s videozapisom. Nitko ne može biti siguran što će pisci, umjetnici i urednici zamisliti, ali za to će im trebati programski talent.

Mnoge najslikasnije web stranice već imaju videozapise koji se čvrsto pokreću na pametnim mjestima. Uskoro će svi poželjeti pokretne stvari. Neće biti dovoljno staviti IMGoznaku s JPEG datotekom. Morat ćete zgrabiti video - i riješiti probleme sa standardima koji su fragmentirali svijet preglednika.

Konzole će i dalje zamijeniti računala

Teško je biti ljut na igraće konzole. Igre su izvrsne, a grafika nevjerojatna. Izgradili su izvrsne video kartice i relativno stabilne softverske platforme za nas da se opustimo u dnevnoj sobi i sanjamo o pucanju na negativce ili bacanju nogometne lopte.

Konzole za dnevni boravak samo su početak. Proizvođači predmeta za ostatak kuće slijede isti put. Mogli su odabrati ekosustav otvorenog koda, ali proizvođači grade vlastite zatvorene platforme.

To fragmentira tržište i programerima otežava održavanje svega ispravno. Ono što radi na jednom prekidaču za svjetlo neće raditi na drugom. Sušilo za kosu možda govori isti protokol kao i toster, ali vjerojatno neće. Programerima je više posla na ubrzavanju i manje je mogućnosti za ponovnu upotrebu našeg posla.

Podaci će ostati glavni

Nakon predsjedničkih izbora u SAD-u 2016. godine, stručnjaci za prenošenje riječi ismijavali su se stručnjaci za prenošenje podataka, što sugerira da je sva njihova statistička analiza bila vježba u gluposti. Predviđanja su bila dramatično pogrešna, a ljudi s velikim podacima izgledali su loše.

Kako su došli do ovog zaključka? Usporedbom jednog skupa brojeva (predviđanja) s drugim nizom brojeva (rezultata izbora). Podaci su im i dalje trebali.

Podaci su onakvi kakvima ih vidimo na internetu. Svjetlo nam donosi informacije o stvarnom svijetu, ali brojevi nam govore o svemu na mreži. Neki mogu prognozirati loše na temelju nesavršenih brojeva, ali to ne znači da bismo trebali prestati prikupljati i tumačiti brojeve.

Prikupljanje podataka, razvrstavanje, kuriranje i raščlanjivanje i dalje će biti jedan od najvažnijih poslova za poduzeće. Donositelji odluka trebaju brojeve, a programeri će i dalje imati zadatak isporučivati ​​podatke na način koji je lakše razumljiv. To ne znači da će odgovori biti savršeni. Kontekst i intuicija i dalje će imati ulogu, ali potreba za prepiranjem podataka neće nestati samo zato što je nekolicina ljudi predvidjela da Donald Trump neće biti izabran. To znači više posla za programere, jer se ne nazire kraj našoj potrebi za izgradnjom većeg, bržeg i podatkovno zahtjevnijeg softvera.

Strojno učenje postat će nova standardna značajka

Kada djeca na fakultetu pohađaju tečaj pod nazivom „Strukture podataka“, nauče kakav je bio život kad su njihovi bake i djedovi napisali kôd i nisu mogli ovisiti o postojanju sloja nazvanog „baza podataka“. Pravi programeri morali su spremati, sortirati i spajati tablice pune podataka, bez pomoći Oraclea, MySQL-a ili MongoDB-a.

Algoritmi strojnog učenja udaljeni su nekoliko kratkih godina od tog skoka. Trenutno programeri i znanstvenici podataka trebaju napisati veći dio vlastitog koda kako bi izveli složenu analizu. Uskoro će jezici poput R i neki od najpametnijih alata za poslovnu inteligenciju prestati biti posebni i počet će biti redovita značajka u većini softverskih paketa. Preći će od četiri ili pet posebnih dijapozitiva u PowerPoint prodajnom krovu do malog pravokutnika na crtežu arhitekture koji se podrazumijeva.

To se neće dogoditi preko noći i nije točno kakvog će oblika biti, ali jasno je da sve više poslovnih planova ovisi o algoritmima strojnog učenja koji pronalaze najbolja rješenja.

Dizajn korisničkog sučelja postat će sve kompliciraniji kako računala i dalje blijede

Svaki dan se čini da postoji jedan razlog manje za korištenje računala. Između porasta pametnih telefona, konzola u dnevnoj sobi i tableta, jedini ljudi koji se još uvijek drže računala su uredski radnici i studenti koji trebaju predati zadatak.

To može biti izazov za programere. Nekad je bilo lako pretpostaviti da će korisnici softvera ili web stranica imati tipkovnicu i miša. Sada mnogi korisnici nemaju ni jedno ni drugo. Korisnici pametnih telefona gnječe prste u stakleni zaslon na kojem jedva ima mjesta za svih 26 slova. Korisnici konzole pritiskaju tipke sa strelicama na daljinskom upravljaču.

Dizajniranje web stranica postaje složenije jer se dodirni događaj malo razlikuje od događaja klika. Korisnici imaju različitu količinu preciznosti, a veličine zaslona se uvelike razlikuju. Nije lako sve to izravnati, a pogoršat će se samo u godinama koje slijede.

Kraj otvorenosti

Donošenje računala nije samo spora smrt određenog faktora oblika. Umire posebno otvoreno i gostoljubivo tržište. Smrt računala će zatvoriti mogućnosti.

Kad su računala prvi put isporučena, programer je mogao sastaviti kôd, kopirati ga na diskove, staviti te diskove u ziplock vrećice i svijet bi ga mogao kupiti. Nije bilo srednjeg čovjeka, vratara, stroge središnje sile koja nas je pitala da kažemo: "Majko, mogu li?"

Konzole su čvrsto zaključane. Nitko ne ulazi na to tržište bez ulaganja kapitala. Trgovine aplikacija malo su otvorenije, ali svejedno su to ograđeni vrtovi koji ograničavaju ono što možemo učiniti. Svakako, oni su i dalje otvoreni za programere koji skaču kroz desni obruč, ali svakoga tko napravi lažni potez može baciti. (Nekako uvijek odgađaju naše aplikacije dok zlonamjerni softver prođe. Idite na sliku.)

Ova je razlika važna za otvoreni izvor. Ne radi se samo o prodaji disketa u vrećicama. Gubimo sposobnost dijeljenja koda jer gubimo sposobnost kompajliranja i pokretanja koda. Kraj računala velik je dio kraja otvorenosti. Za sada većina ljudi koji ovo čita vjerojatno imaju pristojnu radnu površinu koja može kompajlirati i pokretati kod, ali to se polako mijenja.

Manje ljudi ima priliku napisati kod i podijeliti ga. U svim govorima o potrebi učenja sljedeće generacije programiranju, manje je praktičnih vektora za distribuciju otvorenog koda.

Autonomni prijevoz je tu da ostane

Nisu to samo automobili. Neki žele napraviti autonomne avione koji nisu opterećeni potrebom za cestama. Drugi žele stvoriti autonomne skateboarde za vrlo lagana putovanja. Ako se pomakne, neki haker sanja da mu kaže kamo ići.

Programeri neće kontrolirati što ljudi vide na ekranu. Oni će kontrolirati kamo ljudi odlaze i kako komuniciraju sa svijetom. A ljudi su samo dio igre. Sve naše stvari također će se kretati autonomno.

Ako želite večeru od poznatog kuhara u centru grada, autonomni skateboard s grijanom komorom može je donijeti u vašu kuću. Ako želite da se vaš travnjak pokosi, autonomna kosilica zamijenit će klinac iz susjedstva.

A programeri mogu koristiti sve cool ideje koje su imali tijekom prve internetske revolucije. Ako smatrate da su skočni oglasi loši na internetu, pričekajte dok programeri ne plate da svoje autonomne koturaljke preusmjere pored kuhinjskog otvora novog restorana. Već ste gladni?

Zakon će naći nova ograničenja

Tinta se jedva osušila na Billu o pravima kad su počele rasprave o tome što znači da je pretraga naših novina razumna. Sada, više od 200 godina kasnije, još uvijek raspravljamo o detaljima.

Promjene u tehnologiji otvaraju nove putove za zakon. Prije nekoliko godina Vrhovni je sud odlučio da tehnologija za praćenje vozila zahtijeva nalog. Ali to je tek kad policija postavi tragač u automobil. Nitko zapravo ne zna koja se pravila primjenjuju kada netko poziva podatke o praćenju iz Wazea, Google Mapsa ili bilo koje od stotina drugih aplikacija koje predmemoriraju naše lokacije.

Što je s utjecajem na rad strojeva? Jedno je preuzimati podatke, ali zastrašujuće je i promijeniti podatke. Je li pošteno da policija (ili privatni glumci) krivotvore dokumente, zaglavlja ili dijelove? Je li važno jesu li ciljevi istinski teroristi ili jednostavno ljudi koji su predugo parkirali na mjestu bez parkiranja, a da nisu napali brojilo?