L'alba open source di Microsoft.NET

L'alba open source di Microsoft.NET

Dopo l'annuncio di luglio, approfondiamo il discorso su Mono e DotGNU, due progetti nati per estendere i benefici della piattaforma .NET anche al mondo open source. Ne abbiamo parlato con il CEO di Ximian e con uno sviluppatore italiano
Dopo l'annuncio di luglio, approfondiamo il discorso su Mono e DotGNU, due progetti nati per estendere i benefici della piattaforma .NET anche al mondo open source. Ne abbiamo parlato con il CEO di Ximian e con uno sviluppatore italiano


Roma – Lo scorso luglio Ximian ha annunciato Mono, un progetto open source che ha un obiettivo ben preciso: arginare lo strapotere di Microsoft ed impedire che l’ombra lunga del colosso di Redmond abbracci tutto il mercato legato ad Internet. Un obiettivo che Ximian, con la collaborazione della comunità degli sviluppatori, intende raggiungere rilasciando sul canale open source le componenti chiave dell’infrastruttura .NET di Microsoft.

Ximian, che guiderà il progetto Mono e svilupperà buona parte del codice, sta già lavorando al porting su Linux dei tre componenti chiave di .NET: un compilatore per il linguaggio C#, con cui potranno essere sviluppate applicazioni compatibili con .NET; un compilatore just-in-time Common Language Runtime, che consentirà a Linux di far girare applicazioni scritte sotto un qualsiasi altro sistema operativo che supporti .NET, incluso Windows; un completo insieme di librerie compatibili con le CLI, che metterà a disposizione degli sviluppatori lo strato software necessario per creare applicazioni utente e servizi Web sotto sistemi open source.

Il codice sorgente di Mono verrà pubblicato sotto le licenze GNU GPL e LGPL, le stesse che negli ultimi mesi sono state bersaglio del fuoco incrociato di Microsoft. Secondo Ximian, l’adozione di licenze free potrà accelerare il processo di sviluppo di Mono e consentire agli sviluppatori “di creare e distribuire liberamente applicazioni commerciali e proprietarie, una cosa che con la licenza shared source di Microsoft non è possibile fare”.

Abbiamo parlato del progetto con Miguel De Icaza, CEO di Ximian Gnome e principale coordinatore di Mono, e Paolo Molaro, uno sviluppatore italiano che partecipa attivamente al progetto.

Punto Informatico : Di recente lei ha affermato che il progetto Mono sarebbe stato il primo caso di pratica “embrace-and-extend” non Microsoft. Tuttavia, qualcuno afferma che il progetto Mono non farà altro che estendere il dominio di Microsoft, dal momento che darà loro la possibilità di imporre le proprie API, salvandola contemporaneamente dal processo antitrust tuttora in corso.
De Icaza : Questa affermazione è stata male interpretata. Sarebbe come affermare che Caldera ha pieno controllo su di noi perché detiene lo Unix originale (è stato venduto a loro dopo molto tempo, anche se originariamente era di AT&T). Mono sarà un evoluzione della piattaforma di sviluppo che abbiamo attualmente su Unix. Se Microsoft deciderà di essere deliberatamente incompatibile nel futuro, andremo incontro ad un forking, ma Microsoft necessita della compatibilità binaria all’indietro, quindi ritengo che faranno il possibile per mantenere la loro API stabile.

PI : Quale considerate essere i punti di forza e di debolezza dell’architettura .NET?
DI : Microsoft, con .NET, ha creato una nuova piattaforma di sviluppo. I punti salienti di tale piattaforma possono essere riassunti in blocchi: un Runtime Environment con garbage collection e threading, denominato Virtual Execution System, una libreria di classi e un nuovo linguaggio, C#, molto simile a Java. Inoltre, hanno implementato delle specifiche di linguaggio (Common Language Specification o CLS) tali da rendere possibile la generazione di codice interoperabile con altri linguaggi. I compilatori generano codice in un formato denominato Common Intermediate Language (CIL) che è una rappresentazione intermedia di un programma compilato. Tale rappresentazione può essere successivamente compilata in modo platform dependent una volta per tutte o “al volo”, utilizzando l’engine Just-in-Time (JIT).
Come si vede, non c’è molta innovazione in questa piattaforma: Abbiamo già visto tutti questi concetti e siamo perfettamente a conoscenza di come funzionano queste cose. Ciò che rende interessante questa infrastruttura è il vedere un buon mix di tecnologie conosciute perfettamente integrate.
La piattaforma .NET è essenzialmente una nuova base per lo sviluppo di applicativi futuri, che dovrebbe garantire a Microsoft nuova crescita per i prossimi anni.

PI : Quindi per una implementazione vittoriosa di .NET su GNU/Linux saranno necessari questi componenti…
DI : Precisamente. Quello a cui ci dedichiamo con maggiore cura è ovviamente lo sviluppo di un buon motore JIT e la completezza delle librerie di classi.

PI : Quanti sono gli sviluppatori che correntemente lavorano al progetto?
DI : Circa 27 sviluppatori sono entrati nel team Mono nelle ultime due settimane (si parla della fine di luglio, N.d.R.).

PI : Quale sarà il livello di integrazione tra Mono e il progetto DotGNU ? (un progetto free per lo sviluppo di un servizio di autenticazione simile a Microsoft Passport).
DI : Non siamo ancora stati contattati dagli sviluppatori di DotGNU, quindi è difficile dirlo.

PI : Si è fatto molto chiacchierare nel frattempo riguardo la licenza Shared Source di Microsoft. Ritenete che tale licenza possa essere un problema nel vostro lavoro?
DI : La licenza Shared Source di cui ho preso visione era quella relativa a Windows CE. Semplicemente parla di diffusione del sorgente per soli scopi di ricerca. Penso che Microsoft intenda, con Shared Source License, una famiglia di licenze, e non una singola licenza. In queste condizioni, è difficile rispondere a questa domanda.

PI : Avete ricevuto o riceverete qualche tipo di supporto da RedHat o Caldera?
DI : Al momento no.


Paolo Molaro è uno sviluppatore open source italiano che sta attivamente collaborando al progetto Mono e a cui abbiamo chiesto ulteriori delucidazioni.

PI : Quali sono gli obiettivi prioritari del progetto Mono?
Paolo Molaro : Il Common Runtime è la cosa che interessa di più nel progetto Mono: è una nuova prospettiva di sviluppo in cui programmi scritti in linguaggi diversi possono integrarsi facilmente: C#, C, linguaggi di scripting ecc.. Questo grazie ad un set di istruzioni per la virtual machine che è fatto apposta per essere facilmente e velocemente compilato al volo in codice macchina, senza le grosse perdite di prestazioni dovute a molti linguaggi interpretati. Il set di istruzioni è anche abbastanza flessibile per supportare paradigmi di programmazione diversi. Infine, tramite il Virtual Execution System, la garbage collection diventa più accessibile, con gli ovvi vantaggi di semplicità e correttezza dei programmi per gli sviluppatori. Questi sono i motivi che ci spingono allo sviluppo di Mono: produrre un ambiente di sviluppo migliore per gli sviluppatori di free software. Il fatto che sia stata MS a progettare questo ambiente non ha nessuna importanza (se non a livello di gossip): noi implementiamo le specifiche ECMA .

Certamente, per una implementazione vittoriosa ci sono molti problemi tecnici da superare, ma è proprio questo ciò che rende questo progetto interessante. Primo tra tutti è implementare un compilatore JIT (l’interprete del bytecode è già a buon punto) che sia veloce e produca codice veloce (per più architetture, non solo x86). L’interprete di bytecode che abbiamo è già più veloce di molti linguaggi interpretati disponibili, specie nelle operazioni numeriche e nella gestione della ricorsione.

PI : Quindi siete a buon punto. Cosa prevede la vostra roadmap?
PM : Entro la fine dell’anno avremo il compilatore C# disponibile su GNU/Linux, con interprete, JIT e runtime a buon punto dello sviluppo. L’anno prossimo lavoreremo sull’integrazione con le classi grafiche e sulle ottimizzazioni. Lo sviluppo delle librerie richiederà uno sforzo continuo e prolungato dalla comunità del free software e anche nella implementazione degli altri aspetti della piattaforma, ogni contributo è bene accetto.

PI : E riguardo alla licenza Shared Source, cosa ne pensi?
PM : Da quello che sembra dalle dichiarazioni di MS, sarà bene starsene alla larga dai sorgenti forniti sotto quella licenza, perché potrebbero impedirti di sviluppare qualsiasi cosa che possa avere a che fare con i sorgenti che hai visto. Quindi, state lontani da qualsiasi cosa che si dichiari Shared Source.


La strategia Microsoft.NET comprende una serie di servizi di autenticazione attualmente noti come “Passport”. Il progetto DotGNU nasce proprio con lo scopo di fornire un’alternativa al sistema di autenticazione centralizzato di Microsoft. Secondo gli sviluppatori di DotGNU, “Microsoft vorrebbe le che informazioni personali e i numeri di carta di credito di ogni cibercittadino fossero immagazzinati nel loro sistema Passport, per poi renderli disponibili a chi effettua e-commerce, senza gli inconvenienti classici per l’utente finale. Questa semplicità, ad ogni modo, può essere raggiunta senza un database centrale che contenga le informazioni personali di ognuno.”

David Sugar, CTO di FreeDevelopers ha dichiarato: “Il sistema Passport non offre vantaggi tecnologici, ed è una tecnologia molto più povera di quella di cui si dispone attualmente, come autenticazione distribuita e sistemi di archiviazione dei dati. Il sistema Microsoft Passport è eticamente e moralmente sbagliato. Con questo sistema, Microsoft nella pratica dice: “fidatevi, vi tengo il portafogli e quando dovete acquistare qualcosa, ve lo restituisco””.

Preoccupazioni di questo tipo si aggiungo a pericolose e più inquietanti considerazioni in perfetto stile Orwelliano: gli sviluppatori di DotGNU ritengono che il problema basilare non riguardi solo ciò che Microsoft può fare intenzionalmente. I governi di alcuni stati sono interessati a limitare o controllare le libertà dei propri cittadini. Può Microsoft impedire che i servizi segreti di tali governi riescano, legalmente o meno, ad avere accesso ai dati del sistema Passport ed intercettare le transazioni economiche?

Ma i risvolti politici non sono i soli a destare preoccupazioni. La storia dimostra che i sistemi centralizzati sono sistemi deboli. Può un sistema centralizzato resistere a denial of service di cui è già stata data dimostrazione di efficacia? Ovviamente no, e tale problematica impedirebbe di fatto le transazioni economiche e metterebbe in ginocchio la Internet commerciale, potenzialmente anche per molti giorni.

Un altro rischio deriva dal fatto che, quando Microsoft avesse il controllo di un sistema di autenticazione centralizzato per l’intera Internet, potrebbe utilizzare questo monopolio per imporre l’uso di software rilasciato o controllato da lei stessa. Secondo Enzo-Adrian Reyes, lo sviluppatore australiano che ha dato vita al progetto, “DotGNU sarà un completo rimpiazzo della strategia .NET e non, come molti pensano, una sua implementazione free. .NET ha molti punti interessanti, ma le sue debolezze derivano dalla sua implementazione, specialmente con il sistema di autenticazione centralizzato su Microsoft. DotGNU utilizzerà un’implementazione decentralizzata. Non ci sarà una singola azienda, server o entità che controllerà l’autenticazione. Inoltre, DotGNU enfatizzerà la sicurezza, e utilizzerà crittografia ovunque possibile per garantire che i dati degli utenti siano sicuri e protetti.”

Munehiro

Link copiato negli appunti

Ti potrebbe interessare

Pubblicato il 11 set 2001
Link copiato negli appunti