11 previsioni per il futuro della programmazione

L'unica cosa che vola più veloce del tempo è il progresso della tecnologia. Una volta dopo pranzo, un amico progettista di chip si è scusato rapidamente con l'abile spiegazione che la legge di Moore significava che doveva rendere il suo chip set dello 0,67% più veloce ogni settimana, anche durante le vacanze. Se non lo facesse, le chip non raddoppierebbero di velocità ogni due anni.

Ora che il 2017 è arrivato, è il momento di fare il punto sui cambiamenti tecnologici futuri, se non altro per aiutarti a sapere dove scommettere per costruire abilità di programmazione per il futuro.

Dal crescente problema di sicurezza dell'internet delle cose all'apprendimento automatico ovunque, il futuro della programmazione diventa sempre più difficile da prevedere.

La nuvola sconfiggerà la legge di Moore

Ci sono oppositori che affermano che le società di chip hanno sbattuto contro un muro. Non raddoppiano più la velocità del chip ogni due anni come hanno fatto durante gli anni felici degli anni '80 e '90. Forse, ma non importa più perché i confini tra i chip sono meno definiti che mai.

In passato, la velocità della CPU nella scatola sulla tua scrivania era importante perché, beh, potevi solo andare veloce quanto il criceto di silicone all'interno poteva girare la sua ruota. L'acquisto di un criceto più grande e veloce ogni pochi anni ha anche raddoppiato la tua produttività.

Ma ora la CPU sulla tua scrivania mostra a malapena le informazioni sullo schermo. La maggior parte del lavoro viene svolto nel cloud dove non è chiaro quanti criceti stiano lavorando al tuo lavoro. Quando esegui una ricerca su Google, la loro enorme nuvola potrebbe dedicare 10, 20, persino 1.000 criceti a trovare la risposta giusta per te.

La sfida per i programmatori è trovare modi intelligenti per distribuire in modo elastico la potenza di calcolo sufficiente per il problema di ciascun utente, in modo che la soluzione arrivi abbastanza velocemente e l'utente non si annoi e si allontani dal sito di un concorrente. C'è molta potenza disponibile. Le società cloud ti permetteranno di gestire la cotta di utenti, ma dovrai trovare algoritmi che funzionino facilmente in parallelo, quindi fare in modo che i server funzionino in sincronia.

La sicurezza IoT diventerà solo più spaventosa

La botnet Mirai che si è sviluppata lo scorso autunno è stata un campanello d'allarme per i programmatori che stanno creando la prossima generazione dell'Internet delle cose. Questi piccoli dispositivi intelligenti possono essere infettati come qualsiasi altro computer e possono usare la loro connessione Internet per creare scompiglio e lasciarsi sfuggire i cani da guerra. E come tutti sanno, i cani possono fingere di essere chiunque su Internet.

Il problema è che l'attuale catena di fornitura di gadget non ha alcun meccanismo per riparare il software. Il ciclo di vita di un gadget di solito inizia con un lungo viaggio da uno stabilimento di produzione a un magazzino e infine all'utente. Non è normale che trascorrano fino a 10 mesi tra l'assemblaggio e il primo utilizzo. I gadget vengono spediti in tutto il mondo durante quei lunghi e persistenti mesi. Si siedono in scatole che aspettano nei container. Quindi si siedono su pallet nei grandi magazzini o nei magazzini. Nel momento in cui vengono disimballati, potrebbe essere successo loro di tutto.

La sfida è tenere traccia di tutto. È già abbastanza difficile aggiornare le batterie dei rilevatori di fumo ogni volta che gli orologi cambiano. Ma ora dovremo chiederci del nostro tostapane, della nostra asciugatrice e praticamente di tutto ciò che è in casa. Il software è aggiornato? Sono state applicate tutte le patch di sicurezza? Il numero di dispositivi rende più difficile fare qualcosa di intelligente per il monitoraggio della rete domestica. Ci sono più di 30 dispositivi con indirizzi IP collegati al mio router wireless e conosco l'identità solo di 24 di loro. Se volessi mantenere un firewall intelligente, impazzirei ad aprire le porte giuste per le cose intelligenti giuste.

Dare a questi dispositivi la possibilità di eseguire codice arbitrario è una benedizione e una maledizione. Se i programmatori desiderano eseguire attività intelligenti e consentire agli utenti la massima flessibilità, le piattaforme dovrebbero essere aperte. È così che fiorisce la rivoluzione dei maker e la creatività open source. Ma questo offre anche agli autori di virus più opportunità che mai. Tutto quello che devono fare è trovare una marca di widget che non ha aggiornato un driver particolare: voilà, hanno trovato milioni di widget pronti per ospitare i bot.

Il video dominerà il Web in modi nuovi

Quando il comitato per gli standard HTML ha iniziato a incorporare i tag video nell'HTML stesso, probabilmente non aveva grandi progetti di rifare l'intrattenimento. Probabilmente volevano solo risolvere i problemi dei plugin. Ma i tag video di base rispondono ai comandi JavaScript e questo li rende essenzialmente programmabili.

Questo è un grande cambiamento. In passato, la maggior parte dei video veniva consumata in modo molto passivo. Ti siedi sul divano, premi il pulsante di riproduzione e vedi cosa ha deciso l'editor del video che dovresti vedere. Tutti quelli che guardano quel video sui gatti vedono i gatti nella stessa sequenza decisa dal creatore del video sui gatti. Certo, alcuni avanzamenti veloci, ma i video si dirigono alla loro conclusione con la stessa regolarità dei treni svizzeri.

Il controllo del video da parte di JavaScript è limitato, ma i web designer più intelligenti stanno trovando modi intelligenti per integrare il video con il resto della pagina web in una tela senza soluzione di continuità. Questo apre la possibilità all'utente di controllare come si svolge la narrazione e interagire con il video. Nessuno può essere sicuro di cosa immagineranno gli scrittori, gli artisti e gli editori, ma avranno bisogno di talento di programmazione per realizzarlo.

Molti dei siti Web più intelligenti hanno già video in esecuzione in punti intelligenti. Presto vorranno tutti spostare le cose. Non sarà sufficiente inserire un IMGtag con un file JPEG. Dovrai acquisire un video e affrontare i problemi degli standard che hanno frammentato il mondo dei browser.

Le console continueranno a sostituire i PC

È difficile arrabbiarsi con le console di gioco. I giochi sono fantastici e la grafica è sorprendente. Hanno costruito ottime schede video e piattaforme software relativamente stabili per permetterci di rilassarci in soggiorno e sognare di sparare ai cattivi o di tirare un pallone da calcio.

Le console del soggiorno sono solo l'inizio. I produttori di articoli per il resto della casa stanno seguendo lo stesso percorso. Avrebbero potuto scegliere un ecosistema open source, ma i produttori stanno costruendo le proprie piattaforme chiuse.

Questo frammenta il mercato e rende più difficile per i programmatori mantenere tutto in ordine. Ciò che funziona su un interruttore della luce non funziona su un altro. L'asciugacapelli può parlare lo stesso protocollo del tostapane, ma probabilmente non lo farà. È più lavoro per i programmatori per essere aggiornati e meno opportunità di riutilizzare il nostro lavoro.

I dati rimarranno re

Dopo le elezioni presidenziali statunitensi del 2016, gli esperti che lanciano parole hanno preso in giro gli esperti che lanciano dati, suggerendo che tutte le loro analisi statistiche erano un esercizio di sciocchezza. Le previsioni erano drammaticamente sbagliate e le persone dei big data sembravano pessime.

Come sono arrivati ​​a questa conclusione? Confrontando una serie di numeri (le previsioni) con un'altra serie di numeri (i risultati delle elezioni). Avevano ancora bisogno dei dati.

I dati sono il modo in cui vediamo in Internet. La luce ci fornisce informazioni sul mondo reale, ma i numeri ci dicono tutto online. Alcune persone possono fare previsioni sbagliate basate su numeri imperfetti, ma ciò non significa che dovremmo smettere di raccogliere e interpretare i numeri.

La raccolta, il confronto, la selezione e l'analisi dei dati continueranno a essere uno dei compiti più importanti per l'azienda. I responsabili delle decisioni hanno bisogno dei numeri e i programmatori continueranno a essere incaricati di fornire i dati in un modo più facile da capire. Questo non significa che le risposte saranno perfette. Il contesto e l'intuizione continueranno ad avere un ruolo, ma la necessità di disputare i dati non scomparirà semplicemente perché alcune persone avevano previsto che Donald Trump non sarebbe stato eletto. Ciò significa più lavoro per i programmatori, poiché non c'è fine alla nostra necessità di creare software più grande, più veloce e ad alta intensità di dati.

L'apprendimento automatico diventerà la nuova funzionalità standard

Quando i bambini al college seguono un corso chiamato "Strutture dati", imparano com'era la vita quando i loro nonni scrivevano il codice e non potevano dipendere dall'esistenza di un livello chiamato "database". I veri programmatori dovevano archiviare, ordinare e unire tabelle piene di dati, senza l'aiuto di Oracle, MySQL o MongoDB.

Gli algoritmi di apprendimento automatico sono a pochi anni dal fare quel salto. In questo momento i programmatori e gli scienziati dei dati devono scrivere gran parte del proprio codice per eseguire analisi complesse. Presto linguaggi come R e alcuni dei più intelligenti strumenti di business intelligence smetteranno di essere speciali e inizieranno a essere una caratteristica normale nella maggior parte degli stack di software. Passeranno dall'essere quattro o cinque diapositive speciali nel mazzo di vendita di PowerPoint a un piccolo rettangolo nel disegno dell'architettura che viene dato per scontato.

Non accadrà dall'oggi al domani e non è chiaro esattamente quale sarà la forma, ma è chiaro che sempre più piani aziendali dipendono da algoritmi di apprendimento automatico per trovare le soluzioni migliori.

Il design dell'interfaccia utente diventerà più complicato man mano che i PC continuano a svanire

Ogni giorno sembra che ci sia un motivo in meno per utilizzare un PC. Tra l'ascesa di smartphone, console da soggiorno e tablet, le uniche persone che sembrano ancora aggrapparsi ai PC sono gli impiegati e gli studenti che devono consegnare un compito.

Questa può essere una sfida per i programmatori. Era facile presumere che gli utenti del software o del sito web avessero una tastiera e un mouse. Ora molti utenti non hanno neanche. Gli utenti di smartphone stanno schiacciando le dita su uno schermo di vetro che a malapena ha spazio per tutte le 26 lettere. Gli utenti della console stanno premendo i tasti freccia su un telecomando.

La progettazione di siti Web sta diventando più complicata perché un evento di tocco è leggermente diverso da un evento di clic. Gli utenti hanno livelli di precisione diversi e gli schermi variano notevolmente in termini di dimensioni. Non è facile tenere tutto in ordine e negli anni a venire non farà che peggiorare.

La fine dell'apertura

Il passaggio del PC non è solo la lenta morte di un particolare fattore di forma. È la morte di un mercato particolarmente aperto e accogliente. La morte del PC rappresenterà una chiusura di possibilità.

Quando i PC sono stati spediti per la prima volta, un programmatore potrebbe compilare il codice, copiarlo su dischi, inserire quei dischi in sacchetti a chiusura lampo e il mondo potrebbe comprarlo. Non c'era un intermediario, nessun guardiano, nessuna forza centrale severa che ci chiedesse di dire: "Madre, posso?"

Le console sono saldamente bloccate. Nessuno entra in quel mercato senza un investimento di capitale. Gli app store sono un po 'più aperti, ma sono comunque giardini recintati che limitano ciò che possiamo fare. Certo, sono ancora aperti ai programmatori che saltano attraverso i cerchi giusti, ma chiunque faccia una mossa falsa può essere lanciato. (In qualche modo ritardano sempre le nostre app mentre il malware passa attraverso. Vai a capire.)

Questa distinzione è importante per l'open source. Non si tratta solo di vendere floppy disk in buste. Stiamo perdendo la capacità di condividere il codice perché stiamo perdendo la capacità di compilare ed eseguire il codice. La fine del PC è una parte importante della fine dell'apertura. Per ora, la maggior parte delle persone che leggono questo probabilmente ha un desktop decente in grado di compilare ed eseguire codice, ma sta cambiando lentamente.

Meno persone hanno l'opportunità di scrivere codice e condividerlo. Nonostante tutti i discorsi sulla necessità di insegnare alla prossima generazione a programmare, ci sono meno vettori pratici per il codice aperto da distribuire.

Il trasporto autonomo è qui per restare

Non sono solo le auto. Alcuni vogliono realizzare aerei autonomi che non siano ostacolati dalla necessità di strade. Altri vogliono creare skateboard autonomi per viaggi molto leggeri. Se si muove, qualche hacker sogna di dirgli dove andare.

I programmatori non controlleranno ciò che le persone vedono sullo schermo. Controlleranno dove vanno le persone e come interagiscono con il mondo. E le persone sono solo una parte del gioco. Tutte le nostre cose si muoveranno anche in modo autonomo.

Se vuoi cenare da un famoso chef del centro, uno skateboard autonomo con una camera riscaldata potrebbe portarlo a casa tua. Se vuoi che il tuo prato venga falciato, un tosaerba autonomo sostituirà il bambino del vicinato.

E i programmatori possono utilizzare tutte le fantastiche idee che avevano durante la prima rivoluzione di Internet. Se pensavi che le pubblicità pop-up fossero cattive su Internet, aspetta che i programmatori vengano pagati per deviare i tuoi pattini a rotelle autonomi oltre l'apertura della cucina di un nuovo ristorante. Hai ancora fame?

La legge troverà nuovi limiti

L'inchiostro era appena asciutto sulla Carta dei diritti quando sono iniziati i dibattiti su cosa significhi essere ragionevole per una ricerca nei nostri documenti. Ora, più di 200 anni dopo, stiamo ancora discutendo i dettagli.

I cambiamenti nella tecnologia aprono nuove strade per la legge. Alcuni anni fa, la Corte Suprema ha deciso che la tecnologia di localizzazione dei veicoli richiede un mandato. Ma è solo quando la polizia posiziona il localizzatore in macchina. Nessuno sa veramente quali regole si applicano quando qualcuno cita in giudizio i dati di tracciamento di Waze, Google Maps o una qualsiasi delle centinaia di altre app che memorizzano nella cache le nostre posizioni.

Che ne dici di influenzare il funzionamento delle macchine? Una cosa è scaricare i dati, ma è anche spaventosamente allettante cambiare i dati. È giusto che la polizia (o attori privati) falsifichi documenti, intestazioni o frammenti? Ha importanza se gli obiettivi sono veri terroristi o semplicemente persone che hanno parcheggiato troppo a lungo in un punto vietato al parcheggio senza alimentare il contatore?