Mono (progetto)

Da Wikipedia, l'enciclopedia libera.
Mono
Autore Xamarin
Data di origine 19 dicembre 2011
Ultima versione 2.10.9
Utilizzo linguaggio general-purpose
Paradigmi programmazione a oggetti
Tipizzazione forte
Estensioni comuni .exe
Influenzato da .NET
Implementazione di riferimento
Implementazione linguaggio interpretato
Sistema operativo multipiattaforma
Sito web www.mono-project.com

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). Per questo ed anche per limitare la diffusione di C# e le relative librerie Mono nell'ambiente Linux è stato creato il linguaggio Vala.

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 è DotGNU Portable.NET.

Storia[modifica | modifica sorgente]

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 2.0.

Al LinuxWorld 2006, a Boston, Mono ha vinto il premio come miglior piattaforma di sviluppo.

Mono e i brevetti della Microsoft[modifica | modifica sorgente]

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]

Microsoft ha comunque annunciato che non perseguirà legalmente le implementazioni open source del MS.NET Framework, tra le quali appunto c'è Mono[2].

Progetti correlati[modifica | modifica sorgente]

Numerosi progetti sono stati creati per permettere agli sviluppatori di utilizzare Mono nel proprio ambiente di sviluppo:

  • Gtk# sono binding per utilizzare il framework Mono all'interno delle librerie GTK+.
  • gecko# sono binding per inserire nelle applicazione il layout engine usato in Mozilla (Gecko).
  • Tao, una collezione di binding per la grafica ed i giochi

Software sviluppato con Mono[modifica | modifica sorgente]

I seguenti programmi utilizzano le API Mono e C#:

Note[modifica | modifica sorgente]

  1. ^ FAQ http://www.mono-project.com/FAQ:_Licensing#Patents FAQ.
  2. ^ PI: Microsoft non farà guerra a Linux

Voci correlate[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]