diff options
Diffstat (limited to 'web/rationale')
-rw-r--r-- | web/rationale | 199 |
1 files changed, 0 insertions, 199 deletions
diff --git a/web/rationale b/web/rationale deleted file mode 100644 index 91cd3c7af7b..00000000000 --- a/web/rationale +++ /dev/null @@ -1,199 +0,0 @@ - -* The Mono Project - -** 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 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, - language independent components, controls and compound - documents. This technology is known as <a - href="http://developer.ximian.com/articles/whitepapers/bonobo">Bonobo</a>. - 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, an XML parsing Bonobo/CORBA component would be - inefficient compared to a C API. - -** Another explanation - - I recently explained our motivations to Dave Winer, and he posted - it <a - href="http://scriptingnews.userland.com/stories/storyReader$1275">here</a> - -** 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. .NET is a branding formative that - has been applied to: - - <ul> - * The .NET development platform, a new platform for - writing software. - - * Web services. - - * Microsoft Server Applications. - - * New tools that use the new development platform. - - * Hailstorm, the Passport centralized single-signon - system that is being integrated into Windows XP. - - </ul> - - Mono is an implementation of the .NET development platform. - -** The Common Language Infrastructure platform. - - Microsoft has created a new development platform. The - highlights of this new development platform are: - - <ul> - * A runtime environment that provides garbage - collection, threading and a virtual machine - specification (The Virtual Execution System, VES) - - * A comprehensive class library. - - * A new language, C#. Very similar to Java, C# - allows programmers to use all the features available - on the .NET runtime. - - * A language specification that compilers can - follow if they want to generate classes and code - that can interoperate with other programming - languages (The Common Language Specification: CLS) - </ul> - - The Common Language Infrastructure platform is similar to the - goals we had in GNOME of giving language independence to - programmers. It is more mature, documented, larger in scope, - and has a consistent design. - - Any API that is written using a CLS provider language can be - used by any language that is a CLS consumer. Compilers - generate code in a format called Common Intermediate Language - (CIL) which is an intermediate representation of a compiled - program and is easy to compile to native code or compiled - using Just-in-Time (JIT) engines. The restrictions placed by - the runtime on the CIL byte codes ensures that it is possible - to do a good job at optimizing the code in a JIT compiler. - - There is not really a lot of innovation in this platform: we - have seen all of these concepts before, and we are all - familiar with how these things work. - - What makes the Common Language Infrastructure development - platform interesting is that it is a good mix of technologies - that have been nicely integrated. - - The .NET development platform is essentially a new foundation - for program development that gives Microsoft a room to grow - for the coming years. - -** ECMA standards. - - Microsoft has submitted the - specifications of C#, the runtime, the metadata and the - other various bits of the .NET development platform to the - <a href="http://www.ecma.ch">ECMA</a> for standarization. - - You can get a copy of the specifications submitted to ECMA - from: <a href="http://www.dotnetexperts.com/ecma">http://www.dotnetexperts.com/ecma</a> - -** Mono: an Open Source Common Language Infrastructure implementation. - - Ximian has begun work on Mono, a project that aims to bring - the Common Language Infrastructure platform to free systems. - - When the GNU project was launched, they picked the best - operating system that was available out there, and they - began to clone it: Unix. - - The .NET development platform is a very rich, powerful, and - well designed platform that would help improve the free - software development platform. Just like the GNU project - began to clone Unix sixteen years ago, we will be cloning the - .NET development platform because it is a great platform to - build on. - -** What makes up Mono? - - There are various pieces that make up Mono today: - - <ul> - * A C# compiler. - - * The Virtual Execution System: that has the - Just-in-Time compiler, garbage collector, loader, - threading engine. - - A byte code interpreter is provided for quickly - porting Mono to new systems and debugging the JIT - purposes, but it is not intended to be the ideal - execution environment. - - * An implemenation of the .NET class libraries: - Remoting, Reflection, Reflection.Emit, Xml, Xpath, - Xslt, Xml Serialization, Web Services support. - - * Cross platform class libraries for data access: - Postgress, MySQL, DB2, TDS, Sybase, Oracle, ODBC and - Gnome's GDA. - - * Unix class libraries: Mono.Posix - - * Gnome-specific class libraries: The Gtk# family. - - * A code pre-compiler to generate native code ahead of - time. - - * Gtk# a toolkit to develop GNOME applications on Unix - and Windows. - - * An implementation of the Remoting infrastructure in - .NET - </ul> - - Other work-in-progress components: - - <ul> - * A VB.NET compiler and JScript compilers are in the works. - - * Web services on the server side. - - * We are planning to include Remoting.CORBA as part of - Mono standard distribution. - </ul> - -** Why use GNOME components? - - GNOME is an umbrella project that consists of infrastructural - components (GUI toolkit, XML libraries, CORBA implementation, - printing architecture, imaging system), a desktop environment, - and productivity applications. - - The GNOME infrastructural components can be used to quickly - implement various pieces of the class libraries without reinventing - the wheel, and since all those components are licensed under - the terms of the GNU LGPL it is a perfect fit. - - Libart will be used to implement the Drawing.2D API; Gtk+ and - the GNOME libraries will be used to implement the WinForms - API and of course Glib and libxml will be used in various - places.
\ No newline at end of file |