Mono (progetto)
Da Wikipedia, l'enciclopedia libera.
Mono è un progetto open source coordinato da Novell (precedentemente da Ximian) per creare un insieme di strumenti compatibili con il Framework .NET, secondo gli standard ECMA (Ecma-334 e Ecma-335).
I più importanti di questi strumenti sono il compilatore C# e il Common Language Runtime.
Mono funziona sui sistemi operativi GNU/Linux, UNIX, Mac OS X, e Windows.
Mentre Microsoft ha reso disponibile una versione di .NET per FreeBSD chiamata la Shared source CLI, la licenza di Microsoft non è di software libero e può essere insufficiente per i bisogni degli utenti (in particolare, proibisce esplicitamente l'utilizzo commerciale).
La macchina virtuale di Mono contiene un motore JIT per vari processori: x86, SPARC, PowerPC, ARM, s390 (in modalità a 32 bit) e x86-64 e SPARC a 64 bit. La VM può eseguire una compilazione just-in-time o può pre-compilare il codice in codice nativo. Per altre architetture hardware esiste solo un interprete.
Un progetto simile è Portable.NET.
Indice |
[modifica] Storia
Nel 2000 la società Ximian, fondata e diretta da Miguel de Icaza, specializzata in software open source, aveva intenzione di costruire strumenti di sviluppo software che accrescessero la produttività di sviluppo del software multipiattaforma. Appena la Microsoft presentò il Framework .NET, la Ximian se ne interessò, e il 19 luglio 2001 annunciò il progetto open source Mono alla conferenza O'Reilly.
Quasi tre anni dopo, il 30 giugno 2004 fu rilasciata la versione 1.0.
Attualmente è disponibile la versione 1.9.1.
Al LinuxWorld 2006, a Boston, Mono ha vinto il premio come miglior piattaforma di sviluppo.
[modifica] Mono e i brevetti della Microsoft
Hanno avuto luogo molte discussioni riguardo al fatto che Microsoft potrebbe distruggere il progetto Mono tramite brevetti. Il team Mono ha riconosciuto questo rischio ma mette in atto strategie al fine di evitarlo, come si legge dalle loro FAQ:
- "Il Framework .NET si divide in due parti: le tecnologie coperte dall'ECMA/ISO e le altre tecnologie sviluppate sopra di esse come ADO.NET, ASP.NET e Windows.Forms. Mono implementa le parti ECMA/ISO, essendo questo un progetto che permette l'implementazione di blocchi a livelli più alti come ASP.NET, ADO.NET e Windows.Forms"
- Gli elementi controversi sono i sottoinsiemi ADO.NET, ASP.NET e Windows.Forms. Questi sono convenienti per quanti necessitano piena compatibilità con la piattaforma Windows, ma non sono richiesti per la piattaforma open source Mono, cosí come l'integrazione con l'attuale ottimo supporto per Linux. La strategia di Mono riguardo queste tecnologie è la seguente: (1) aggirare i brevetti usando tecniche di implementazione differente che mantengono la API, ma cambiano i meccanismi. Se ciò non è possibile, vorremmo (2) rimuovere le parti di codice coperte da brevetti, oltre che (3) trovare dei precedenti che possano rendere inutilizzabili i brevetti stessi"[1]
[modifica] Progetti correlati
Numerosi progetti sono stati creati per permettere agli sviluppatori di utilizzare Mono nel proprio ambiente di sviluppo:
- Gtk# sono bindings per utilizzare il framework Mono all'interno delle librerie GTK+.
- gecko# sono bindings per inserire nelle applicazione il layout engine usato in Mozilla (Gecko).
- Tao, una collezione di bindings per la grafica ed i giochi
[modifica] Software sviluppato con Mono
I seguenti programmi utilizzano le API Mono e C#.
- Banshee è un programma di gestione e riproduzione musica per GNOME
- Beagle è tool per la ricerca desktop.
- Bless è un editor esadecimale.
- CDCollect è una applicazione per la catalogazione di CD.
- F-Spot è un buon programma di gestione fotografie sviluppato da Novell.
- Galaxium è un programma di instant messaging per MSN.
- GLyrics è un programma per la ricerca di testi musicali.
- iFolder 3 (della Novell) permette la condivisione di file attraverso molteplici computer e con altri utenti tramite peer-to-peer o attraverso server groupware di Novell.
- Imendio Blam! è un aggregatore di news e feed RSS buono tra l'altro per la lettura di feed planet come Planet Gnome.
- MonoDevelop è un IDE per la creazione di applicazioni Mono. Originariamente è stato un port di SharpDevelop per Gtk#, ma oggi viene sviluppato indipendentemente.
- Muine è un riproduttore musicale con una interfaccia utente progettata per essere intuitiva, sviluppato da Jorn Baayen il quale ha già collaborato allo sviluppo di Rhythmbox.
- Second Life, il mondo virtuale creato da Linden Lab, si dice stia per passare dall'utilizzo del Linden Scripting Language (LSL) a Mono, in un futuro prossimo.
- SkyNET è una mappa stellare.
- smuxi è un client IRC per utenti esperti scritto usando Gtk#/Gnome#, SmartIrc4net e Nini.
- Tomboy è una applicazione desktop per annotazioni che utilizza un sistema di link simile al Wiki.
- Virtuoso Universal Server, della OpenLink Software, è un ambiente multipiattaforma per Mono/.NET/C#, JSP, Perl, Python, PHP, and other ambienti runtime.
[modifica] Note
[modifica] Voci correlate
[modifica] Collegamenti esterni
- La mailing list italiana
- (EN) Mono il sito ufficiale
- (EN) Mono Community
- (EN) Una breve storia di Mono
- (EN) I blog degli sviluppatori di Mono
- (EN) Mono Forum
- (EN) Ximian Forum
- (EN) Mono Live LiveCD
- (EN) Monoppix
- Portale Software libero: accedi alle voci di Wikipedia che parlano di Software libero