Chi sviluppa progetti per sistemi embedded si sarà spesso posto questo dilemma. Quale linguaggio utilizzare per sviluppare il proprio applicativo? La maggior parte di questi sistemi è animato da codice scritto in C/C++, tuttavia negli anni Python ha saputo intaccare il monopolio di C/C++ anche se con numeri ancora inferiori.
Ma perché uno sviluppatore dovrebbe preferire Python a C/C++ o ad altri linguaggi di programmazione? E cosa rende l'uso di C/C++ cosi popolare?
C è rinomato per la sua efficienza. Nei decenni, nasce infatti nel 1972, si è imposto come linguaggio di riferimento per la realizzazione di software di sistema su gran parte delle piattaforme hardware moderne. La standardizzazione del linguaggio (da parte dell'ANSI prima e dell'ISO poi) garantisce la portabilità dei programmi scritti in C su qualsiasi piattaforma.
C è un linguaggio ad alta efficienza grazie al fatto che gran parte delle sue istruzioni corrispondono ad un singolo comando nel linguaggio della macchina. Tuttavia non si tratta di una soluzione molto intuitiva e, proprio a causa della sua complessità, risulta essere difficile da padroneggiare per chi è alle prime armi, sopratutto per coloro che non hanno basi di elettronica dei calcolatori.
Per questo motivo le università e i vari corsi di studio stanno via via migrando verso alcune alternative quali C++ o Python.
Python nasce nel 1991 e, al contrario di C, è conosciuto per la sua facilità d'uso e la maggiore semplicità di apprendimento; queste caratteristiche ne hanno facilitato la diffusione, sopratutto tra chi lavora in team, soprattutto in considerazione del fatto che Python offre anche un ottimo livello di leggibilità del codice, che può essere facilmente revisionato da persone diverse dall'autore.
Una buona readability consente quindi una facile manutenzione dei sorgenti che, nel caso specifico dei sistemi embedded, possono diventare estremante complessi. Python però è un linguaggio interpretato, dunque in determinati contesti può rivelarsi meno performante di un linguaggio compilato come C.
Ci sono però delle modalità per migliorare il runtime speed di Python, come ad esempio l'uso dei compilatori Just-In-Time (JIT), di Theano o di Cython. Dunque a lungo andare Python può rivelarsi un'ottima alternativa a C/C++, sopratutto per chi si sta avvicinando al mondo della programmazione.
In sostanza la scelta tra i due linguaggi deriva dalle preferenze (e competenze) di chi sviluppa e dalle scelte (e competenze) del team che si occupa di implementare un progetto. Ci sono programmatori che preferiscono una maggiore rapidità di sviluppo a discapito del runtime speed e vice versa. Dunque, a seconda del contesto è bene valutare quale dei due linguaggi si adatti maggiormente alle proprie esigenze di sviluppo.