Cosa devono sapere gli sviluppatori Web sull'Internet delle cose?
Pubblicato: 2017-10-30Lo sviluppo del Web è emerso all'inizio dell'era di Internet, quando abbiamo iniziato a far dialogare computer più veloci e potenti tramite le linee telefoniche.
Quando Internet è diventato più sofisticato; lo sviluppo web è diventato più tecnico e professionale. Ora ci stiamo lasciando alle spalle l'era di Internet e ci stiamo spostando nell'era dell'Internet delle cose (IoT), dove i dispositivi che non sono mai stati considerati computer sono in grado di parlare tra loro, con gli utenti e con i server in modi che siamo solo in grado di immaginare.
Oggi, non ci dirigiamo necessariamente a siti Web sugli schermi dei computer per acquistare cose. Chiediamo invece ad Alexa di acquistare qualcosa tramite il nostro Amazon Echo ad attivazione vocale. Non aspettiamo semplicemente di essere a casa per cambiare il termostato. Colleghiamo il nostro Nest al nostro smartphone e gli diciamo di accendere il riscaldamento quando il nostro telefono rileva che siamo a circa 30 minuti da casa.
In questo momento, troviamo questo livello di connettività piuttosto comodo, ma con il progredire dell'era dell'Internet delle cose, scopriremo che i nostri dispositivi si sincronizzano tra lavoro, gioco e casa in modi senza precedenti. L'IoT sarà così dirompente per le nostre vite man mano che le conosciamo che è difficile immaginare con precisione come sarà il futuro, ma c'è una cosa che sappiamo per certo. L'IoT ha già avuto un enorme impatto sullo sviluppo web e il suo impatto è destinato a crescere.
Ciò significa che tutti gli sviluppatori Web dovranno considerare l'IoT a un certo punto. Nell'interesse di anticipare i tempi, abbiamo stabilito tutto ciò che gli sviluppatori web devono sapere sull'Internet delle cose.
Sviluppo Web e Internet delle cose adesso
Questi sono i giorni del selvaggio West dello sviluppo dell'IoT. Ci sono molte speculazioni e sperimentazioni, con poca standardizzazione al momento (almeno cinque grandi organizzazioni stanno lavorando su standard IoT contemporaneamente). Quindi non sappiamo esattamente come andranno le cose. Ma possiamo vedere che alcune aree si ripresentano ancora e ancora quando gli esperti discutono dell'impatto dell'IoT sullo sviluppo web di oggi.
L'impatto dell'IoT sullo sviluppo Web ora
- Il back-end è ovunque: in questo momento, ogni dispositivo è costruito nel suo piccolo mondo. Ogni azienda ha il proprio modo in cui i dispositivi si connettono e parlano tra loro. Ogni dispositivo raccoglie il proprio tipo di dati e ogni dispositivo utilizza i propri tipi di comandi per funzionare. Ciò significa che molti centri di sviluppo di app si limitano a far combaciare bene la tua app con altre app già consolidate. Node.js aiuta in questo, poiché è emerso come un framework leader per stabilire comunicazioni tra dispositivi IoT. Tuttavia, il problema è difficilmente risolto.
- Le interfacce hanno bisogno di semplicità : nessuno ha il tempo di capire comandi complessi quando si tratta di elettrodomestici, quindi non c'è spazio per una mancanza di chiarezza nel pannello di controllo di una caffettiera. In altre parole, le interfacce utente devono essere facili da utilizzare e reattive. Tutti gli strumenti della tua cintura di usabilità verranno utilizzati durante la progettazione delle interfacce utente per i dispositivi IoT, soprattutto perché la maggior parte delle aziende vorrà che i propri prodotti siano controllati dagli smartphone e dagli schermi dei dispositivi. I controlli dovrebbero essere ovvi sul telefono come lo sono sulla macchina. La complessità dovrebbe venire solo dietro le quinte. Ciò che l'utente deve vedere è un design pulito e logico.
- Mitigazione della latenza di rete : quando si preme un pulsante sulla stampante, si prevede che inizi a stampare immediatamente. Ma con i dispositivi IoT, il comando passa dallo schermo al server fino al dispositivo, anziché dallo schermo direttamente al dispositivo. Questo passaggio aggiuntivo potrebbe creare un buffer tra il comando e l'azione, specialmente con connessioni di rete lente. Gli utenti vedranno un prodotto che è lento o inefficace, nessuno dei quali vogliono nelle loro vite. Quindi gli sviluppatori IoT devono progettare app in grado di gestire connessioni lente e persino interrotte, in modo che gli utenti ottengano ciò che vogliono dai loro dispositivi.
- Pensa al potere : tutti noi amiamo pensare al potere, giusto? Si spera che la risposta sia "sì" perché gli sviluppatori IoT dovranno pensare a quanta potenza di calcolo assorbono le loro app in ogni momento. Come mai? Perché la maggior parte dei dispositivi IoT sono alimentati a batteria, wireless e non hanno molto spazio per chip di memoria estesi. Più l'app è complessa, maggiore sarà la potenza che il chip dovrà consumare più a lungo, il che consumerà la batteria e porterà a clienti delusi che chiedono indietro i loro soldi. In breve, ogni parte del design di un'app dovrebbe utilizzare la quantità minima di energia.
- Privacy e sicurezza : quest'area è un po' difficile perché la privacy e la sicurezza sono così soggettive. Le idee su cosa è sicuro e cosa dovrebbe essere tenuto privato cambiano costantemente, specialmente quando le scambiamo per comodità. Ad esempio, la maggior parte di noi si sente a disagio per i sensori impiantabili che consentono ai nostri datori di lavoro di tracciare i nostri movimenti, ma i dipendenti della startup svedese Epic entre ricevono volentieri le iniezioni e persino organizzano feste per altri che si offrono volontari per la tecnologia impiantabile. Citano la comodità dei dispositivi ID impiantabili come principale motivazione. Pensa anche a tutte le paure relative allo shopping online nei primi anni 2000. Molte di queste paure si sono avverate, tra cui il furto di identità e la diffusa frode, ma la maggior parte di noi scambia felicemente la propria sicurezza con la comodità di fare acquisti da casa. Tuttavia, i criminali sanno che avere più dispositivi collegati a reti penetrabili significa maggiori opportunità di truffa e furto. Ecco perché la protezione dal furto di identità, nonché la sicurezza e la privacy complessive devono essere integrate sia nelle reti stesse che nelle app utilizzate dai dispositivi. Più muri devono essere sfondati, meno incentivi e opportunità hanno i criminali.
- Attenersi a ciò che sai non ti salverà : anche se decidi di non voler lavorare sullo sviluppo dell'IoT, dovrai comunque considerare l'IoT quando sviluppi qualcosa. Pensala in questo modo: si stima che 35,6 milioni di persone abbiano altoparlanti abilitati alla voce nelle loro case. In questo momento, tendono a usarli per accedere ai siti Web dell'azienda (come gli utenti di Amazon Echo che ordinano cose da Amazon). Ma questa capacità si espanderà e gli utenti si aspetteranno di poter accedere a qualsiasi sito Web da qualsiasi dispositivo IoT. Quindi è solo questione di tempo prima, come prima del design reattivo, devi presumere che gran parte degli utenti di un sito Web proverrà da un dispositivo IoT e costruirà di conseguenza.
Le lingue che devi conoscere ora
Quindi la marcia dello sviluppo dell'IoT è sostanzialmente inevitabile e dovrai iniziare a utilizzare determinati linguaggi quando inizi a sviluppare per l'IoT. Ci sono molti linguaggi di programmazione che vengono utilizzati oggi, ma questi sono quelli più frequentemente utilizzati dagli sviluppatori IoT.
- C : Questa è una scelta comune per ora, solo perché è un linguaggio semplificato che funziona bene con dispositivi che hanno una memoria limitata. Una volta che i dispositivi diventeranno più avanzati, tuttavia, le capacità di C saranno superate.
- C++ : questo è il più complesso dei linguaggi comunemente usati ora, poiché è potente ma ancora abbastanza agile. Sfortunatamente, la sua complessità significa che non viene adottato troppo ampiamente, poiché la maggior parte dei dispositivi IoT non è in grado di gestirlo al momento. Quindi ciò potrebbe significare che non verrà adottato nemmeno in futuro, poiché gli sviluppatori escogitano modi per gestire i problemi di sviluppo con linguaggi di livello superiore e più comunemente usati.
- Java : Java è uno dei linguaggi di sviluppo più comunemente insegnati, quindi quasi tutti sanno come usarlo. Inoltre, sebbene non sia potente come il C++, è comunque più facile da gestire per le limitate memorie dei dispositivi IoT di oggi. Combina queste due cose - il suo ampio utilizzo e la sua adeguatezza per le esigenze di sviluppo più attuali - e avrai uno dei linguaggi di sviluppo più popolari.
- Python : questo è l'altro grande linguaggio nello sviluppo dell'IoT in questo momento, per molti degli stessi motivi di Java. È ben consolidato, ampiamente insegnato e flessibile. Una cosa importante è il Raspberry Pi. In quanto linguaggio di programmazione principale di Pi, Python è fondamentale per lo sviluppo dell'IoT. La potenza, le dimensioni ridotte e il prezzo contenuto del Pi significano che è l'ideale per studenti e sperimentatori, e ora è utilizzato in tutto, dalla ricerca sulla robotica alla costruzione di telecamere attivate dal movimento piuttosto semplici.
Il futuro dell'IoT e dello sviluppo Web
Questo potrebbe essere un momento di sperimentazione e speculazione selvaggia, ma ci sono ancora alcuni chiari cambiamenti all'orizzonte. I siti Web non saranno l'unico luogo in cui i consumatori ricercano e acquistano prodotti. Le app e i sensori di controllo dell'inventario che monitorano l'efficienza degli impiegati diventeranno comuni nelle attività quotidiane delle persone come i riscaldatori intelligenti e i baby monitor accessibili a Internet. Nel regno dell'IoT, Google e Apple dovranno imparare a giocare insieme, o l'uno mangerà l'altro, perché alla fine tutto questo dovrà funzionare senza problemi.
Gli esperti sono abbastanza sicuri, tuttavia, che la sfida più grande per gli sviluppatori web in particolare sarà il cambiamento di mentalità. Invece di pensare ai singoli dispositivi e al modo in cui potrebbero utilizzare Internet, gli sviluppatori dovranno utilizzare dati utente estesi per modellare i servizi, quasi indipendentemente dal prodotto.
Dove è probabile che l'IoT abbia un impatto sullo sviluppo Web in futuro
- App per reti, non solo dispositivi : in questo momento, le app per dispositivi IoT si comportano come soluzioni su misura per quei prodotti specifici. Gli sviluppatori pensano a una cosa interessante che vorrebbero che un dispositivo facesse e hanno iniziato a creare le istruzioni per questo. In futuro, tuttavia, gli sviluppatori IoT dovranno iniziare a pensare in modo più ampio. Invece di creare app per singoli dispositivi, dovrai essere in grado di creare app che funzionino su una rete. Pensala in questo modo: al momento, reti come Wink connettono tutti i dispositivi IoT di una casa insieme sotto un unico telecomando principale, ma la maggior parte delle app che raccolgono dati, condividono informazioni o eseguono istruzioni sono ancora all'interno dei singoli dispositivi. In futuro, la connettività IoT vedrà le app più potenti posizionate all'interno della rete, non all'interno dei dispositivi. In un certo senso, la rete diventerà più intelligente, fornendo tutta l'analisi dei dati, il coordinamento e le istruzioni, e i dispositivi e gli apparecchi diventeranno più stupidi, ridotti a semplici raccoglitori di dati e seguaci di istruzioni.
- Siti Web sempre più personalizzati : poiché i dispositivi sono in grado di raccogliere e condividere più dati tra loro, scoprirai che le esperienze di navigazione in Internet cambieranno. I siti Web saranno automaticamente in grado di fornire ai clienti un servizio su misura, basato sui dati generati dai loro dispositivi e prodotti IoT. Questo potrebbe vedere il loro frigorifero, lavatrice e altri elettrodomestici collegati che inviano dati al loro negozio di alimentari online preferito, in modo che quando hai aperto il sito Web, ha mostrato loro automaticamente i punti base di cui erano a corto. Ciò richiederebbe ovviamente un sofisticato sviluppo del back-end, poiché il sito Web del negozio di alimentari dovrebbe essere in grado di comunicare con ogni marca e tipo di elettrodomestico sul mercato. E fino a quando non saranno stabiliti gli standard del settore, sarà davvero un compito molto arduo.
- Integrazione a tutti i livelli : in futuro, le aziende vorranno essere in grado di rispondere istantaneamente alle richieste dei clienti. Ad esempio, le linee di produzione risponderanno in modo dinamico a un aumento degli acquisti sul sito web. Ciò significa che tutte le app che sviluppi dovranno integrarsi in intere linee di produzione e catene di approvvigionamento. In effetti, questa vasta integrazione è il motivo per cui la standardizzazione è una sfida così importante in questo momento.
- Gli schermi non sono l'unico modo : in futuro, molti dispositivi potrebbero parlare tra loro senza molto in termini di interazione dell'utente. Come con Nest, gli utenti possono interagire solo con un semplice pannello di controllo e il resto dei dati verrà raccolto da sensori e app con cui gli utenti non interagiranno direttamente. Ciò significa che il design del front-end sarà più semplice e tutto il resto sarà molto più complicato.
- Nuove considerazioni sui test : quando si testa un'applicazione IoT, è necessario pensare a concetti completamente nuovi. Gli utenti saranno in grado di controllare il proprio dispositivo IoT se la rete è in ritardo? Cosa succede se le connessioni di rete, sia tra l'utente e il dispositivo che tra il dispositivo e il server, rallentano o vengono interrotte? C'è un modo per mantenere la funzionalità dell'app ma ridurre il consumo di energia? Queste sono solo alcune delle cose che gli sviluppatori dovranno chiedersi costantemente nella fase di test.
Le lingue, il sistema operativo e i protocolli che potresti aver bisogno di conoscere
È qui che le previsioni possono diventare davvero confuse. Se lo sviluppo dei linguaggi di programmazione in passato ci ha insegnato qualcosa, è che non possiamo presumere che la tecnologia di domani avrà molto in comune con quella di oggi. Tuttavia, abbiamo alcuni motivi per pensare che questi strumenti torneranno utili.
- JavaScript : è già popolare e già utilizzato, quindi molti pensano che JavaScript, e in particolare l'ambiente Node.js, continueranno a crescere in popolarità. Per lo meno, sarà una delle frecce più utili nella tua faretra di sviluppo IoT.
- Weave : Meno un linguaggio più un protocollo di comunicazione da macchina a macchina, Weave funziona con il sistema operativo Brillo di Google per consentire ai dispositivi di parlare tra loro in modo economico e rapido. Brillo è fondamentalmente una versione ridotta di Android, il che la rende più utile per dispositivi con capacità limitate. Richiede anche meno energia di Android, rendendolo un'opzione più economica e più interessante per lo sviluppo dell'IoT.
- Swift : Questo è il linguaggio open source di Apple. Funziona con iOS, MacOS e HomeKit (il sistema operativo utilizzato da Apple per connettere tutti i suoi dispositivi IoT). Se vuoi entrare al piano terra con l'universo IoT di Apple, devi conoscere questo.
- Le lingue che non sono state ancora inventate : possiamo solo speculare su quali saranno, e se la storia è qualcosa su cui basarsi, ci sbagliamo di grosso in tutte le nostre previsioni.
Conclusione
Entrare nell'era dell'Internet delle cose è eccitante e stimolante in egual misura. Ci sono cose che possiamo imparare e fare ora, ma in realtà c'è molto altro da imparare e da capire in futuro. Sappiamo che ci stiamo spostando verso un mondo più connesso, in cui masse di dati e connessioni di rete modellano ogni parte della nostra vita, ma nessuno lo sa come sembri. Sappiamo che JavaScript è utile ora e potrebbe crescere fino a formare la spina dorsale dello sviluppo dell'IoT, ma ciò non significa necessariamente che lo sarà. Sappiamo che ogni nuova opportunità genera nuove sfide e ogni nuova soluzione crea le proprie opportunità e sfide, che non possiamo nemmeno iniziare ad anticipare.
Naturalmente, la sfida di apprendere e inventare nuove soluzioni è ciò che attira la maggior parte degli sviluppatori sul campo, quindi ci sarà molto per tenerti interessato - e occupato - per i decenni a venire. E questa è probabilmente la cosa più importante che gli sviluppatori web devono sapere sull'Internet delle cose.