Cosa devono sapere gli sviluppatori web sull’Internet of Things?
Lo sviluppo del Web è emerso all’inizio dell’era di Internet, quando abbiamo iniziato a far comunicare tra loro computer più veloci e potenti tramite linee telefoniche.
Man mano che Internet diventava più sofisticato; lo sviluppo web è diventato più tecnico e più professionale. Ora ci stiamo lasciando alle spalle l’era di Internet per entrare nell’era dell’Internet delle cose (IoT), in cui i dispositivi che non sono mai stati considerati computer sono in grado di comunicare tra loro, con gli utenti e con i server in modi in cui siamo solo in grado di farlo immaginare.
Oggi, non andiamo necessariamente sui siti Web sugli schermi dei computer per acquistare cose. Invece, chiediamo 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 di distanza da casa.
In questo momento, troviamo questo livello di connettività abbastanza confortevole, ma con il progredire dell’Internet of Things Age, 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 così come 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 prendere in considerazione l’IoT prima o poi. Nell’interesse di anticipare la curva, abbiamo esposto tutto ciò che gli sviluppatori Web devono sapere sull’Internet of Things.
Sviluppo Web e Internet delle cose ora
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 contemporaneamente sugli standard IoT). Quindi non sappiamo esattamente come andranno a finire le cose. Ma possiamo vedere che alcune aree emergono ancora e ancora quando gli esperti discutono dell’impatto dell’IoT sullo sviluppo web 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 di connettere e comunicare tra loro i dispositivi. 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 sì che la tua app si integri bene con altre app già consolidate. Node.js aiuta in questo, poiché è emerso come framework leader per stabilire comunicazioni tra dispositivi IoT. Tuttavia, la questione è difficilmente risolta.
- Le interfacce hanno bisogno di semplicità: nessuno ha il tempo di capire comandi complessi quando si tratta di elettrodomestici, quindi non c’è spazio per la mancanza di chiarezza nel pannello di controllo di una caffettiera. In altre parole, le interfacce utente devono essere facili da imparare e reattive. Tutti gli strumenti nella tua cintura di usabilità saranno utilizzati durante la progettazione delle interfacce utente per i dispositivi IoT, soprattutto perché la maggior parte delle aziende vorrà che i loro prodotti siano controllati dagli smartphone e dagli schermi dei dispositivi stessi. I controlli dovrebbero essere tanto evidenti sul telefono quanto lo sono sulla macchina. La complessità dovrebbe arrivare solo dietro le quinte. Ciò che l’utente deve vedere è un design pulito e logico.
- Mitigare la latenza di rete: quando si preme un pulsante sulla stampante, ci si aspetta che inizi a stampare immediatamente. Ma con i dispositivi IoT, il comando va dallo schermo al server al dispositivo, invece che dallo schermo direttamente al dispositivo. Quel 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 desidera nella propria vita. Quindi gli sviluppatori IoT devono progettare app in grado di gestire e gestire connessioni lente e persino interrotte, in modo che gli utenti ottengano ciò che desiderano dai propri 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 occupano 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ù complessa è l’app, 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 assoluta di energia.
- Riservatezza e sicurezza: Quest’area è un po’ difficile perché la privacy e la sicurezza sono molto soggettive. Le idee su ciò che è sicuro e ciò che dovrebbe essere tenuto privato cambiano costantemente, specialmente quando le scambiamo per convenienza. Ad esempio, la maggior parte di noi si sente a disagio riguardo ai sensori impiantabili che consentono ai nostri datori di lavoro di tracciare i nostri movimenti, ma i dipendenti della startup svedese Epic entre accettano volentieri le iniezioni e organizzano anche feste per altri che si offrono volontari per avere la tecnologia impiantabile. Citano la comodità dei dispositivi di identificazione impiantabili come principale motivazione. Pensa anche a tutte le paure legate allo shopping online nei primi anni 2000. Molte di queste paure si sono avverate, tra cui il furto di identità e le frodi diffuse, ma la maggior parte di noi scambia felicemente la propria sicurezza con la comodità di fare acquisti da casa. Ancora, i criminali sanno che avere più dispositivi connessi a reti penetrabili significa maggiori opportunità di truffa e furto. Ecco perché la protezione dal furto di identità, nonché la sicurezza e la privacy generali 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 allo sviluppo dell’IoT, dovrai comunque considerare l’IoT quando sviluppi qualcosa. Pensala in questo modo: circa 35,6 milioni di persone hanno 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 praticamente da qualsiasi dispositivo IoT. Quindi è solo una questione di tempo prima che, come prima del design reattivo, devi presumere che un’ampia percentuale di utenti di un sito web provenga da un dispositivo IoT e crei 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 con 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é al momento la maggior parte dei dispositivi IoT non è in grado di gestirlo. 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 è tra i linguaggi di sviluppo più comunemente insegnati, quindi quasi tutti sanno come usarlo. Inoltre, sebbene non sia potente come C++, è comunque più facile da gestire per le memorie limitate degli odierni dispositivi IoT. Combina queste due cose – il suo ampio utilizzo e la sua adeguatezza per la maggior parte delle esigenze di sviluppo 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. Come principale linguaggio di programmazione del Pi, Python è fondamentale per lo sviluppo dell’IoT. La potenza, le dimensioni ridotte e il prezzo basso del Pi lo rendono 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 da Internet. Nel regno dell’IoT, Google e Apple dovranno imparare a giocare insieme o uno si mangerà l’altro, perché alla fine tutto 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 le reti, non solo per i dispositivi: Al momento, le app per i dispositivi IoT fungono da soluzioni su misura per quei prodotti specifici. Gli sviluppatori pensano a una cosa interessante che vorrebbero che un dispositivo facesse e si mettono 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 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 all’interno della rete, non all’interno dei dispositivi. In un certo senso, la rete diventerà più intelligente,
- 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 connesso, la lavatrice e altri elettrodomestici che inviano dati al loro negozio di alimentari online preferito, in modo che quando apri il sito Web, mostri loro automaticamente i prodotti di base che stavano per esaurirsi. Ciò richiederebbe ovviamente uno sviluppo back-end sofisticato, 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 svilupperai dovranno integrarsi in intere linee di produzione e supply chain. In effetti, questa ampia 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 comunicare tra loro senza molto in termini di interazione con l’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 in 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, continuerà a crescere in popolarità. Per lo meno, sarà una delle frecce più utili nella tua faretra per lo sviluppo dell’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 comunicare tra loro in modo economico e rapido. Brillo è fondamentalmente una versione ridotta di Android, che lo rende più utile per dispositivi con capacità limitate. Richiede anche meno energia di Android, il che lo rende un’opzione più economica e attraente 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, sbaglieremo praticamente tutte le nostre previsioni.
Conclusione
Entrare nell’era dell’Internet of Things è entusiasmante e stimolante in egual misura. Ci sono cose che possiamo imparare e fare ora, ma in realtà c’è molto altro da imparare e capire in futuro. Sappiamo che ci stiamo muovendo verso un mondo più perfettamente connesso, in cui masse di dati e connessioni di rete danno forma a ogni parte della nostra vita, ma nessuno sa che aspetto abbia effettivamente. Sappiamo che JavaScript è utile ora e potrebbe crescere fino a formare la spina dorsale dello sviluppo IoT, ma ciò non significa necessariamente che lo farà. Sappiamo che ogni nuova opportunità genera nuove sfide e ogni nuova soluzione crea le proprie opportunità e sfide, quelle 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 ce ne saranno molte per tenerti interessato – e impiegato – per i decenni a venire. E questa è probabilmente la cosa più importante che gli sviluppatori web devono sapere sull’Internet of Things.