11 förutsägelser för framtiden för programmering

Det enda som flyger snabbare än tiden är teknikens framsteg. En gång efter lunch ursäktade en chipdesignande vän sig snabbt med den skickliga förklaringen att Moores lag innebar att han var tvungen att göra sin chipuppsättning 0,67 procent snabbare varje vecka, även när han var på semester. Om han inte gjorde det skulle inte chipsen fördubblas i hastighet vartannat år.

Nu när 2017 är här är det dags att göra en översikt över de tekniska förändringarna framöver, bara för att hjälpa dig att veta var du kan satsa på att bygga programmeringsfärdigheter för framtiden.

Från den ökande säkerhetshuvudvärken på internet för saker till maskininlärning överallt blir framtiden för programmering svårare att förutsäga.

Molnet kommer att besegra Moores lag

Det finns naysayers som hävdar att chipföretagen har träffat en mur. De fördubblar inte längre chiphastigheten vartannat år som de gjorde under halcyonåren på 80- och 90-talet. Kanske - men det spelar ingen roll längre eftersom gränserna mellan marker är mindre definierade än någonsin.

Tidigare har hastigheten på CPU: n i lådan på ditt skrivbord spelat roll för, ja, du kunde bara gå så fort som kiselhamstern inuti kunde snurra på hjulet. Att köpa en större, snabbare hamster med några år fördubblade också produktiviteten.

Men nu visar processorn på ditt skrivbord knappt information på skärmen. Det mesta av arbetet görs i molnet där det inte är klart hur många hamstrar som arbetar på ditt jobb. När du söker på Google kan deras massiva moln ägna 10, 20, till och med 1000 hamstrar till att hitta rätt svar för dig.

Utmaningen för programmerare är att hitta smarta sätt att elastiskt distribuera tillräckligt med datorkraft för varje användares problem så att lösningen kommer tillräckligt snabbt och användaren inte blir uttråkad och vandrar bort till en konkurrents webbplats. Det finns gott om kraft tillgänglig. Molnföretagen låter dig hantera användarnas förälskelse, men du måste hitta algoritmer som fungerar enkelt parallellt och sedan ordna så att servrarna fungerar synkroniserat.

IoT-säkerhet blir bara skrämmande

Mirai botnet som utvecklades under hösten var en väckarklocka för programmerare som skapar nästa generation av sakernas internet. Dessa smarta små enheter kan smittas som alla andra datorer, och de kan använda sin internetanslutning för att utlösa förödelse och låta krigshundarna glida. Och som alla vet kan hundar låtsas vara någon på internet.

Problemet är att den nuvarande försörjningskedjan för prylar inte har någon mekanism för att fixa programvara. Livscykeln för en gadget börjar vanligtvis med en lång resa från en tillverkningsanläggning till ett lager och slutligen till användaren. Det är inte vanligt i upp till tio månader att utvecklas mellan montering och första användning. Prylarna skickas halvvägs runt om i världen under de långa, kvardröjande månaderna. De sitter i lådor och väntar i fraktcontainrar. Sedan sitter de på pallar i stora lådaffärer eller i lager. När de packades upp kunde allt ha hänt dem.

Utmaningen är att hålla reda på allt. Det är svårt att uppdatera batterierna i rökdetektorerna varje gång klockorna byts. Men nu måste vi undra över vår brödrost, vår torktumlare och i stort sett allt i huset. Är programvaran uppdaterad? Har alla säkerhetsuppdateringar tillämpats? Antalet enheter gör det svårare att göra något intelligent för att övervaka hemnätverket. Det finns mer än 30 enheter med IP-adresser anslutna till min trådlösa router, och jag vet bara 24 av dem. Om jag ville behålla en smart brandvägg skulle jag gå nötter och öppna rätt portar för rätt smarta saker.

Att ge dessa enheter chansen att köra godtycklig kod är en välsignelse och en förbannelse. Om programmerare vill utföra smarta uppgifter och låta användare ha maximal flexibilitet bör plattformarna vara öppna. Så blomstrar tillverkarrevolutionen och öppen källkodskapacitet. Men detta ger också virusförfattare fler möjligheter än någonsin tidigare. Allt de behöver göra är att hitta ett märke av widget som inte har uppdaterat en viss drivrutin - voilà, de har hittat miljontals widgets som är baserade på att vara värd för bots.

Video kommer att dominera webben på nya sätt

När HTML-standardkommittén började bädda in videotaggar i HTML själv hade de förmodligen inte stora planer på att göra om underhållning. De ville förmodligen bara lösa problem från plugins. Men de grundläggande videotaggarna svarar på JavaScript-kommandon, och det gör dem i princip programmerbara.

Det är en stor förändring. Tidigare har de flesta videor konsumerats mycket passivt. Du sätter dig vid soffan, trycker på uppspelningsknappen och ser vad videoredigeraren bestämde att du skulle se. Alla som tittar på kattvideon ser katterna i samma ordning som kattvideons skapare bestämmer. Visst, några snabbspolade men videor går till deras slutsats med lika mycket regelbundenhet som schweiziska tåg.

JavaScript: s kontroll av video är begränsad, men de smartaste webbdesignerna funderar på smarta sätt att integrera video med resten av webbsidan i en sömlös duk. Detta öppnar upp för användaren möjligheten att kontrollera hur berättelsen utvecklas och interagerar med videon. Ingen kan vara säker på vad författarna, artisterna och redaktörerna kommer att föreställa sig, men de kommer att kräva programmeringstalang för att få det att hända.

Många av de snyggaste webbplatserna har redan en video som går tätt på smarta platser. Snart vill de alla flytta saker. Det räcker inte att sätta en IMGtagg med en JPEG-fil. Du måste ta en video - och hantera de standardfrågor som har splittrat webbläsarvärlden.

Konsoler kommer att fortsätta att ersätta datorer

Det är svårt att vara arg på spelkonsoler. Spelen är fantastiska och grafiken är fantastisk. De har byggt fantastiska grafikkort och relativt stabila programvaruplattformar för att vi ska kunna koppla av i vardagsrummet och drömma om att skjuta skurkar eller kasta en fotboll.

Vardagsrumskonsoler är bara början. Tillverkarna av föremål för resten av huset följer samma väg. De kunde ha valt ett ekosystem med öppen källkod, men tillverkarna bygger sina egna stängda plattformar.

Detta fragmenterar marknaden och gör det svårare för programmerare att hålla allt rakt. Vad som körs på en ljusströmbrytare körs inte på en annan. Hårtork kan tala samma protokoll som brödrost, men det kommer förmodligen inte. Det är mer arbete för programmerare att få fart och färre möjligheter att återanvända vårt arbete.

Data kommer att förbli kung

Efter det amerikanska presidentvalet 2016 gjorde ordslingande pundits narr av dataslinga pundits, vilket tyder på att all deras statistiska analys var en övning i dårskap. Förutsägelser var dramatiskt felaktiga och big data-folk såg dåligt ut.

Hur kom de fram till denna slutsats? Genom att jämföra en uppsättning siffror (förutsägelserna) med en annan uppsättning siffror (valresultaten). De behövde fortfarande informationen.

Data är som vi ser på internet. Ljus ger oss information om den verkliga världen, men siffror berättar om allt på nätet. Vissa människor kan göra dåliga förutsägelser baserat på ofullkomliga siffror, men det betyder inte att vi ska sluta samla och tolka siffrorna.

Datainsamling, sortering, kurering och analysering kommer att fortsätta att vara ett av de viktigaste uppgifterna för företaget. Beslutsfattarna behöver siffrorna och programmerarna kommer att fortsätta att ha i uppgift att leverera data på ett sätt som är lättare att förstå. Detta betyder inte att svaren kommer att vara perfekta. Kontext och intuition kommer att fortsätta att ha en roll, men behovet av att krossa data kommer inte att försvinna bara för att några få människor förutspådde att Donald Trump inte skulle väljas. Detta innebär mer arbete för programmerare, eftersom det inte finns något slut på synen för vårt behov av att bygga större, snabbare och mer datakrävande programvara.

Maskininlärning blir den nya standardfunktionen

När barn på college går en kurs som heter "Datastrukturer" får de lära sig hur livet var när deras farföräldrar skrev kod och kunde inte bero på existensen av ett lager som heter "databasen". Verkliga programmerare var tvungna att lagra, sortera och gå med i tabeller fulla av data utan hjälp av Oracle, MySQL eller MongoDB.

Maskininlärningsalgoritmer är några korta år från att göra det hoppet. Just nu måste programmerare och dataforskare skriva mycket av sin egen kod för att utföra komplexa analyser. Snart kommer språk som R och några av de smartaste business intelligence-verktygen att sluta vara speciella och börja vara en vanlig funktion i de flesta mjukvarustackar. De går från att vara fyra eller fem speciella bilder i PowerPoint-försäljningsdäcket till en liten rektangel i arkitekturteckningen som tas för givet.

Det kommer inte att hända över natten, och det är inte klart exakt vilken form det kommer att vara, men det är tydligt att fler och fler affärsplaner är beroende av maskininlärningsalgoritmer som hittar de bästa lösningarna.

UI-design kommer att bli mer komplicerat när datorer fortsätter att blekna

Varje dag verkar det som om det finns ett färre skäl för dig att använda en dator. Mellan ökningen av smartphones, vardagsrumskonsoler och surfplattan är de enda personer som fortfarande verkar hålla fast vid datorer kontorsarbetare och studenter som behöver lämna in ett uppdrag.

Detta kan vara en utmaning för programmerare. Det brukade vara enkelt att anta att programvaru- eller webbplatsanvändare skulle ha ett tangentbord och en mus. Nu har många användare inte heller. Smarttelefonanvändare mosar fingrarna i en glasskärm som knappt har plats för alla 26 bokstäver. Konsolanvändare trycker på piltangenterna på en fjärrkontroll.

Att designa webbplatser blir svårare eftersom en touchhändelse skiljer sig något från en klickhändelse. Användare har olika mängder precision och skärmar varierar mycket i storlek. Det är inte lätt att hålla det hela rakt, och det kommer bara att bli värre de kommande åren.

Slutet på öppenhet

Datorn passerar är inte bara den långsamma döden för en viss formfaktor. Det är att dö av en särskilt öppen och välkomnande marknadsplats. Dödsfallet på PC: n kommer att stänga möjligheterna.

När datorerna först skickades kunde en programmerare kompilera kod, kopiera den till skivor, sätta in skivorna i blixtlåsväskor och världen kunde köpa den. Det fanns ingen mellanman, ingen portvakt, ingen sträng central styrka som frågade oss att säga ”Moder, får jag?”

Konsoler är tätt låsta. Ingen kommer in på den marknaden utan investeringar i kapital. App-butikerna är lite mer öppna, men de är fortfarande muromgärdade trädgårdar som begränsar vad vi kan göra. Visst, de är fortfarande öppna för programmerare som hoppar genom de högra banden, men alla som gör ett falskt drag kan kastas. (På något sätt försenar de alltid våra appar medan skadlig programvara glider igenom. Gå figur.)

Denna skillnad är viktig för öppen källkod. Det handlar inte bara om att sälja disketter i baggies. Vi tappar förmågan att dela kod eftersom vi tappar förmågan att sammanställa och köra kod. Slutet på PC: n är en stor del av slutet på öppenheten. För närvarande har de flesta som läser detta förmodligen ett anständigt skrivbord som kan kompilera och köra kod, men det förändras långsamt.

Färre människor har möjlighet att skriva kod och dela den. För allt samtalet om behovet av att lära nästa generation att programmera finns det färre praktiska vektorer för öppen kod som ska distribueras.

Autonom transport är här för att stanna

Det är inte bara bilar. Vissa vill göra autonoma flygplan som inte är besvärade av vägen. Andra vill skapa autonoma skateboards för mycket lätta resor. Om den rör sig har någon hackare drömmar om att berätta var den ska gå.

Programmerare kontrollerar inte vad folk ser på skärmen. De kommer att kontrollera vart människor går och hur de interagerar med världen. Och människor är bara en del av spelet. Alla våra saker kommer också att röra sig självständigt.

Om du vill ha middag från en berömd kock i centrum kan en autonom skateboard med en uppvärmd kammare föra den till ditt hus. Om du vill ha din gräsklippning kommer en autonom gräsklippare att ersätta grannskapet.

Och programmerare kan använda alla de coola idéerna de hade under den första internetrevolutionen. Om du trodde att popup-annonser var dåliga på internet, vänta tills programmerare får betalt för att avleda dina autonoma rullskridskor förbi köksventilen på en ny restaurang. Hungrig ännu?

Lagen kommer att hitta nya gränser

Bläcket var knappt torrt på rättighetsdokumentet när debatter om vad det innebär att en sökning i våra tidningar var rimliga började. Nu, mer än 200 år senare, diskuterar vi fortfarande detaljerna.

Förändringar i teknik öppnar nya vägar för lagen. För några år sedan beslutade Högsta domstolen att fordonsspårningsteknik kräver en teckningsoption. Men det är först när polisen planterar spåraren i bilen. Ingen vet riktigt vilka regler som gäller när någon ställer in spårningsdata från Waze, Google Maps eller någon av de hundratals andra appar som cachar våra platser.

Vad sägs om att påverka hur maskinerna fungerar? Det är en sak att ladda ner data, men det är fruktansvärt frestande att ändra data också. Är det rättvist för polisen (eller privata aktörer) att förfalska dokument, rubriker eller bitar? Spelar det någon roll om målen är sanna terrorister eller helt enkelt människor som har parkerat för länge utan parkeringsplats utan att mata mätaren?