Panoramica sui linguaggi di sviluppo per mobile (1)

Quando mi viene chiesto quale linguaggio imparare per sviluppare su palmari e smartphone, la risposta spesso mi mette in difficolta’, e visti gli innumerevoli fermenti in questo dinamico mondo, la situazione con il tempo non migliora affatto, anzi! Quanto segue in questo e altri articoli è un tentativo di fotografare a grandi linee la situazione attuale.

Innanzitutto non sembra (ancora) esistere un linguaggio completamente cross-platform affidabile, qualcosa che realizzi il sogno di ogni programmatore: “fatto una volta, valido ovunque”. I motivi sono diversi: la disomogeneità di dispositivi esistenti, l’evoluzione tecnologica che introduce nuovi strumenti non sempre supportati da tutti i device e, ovviamente, l’interesse dei proprietari dei sistemi operativi a vincolare i linguaggi alle proprie piattaforme, garantendosi guadagni basati sulle royalties di vendita di queste ultime.

Forse Java, e la sua declinazione per dispositivi mobili J2ME, è l’unico che tenta a soddisfare questa utopica aspettativa di portabilità, ma purtroppo nella pratica risente delle cattive implementazioni delle diverse Java Virtual Machine fatte dai costruttori di dispositivi, e quindi un programma che magari funziona bene su una classe di device non funziona bene su altri, sopratutto per quanto riguarda grafica avanzata e multimedialità. Anche se spesso proprio Java si rivela l’unica strada praticabile quando si vuole realizzare un software fruibile a partire dalla fascia media dei telefonini.

Proprio grazie all’anzianita’ e alla diffusione di questo linguaggio open-source, gli ambienti di sviluppo disponibili sono innumerevoli e spesso gratuiti: dall’ufficiale Netbeans con Mobility Pack della stessa Sun, a Eclipse con il suo plugin EclpseME e una marea di editor-compilatori, ognuno con le proprie particolarità.

Focalizzandoci sui diversi sistemi operativi esistenti, iniziamo con il parlare di Symbian, che equipaggia più del 63% dei dispositivi oggi esistenti. Applicazioni specifiche per questa piattaforma si possono realizzare in C++, usando degli SDK specifici rilasciati dalla stessa Nokia per le varie versioni della piattaforma (S60, S80). A livello di ambienti di sviluppo, Nokia consiglia l’uso degli IDE Carbide.c++, anche se esistono diverse integrazioni per Visual Studio attraverso Carbide.vs oppure il Borland C BuilderX Mobile Edition. Per testare le applicazioni realizzate, indipendentemente dall’ambiente scelto, si può ricorrere agli emulatori forniti dall’SDK.

Se sviluppare in C++ non è la scelta migliore, si può sempre decidere di usare Java, da sempre supportato su Symbian e che garantisce, come detto prima, una certa portabilità delle applicazioni realizzate ma una minore integrazione a basso livello con il sistema operativo.

Girando pagina, si incontra ovviamente Windows Mobile, diffuso nell’11% dei terminali mobili. Questa piattaforma infatti permette di sviluppare in Visual C++, C# o Visual Basic.NET. Il primo indicato dove le performance e la flessibilità del prodotto da realizzare sono tra le priorità, gli altri due sfruttano invece il .NET Compact Framework, tecnologia su cui la stessa Microsoft stà puntando moltissimo e che garantisce un buon compromesso tra semplicità del codice (e quindi successiva manutenibilità) e potenzialità offerte. Considerando che il .NET Compact Framework è un subset del .NET Framework, gli sviluppatori familiari con questa tecnologia non dovrebbero soffrire troppo il passaggio.

Per quanto concerne gli ambienti di sviluppo, sostanzialmente Visual Studio con le sue estensioni per Smart Device domina la scena, anche se esisite qualche alternativa gratuita. Gli emulatori necessari ai test sono compresi in Visual Studio e si possono aggiungere degli SDK per versioni localizzate o nuove di Windows Mobile.

Per quanto concerne lo sviluppo in Java su questa piattaforma, Microsoft non da direttive precise, anche perchè installare una Java Virtual Machine sul device è una scelta lasciata al costruttore e non sempre abbracciata da questi. E’ tendenza generale comunque trovare una JVM installata nei dispositivi equipaggiati con Windows Mobile 5 e superiori.

Nei prossimi articoli sull’argomento esamineremo gli altri sistemi operativi che sono presenti nel mercato della scena mobile ma con una bassa penetrazione, almeno fino ad oggi. Intanto, quali sono le vostre esperienze nei contesti appena trattati?

Ti consigliamo anche

Link copiato negli appunti