13 Dic

Applicazioni desktop multi-piattaforma

Programming Node.JS

Lo sviluppo di applicazioni mobile ci ha abituato ad utilizzare svariati framework (ad esempio Ionic, PhoneGap, Apache Cordova e Xamarin) che permettono di sviluppare applicazioni mobili e di rilasciarle su diverse piattaforme mobili (Android, Windows Phone, iOS). Ma e’  possibile sviluppare un’applicazione desktop con l’obbiettivo di rilasciarla su differenti sitemi operativi (Windows, Linux e Mac OS)? Subito pensiamo a Java e allo slogan che accompagna da sempre questo linguaggio di programmazione: “write once, run anywhere“.

Oltre a Java ci sono altre tecnologie, più o meno datate, che permettono lo sviluppo di applicazioni desktop multi-piattaforma. Tra queste vanno ricordate: Adobe Air, Haxe, Qt. Tuttavia tutte necessitano di competenze specifiche e richiedono team di sviluppo altamente specializzati.

Ci sono invece dei veri e propri framework per lo sviluppo desktop multi-piattaforma che si poggiano su standard e linguaggi tipici dello sviluppo web. Questi framework permettono di sviluppare applicazioni desktop a partire da conoscenze pregresse basate su HTML5, CSS3, Javascript e su tutte quelle librerie e moduli disponibili per il web. Tra i più utilizzati troviamo:

Caratteristica comune è quella di appoggiarsi a Node.js e ad un’istanza di Chromium  per il rendering della user interface.

Tra le tre soluzioni, Electron, pur essendo il framework più recente, annovera diversi progetti di rilievo tra i quali Atom (GitHub), Visual Studio Code (Microsoft), Nuclide (Facebook), Slack, Hive e MongoTron. Punto di forza, oltre allo sviluppo di applicazioni desktop utilizzando tecnologie web, è  quello di combinare Chromium e Node.js in un unico runtime permettendo di distribuire lo stesso pacchetto sui tre sistemi operativi desktop più diffusi: Windows, Linux e Mac OS.

Electron per funzionare non richiede quindi la presenza di virtual machine o interpreti sul sitema operativo di destinazione. L’applicazione puo’ essere distribuita rilasciando i binari di Electron insieme ai file sorgenti dell’applicazione o pacchetizzando il tutto in archivi asar.

Per maggiori dettagli e riferimenti riguardo all’architettura di Electron, nonche’ alcuni esempi interessanti, potete visitare:

23 Gen

Microsoft si cambia: benvenuto .NET Core 1.0

Programming - .NET Core 1.0

I recenti rilasci di Windows 10 e  Visual Studio 2015 hanno introdotto moltissime novità e miglioramenti sulle piattaforme di sviluppo Microsoft. Si pensi alla Universal Windows Platform (UWP), al nuovo browser EDGE,  ad una console dei comandi migliorata, ad un package managment tool (OneGet) integrato nella powershell, a Windows 10 IoT per Rasperry Pi e Arduino, e molto molto altro ancora.

Ma con tutte queste novità, a chi non è venuto qualche dubbio? Una delle cose che hanno creato non poche perplessità  riguardava le differenze tra il .NET Framework 4.6 e il .NET Framework 5.  Molti inizialmente hanno creduto che la versione 5 fosse la release successiva alla 4.6 e che quindi quest’ultima diventasse obsoleta.

In verità, come spiega molto bene Scott Hanselman nel suo blog,  la versione 5 non rappresenta una versione successiva di .NET ma una vera e propria build indipendente supportata da librerie e moduli spesso diversi rispetto a quelli della versione 4.6.

Nel 2014 Microsoft annunciò l’intenzione di rendere il framework .NET “open source and cross platform” con il rilascio di Visual Studio 2015. Per realizzare questo intento sono state riviste e a volte risviluppate ex-novo parte delle librerie .NET.

Quote - Phil Karlton

La scelta del nome del nuovo framework però non è stata azzeccatissima, creando non poca confusione tra gli sviluppatori. Per questo motivo Microsoft ha deciso di rinominare la “piattaforma” 5 (o 2015), e tutti i progetti che vi si poggiano sopra, in Core 1.0. Questo cambiamento dovrebbe evidenziare un nuovo ciclo di sviluppo incentrato su principi open source e cross platform.  Non si tratta quindi della continuazione di un “brand” già affermato, supportato, stabile e in pieno sviluppo.

Il .NET Framework 5 viene quindi rinominato in .NET Core 1.0 e tra i progetti più seguiti ASP.NET 5 prende il nome di  ASP.NET Core 1.0, Entity Framework 7 diventa Entity Framework Core 1.0,  ASP.NET Identity 3 cambia in ASP.NET Identity Core 1.0.

Questa immagine può aiutare a inquadrare le nuove “naming conventions” e a fugare ogni dubbio.

11 Gen

Quando l’informatica aiuta a combattere la povertà

Social - Taking initiative

Una delle storie più commoventi che abbia letto in rete è quella di Eric Elliott. Dopo essere stato obbligato a vendere casa, Eric si ritrova senza un soldo e costretto a girovagare ospitato dagli amici.

Nonostante le avversità, Eric non si perde d’animo e riesce a mettere a rendita quello che gli riesce meglio: sviluppare in Javascript. Grazie alla sua passione e a una grande forza d’animo trova lavoro e mette alle spalle il periodo di crisi.

Il lieto fine fa sicuramente piacere. Ma cosa mi ha emozionato maggiormente in questa storia? Eric fa tesoro della sua esperienza e comincia a promuove il proprio modello nella comunità dei senzatetto. L’approccio non può che essere da programmatore: identificato un problema comune si cerca una soluzione ad ampio spettro.

L’idea è semplice ma efficace, quasi geniale. Eric decide di scrivere un libro di Javascript indirizzato a tutti coloro che vogliono uscire da una condizione di svantaggio. Lo pubblica online insieme ad una serie di training gratuiti per i senzatetto. Inizia una campagna su Kickstarter per sponsorizzare la creazione di nuovi corsi e per coprirne i costi.

Dopo il successo di tutte queste iniziative, Eric lancia il sito JSHomes.org per aumentare la consapevolezza di un problema che ci riguarda tutti molto da vicino.

Nella migliore tradizione open source, il sito diventa spunto per la creazione di una piattaforma dedicata che cerca di coinvolgere il maggior numero di volontari possibili a sostegno dell’illuminante idea di Eric.

Condivido questa bellissima iniziativa che dimostra come una condizione di disagio possa trasformarsi in una storia di successo.

Storia pubblicata su Medium.com il 6 Novembre, 2015