Qual è il futuro di Python in un sistema embedded (IoT)?
Python è troppo grande per l'IoT - prova un serpente più piccolo come Bimini Blind Snake o Ring-necked Snake - si adatta a dispositivi più piccoli, molto bene.
Oh... intendi il linguaggio di programmazione, beh perché non l'hai detto?
Python (come tutti gli altri stanno dicendo) è un linguaggio di programmazione interpretato. Quindi ha bisogno di essere eseguito da un interprete. Questo significa che ha bisogno di più risorse e gira anche molto più lentamente.
Alcuni direbbero che questo non è adatto all'IoT e ai sistemi embedded perché è necessario fare il maggior uso possibile delle risorse limitate, e questo è vero fino ad un certo punto.
Tuttavia, l'IoT e lo spazio embedded si stanno evolvendo proprio come hanno fatto i computer e i telefoni - più CPU, RAM, storage, ecc. vengono sempre aggiunti e alcuni dei dispositivi possono essere considerati computer a pieno titolo ora.
Questo è esattamente quello che è successo ai computer desktop (e poi laptop) - quando gli sviluppatori sono stati liberati dalla necessità di preoccuparsi dei vincoli di CPU/memoria/storage, hanno potuto utilizzare strumenti più lenti, più gonfi e più inefficienti che erano MOLTO più veloci da sviluppare e quindi creare più funzioni rapidamente, migliorando l'esperienza dell'utente a un ritmo molto più rapido.
Vedremo questa tendenza in alcuni dispositivi IoT come gli smartwatch, che alla fine diventeranno potenti come i nostri telefoni - posso creare molto più facilmente un'app per Android o iDevice usando React Native e Javascript che con i linguaggi di programmazione "nativi" come Java o Swift.
In questo tipo di scenari, qualcosa come Python sarebbe perfetto. Lasciando che i miglioramenti evolutivi della tecnologia si prendano cura delle risorse (semplicemente gettandocene di più) possiamo usare linguaggi e strumenti molto più belli a cui non avremmo avuto accesso prima, rendendo lo sviluppo dell'IoT e dei sistemi embedded molto più veloce e più accessibile ai principianti.
Tuttavia, vedremo anche dispositivi molto più piccoli, come piccoli sistemi embedded grandi come capocchie di spillo, diventare abbastanza potenti da eseguire sistemi operativi embedded completi. Per questi, ovviamente, non possiamo usare Javascript o Python.
In questi casi, è necessario un linguaggio di programmazione di sistema che sia molto vicino all'hardware. Una volta erano C e C++, ma ora possono morire - la fondazione Mozilla ha sviluppato Rust, che è fondamentalmente C++ ma senza tutte le schifezze e le stranezze. Si può anche usare Go, dato che anch'esso si compila in un singolo binario, ma non è proprio pensato per essere usato per la programmazione di sistema.