X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=doc%2Frationale;h=d63cf225a59b302fb5ce278dc0459f66e8ef468a;hb=3833f4ccda4598d5996e067c392f1b062d48c9b0;hp=8c418a17e317e6528312e799352fd4fbe19bc908;hpb=0d8c27127739eb30f9f72d4fbf25ee996e4d9254;p=mono.git diff --git a/doc/rationale b/doc/rationale index 8c418a17e31..d63cf225a59 100644 --- a/doc/rationale +++ b/doc/rationale @@ -1,42 +1,44 @@ -The Mono Project +* The Mono Project -* Background. +** Background. The GNOME project goal was to bring missing technologies to Unix and make it competitive in the current market place for desktop applications. We also realized early on that language independence was important, and that is why GNOME APIs were coded using a standard that allowed the APIs to be easily - wrapped for other languages. Our APIs are available on most + wrapped for other languages. Our APIs are available to most programming languages on Unix (Perl, Python, Scheme, C++, Objective-C, Ada). Later on we decided to use better methods for encapsulating our APIs, and we started to use CORBA to define interfaces to - components we complemented it with policy and a set of - standard GNOME interfaces for easily creating reusable and + components. We complemented it with policy and a set of + standard GNOME interfaces for easily creating reusable, language independent components, controls and compound documents. This technology is known as Bonobo, and - easy to use interfaces to Bonobo exist for C, Perl, Python, + href="http://developer.ximian.com/tech/bonobo.html">Bonobo. + Interfaces to Bonobo exist for C, Perl, Python, and Java. CORBA is good when you define coarse interfaces, and most Bonobo interfaces are coarse. The only problem is that Bonobo/CORBA interfaces are not good for small interfaces. - For example implementing an XML parser component and use it to - parse, create and walk an XML document would be inneficient - compared to a C API. + For example, an XML parsing Bonobo/CORBA component would be + inefficient compared to a C API. -* Microsoft's .NET +** Another explanation + + I recently explained our motivations to Dave Winer, and he posted + it here + +** Microsoft's .NET The Microsoft .NET initiative is confusing because it is a company wide effort that ranges from development tools to end - user applications. - - Depending who you ask, you will probably get a different - answer on what .NET is, as .NET is a branding formative that + user applications. .NET is a branding formative that has been applied to: - From all the above, the one I am interested in is the new .NET - development platform. + Mono is an implementation of the .NET development platform. -* The Common Language Infrastructure platform. +** The Common Language Infrastructure platform. Microsoft has created a new development platform. The highlights of this new development platform are: - -* Why use GNOME components? +** Why use GNOME components? GNOME is an umbrella project that consists of infrastructural components (GUI toolkit, XML libraries, CORBA implementation,