Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'web/rationale')
-rw-r--r--web/rationale199
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