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
path: root/web/faq
diff options
context:
space:
mode:
authorAaron Weber <aaron@mono-cvs.ximian.com>2001-12-17 21:12:43 +0300
committerAaron Weber <aaron@mono-cvs.ximian.com>2001-12-17 21:12:43 +0300
commit2e9a549a33ffbfaebdaf5b95deda1a24414b2568 (patch)
treee6b6f4786a8756cebe4cf0541ebc84e465fde2fb /web/faq
parent4380b1b625d3dbb8688f0f92621e0c7cd7c2a587 (diff)
001-12-17 Aaron Weber <aaron@ximian.com>
* doc/faq (Q): Question-by-question, line-by-line revision. svn path=/trunk/mono/; revision=1611
Diffstat (limited to 'web/faq')
-rw-r--r--web/faq577
1 files changed, 235 insertions, 342 deletions
diff --git a/web/faq b/web/faq
index 3bb7d839e14..697f412a530 100644
--- a/web/faq
+++ b/web/faq
@@ -1,18 +1,21 @@
** Basics
-Q: Is Mono the same as Microsoft's .NET initiative?
+Q: What is Mono exactly?
-A: It is not.
+A: The Mono Project is a community initiative to develop an open
+ source, Linux-based version of the Microsoft.NET development
+ platform. Its objective is to enable Linux developers to build and
+ deploy cross platform .NET Applications. The project will
+ implement various technologies developed by Microsoft that have now
+ been submitted to the ECMA for standardization.
- .NET is a company-wide initiative at Microsoft that
- encompasses many different areas. The .NET development framework,
- Passport, Biztalk, new server products, and anything that is
- remotely connected to .NET gets the ".NET-stamping" treatment.
- Some components of Microsoft's .NET initiative have been announced
- and some others are in the works.
+Q: Is Mono a .NET implementation?
+
+A: No. Microsoft.Net is a broad, company-wide effort that ranges from
+ development tools to end user applications. Some components of
+ this initiative have been announced and some others are in the
+ works.
- Mono is a project to implement several technologies developed by
- Microsoft that have now been submitted to the ECMA Standards Body.
Q: What technologies are included in Mono?
@@ -31,19 +34,19 @@ A: Mono contains a number of components useful for building new
might work on other compilers that target the Common
Language Runtime.
- Windows has compilers that target the
- virtual machine from
- <a href="http://msdn.microsoft.com/net/thirdparty/default.asp#lang">a
- number of languages:</a> Managed C++, Java Script,
- Eiffel, Component Pascal, APL, Cobol, Oberon, Perl,
- Python, Scheme, Smalltalk, Standard ML, Haskell,
- Mercury and Oberon.
+
</ul>
+
+ Windows has compilers that target the virtual machine from <a
+href="http://msdn.microsoft.com/net/thirdparty/default.asp#lang">a
+ number of languages:</a> Managed C++, Java Script, Eiffel,
+ Component Pascal, APL, Cobol, Oberon, Perl, Python, Scheme,
+ Smalltalk, Standard ML, Haskell, Mercury and Oberon.
+
The CLR and the Common Type System (CTS) enables applications and
- libraries to be written in a number of languages. Classes and
- methods created in one language can be used from a different
- language.
+ libraries to be written in a collection of different languages that
+ target the byte code
This means for example that if you define a class to do algebraic
manipulation in C#, that class can be reused from any other
@@ -74,35 +77,26 @@ A: Mono is the word for `Monkey' in Spanish. We like monkeys.
Q: When will you ship it?
-A: We do not know when the code will be shipped. The more
- contributions we get to the project, the sooner it will ship.
-
- A rough estimate is that we might be able to run our C# compiler on
- Linux by the end of the year. That means running the Windows
- Executable generated by a Microsoft .NET compiler on the Linux
- platform.
-
- We expect that doing GUI applications will require more work on the
- class libraries. That could take another six months.
+A: It is premature to target a shipdate for the code. While we anticipate
+ availability in the middle of next year, the more contributions we
+ get to the project, the sooner it will ship.
Q: How can I contribute?
A: Check the <a href="contributing.html">contributing</a> section.
-Q: You guys should innovate instead of copying.
-
-A: In this particular case, we see a clear advantage in the platform
- and we are interested in using the features of the CLI on open source systems.
+Q: Aren't you just copying someone else's work?
- We have decided that we should spend our limited resources towards
- implementing an existing specification instead of designing and
- implementing our own.
+A: We are interested in providing the best tools for programmers to
+ develop applications for Free Operating Systems. We also want to help
+ provide the interoperability that will allow those systems to fit in
+ with other standards.
- Designing and implementing our own would be possible, but it doesn't make
- sense to do that just because the specification comes from a
- proprietary vendor.
+ Please read the <a href="http://www.go-mono.com/rationale.html">Mono
+ Project white paper</a> on Ximian site] for more background and the
+ rationale for the project.
-** Ximian
+** The Ximian role in the Mono Project
Q: Why is Ximian working on .NET?
@@ -114,84 +108,82 @@ A: We are interested in providing the best tools for programmers to
Q: Will Ximian be able to take on a project of this size?
-A: Ximian will not be able to taken on the whole project on its own.
- Mono will be a free software/open source community project, that is
- the only way we can hope to implement something of this size. You
- can <a href="contributing.html">contribute</a> to this effort.
+A: Ximian cannot and will not be able to take on the whole project on
+ its own. Ximian is spearheading the effort and providing a call to
+ action. Mono will be a free software/open source community
+ project; that is the only way to implement something of this
+ size. Visit the <a href="contributing.html">contributing</a> page
+ on this site to learn more about what you can do.
Q: What pieces will Ximian be working on?
-A: We will focus on building a development and execution
- environment.
+A: We will devote most of our resources to work on the pieces which are
+ on the critical path to release a development and execution environment.
The idea is to get Mono to a state of that would allow
third parties to actually be able to use it real-world development.
-Q: Why does Ximian even care?
-
-A: We like the features that the CLI and its related technologies
- bring to the table. An exciting addition to the developer toolkit.
- The goal of Mono is to bring this technology to non-Windows
- platforms (although we hope Mono will also run on Windows, for
- debugging and comparative purposes).
-
-** Licensing
-
-Q: Will I be able to write proprietary applications that run with
- Mono?
+** Relationship with GNOME
-A: Yes. The licensing scheme is planned to allow proprietary
- developers to write applications with Mono.
-
-Q: What license is Mono on?
+Q: How is this related to GNOME?
-A: The C# Compiler is released under the terms of the GPL. The class
- libraries will be under the LGPL or the GPL with a special
- exception. The runtime libraries are under the LGPL.
+A: In a number of ways. This project was born out of the need of
+ providing improved tools for the GNOME community, and will use
+ existing components that have been developed for GNOME when they
+ are available. For example, we plan to use Gtk+ and Libart to
+ implement Winforms and the Drawing2D API and are considering
+ GObject support.
- Since the LGPL is not suitable for embedded systems development, we
- are also licensing the libraries under the GPL with the following exception:
+Q: Has the GNOME Foundation or the GNOME team adopted Mono?
- If you link this library against your own program, then you do not
- need to release the source code for that program. However, any
- changes that you make to the library itself, or to any native
- methods upon which the library relies, must be re-distributed in
- accordance with the terms of the GPL.
+A: Mono is too new to be adopted by those groups. We hope that the
+ tools that we will provide will be adopted by free software
+ programmers including the GNOME Foundation members and the GNOME
+ project generally.
- This is similar in spirit to <a
- href="http://www.gnu.org/software/classpath/classpath.html">GNU
- Classpath.</a>
+Q: Should GNOME programmers switch over to Mono now?
-Q: But in Object Oriented Programming I need to subclass your library
- functions, does that mean that I am making modifications to your
- library and hence I would have to distribute my sources under the
- LGPL?
+A: It is still far to early for discussions of "switching over." No
+ pieces of Mono will be ready within the next six months, and a
+ complete implementation is roughly one year away.
-A: No. Object Oriented Programming in the class library is a well
- understood interface barrier, so you can actually develop
- proprietary applications with the Mono libraries.
+ We encourage GNOME developers to continue using the existing tools,
+ libraries and components. Improvements made to GNOME will have an
+ impact on Mono, as they would be the "backend" for various classes.
-Q: Will you accept code under the XXX License?
+Q: Will Mono include compatibility with Bonobo components? What is the
+ relationship between Mono and Bonobo?
-A: If the XXX License is compatible with the license we use in that
- specific piece of code, then yes. If you want to use the BSD license, make
- sure you use the BSD license without the advertisement clause (The
- `Ousterhout License').
+A: Yes, we will provide a set of classes for implementing and using
+ Bonobo components from within Mono. Mono should allow you to write
+ Bonobo components more easily, just like .NET on Windows allows you
+ to export .NET components to COM.
-** Mono and .NET
+** Mono and Microsoft: .NET, Hailstorm, and Passport
Q: If applications use Mono, does that mean that I have to pay a service fee?
A: No. Mono is not related to Microsoft's initiative of
- software-as-a-service.
+ software-as-a-service. It is going to provide an open source,
+ Linux-based version of the Microsoft.NET development platform. Its
+ objective is to enable Linux developers to build and deploy cross
+ platform .NET Applications.
+
+Q: Is the Mono Project is related to the Microsoft Hailstorm effort? Is
+ Ximian endorsing Hailstorm?
+
+A: No. The Mono Project is focused on providing a compatible set of
+ tools for the Microsoft.NET development platform. It does not
+ address, require, or otherwise endorse the MS Passport-based
+ Hailstorm single sign-on system that is part of Windows XP and
+ other services.
Q: If you implement .NET, will I depend on Microsoft Passport to run my software?
-A: No. The .NET Framework is a runtime infrastructure and collection
- of class libraries. Passport may be required to access certain web
- services written for that framework, but only if the programmer
- chooses Passport as the authentication mechanism.
+A: No. MS Passport is unrelated to running .NET compatible applications
+ produced with the Mono tools. The only thing you will need is a
+ just-in-time compiler (JIT).
Q: Is .NET just a bunch of marketing slogans?
@@ -206,29 +198,28 @@ A: A `100% .NET application' is one that only uses the APIs defined
applications would in theory run unmodified on Windows, Linux,
HP-UX, Solaris, MacOS X and others.
-Q: But Microsoft will release a port of the real thing under the
- `Shared Source' license, why bother with anything else?
+Q: If Microsoft will release a port of their .NET platform under the
+ `Shared Source' license, why should I bother with anything else?
-A: The Shared Source implementation will not be usable for commercial
- purposes. We are working towards an implementation that will grant
- a number of rights to recipients: use for any purpose,
+A: The Shared Source implementation will be expensive and its uses
+ will be tightly restricted, especially for commercial use. We are
+ working towards an implementation that will grant a number of
+ important rights to recipients: use for any purpose,
redistribution, modification, and redistribution of modifications.
This is what we call <a
href="http://www.gnu.org/philosophy/free-sw.html">Free Software</a>
-** Passport
-
-Q: Is this a free implementation of Passport?
+Q: Is Mono a free implementation of Passport?
A: No. Passport is part of Microsoft's Hailstorm initiative. Mono
is just a runtime, a compiler and a set of class libraries.
-Q: Will the System.Web.Security.PassportIdentity class, mean
+Q: Will the System.Web.Security.PassportIdentity class mean
that my software will depend on Passport?
-A: No. That just means that applications might use that API to
- contact a Passport site.
+A: No. Applications may use that API to contact a Passport site, but
+ are not required to do so.
As long as your application does not use Passport, you will not
need Passport.
@@ -240,94 +231,32 @@ A: No. That just means that applications might use that API to
documented and whether we will be able to talk to
passport.com
-Q: But that must mean that you are tied to Passport!
+Q: Will Mono running on Linux make Passport available for Linux?
-A: All the contrary. The implementation could keep the interface (for
- the sake of simplicity, lets say it implements the method `Login'
- and `GetUserName').
+A: No. However, the Passport toolkit for Linux-based web servers is available from
+ Microsoft.
- We could implement `Login' and `GetUserName' by talking to XNS or
- any other decentralized systems. Or any other system that the
- industry standarizes on.
-Q: What is your opinion?
+** Mono and Portable.NET
-A: You can read my personal <a href="passport.html">opinion on
- passport</a>.
+Q: What are the differences between Mono and Portable.NET?
-Q: Will Mono running on Linux make Passport available for Linux?
+A: Most of Mono is being written using C#, the only pieces written in
+ C are those who have to absolutely be built using C (The JIT
+ engine, the runtime, the interfaces to the garbage collection
+ system).
-A: The Passport toolkit for Linux-based web servers is available from
- Microsoft.
+ The C# compiler and the tools will become reusable C# components.
- Again, Mono has nothing to do with Passport.
+ Portable.NET is building its components out of C pieces.
** Mono and Windows
Q: Will Mono allow me to run Microsoft Office on Linux?
A: No, it will not. Microsoft Office is a Windows application. To
- run Windows applications on Intel Unix systems refer to <a
- href="http://www.winehq.com">the Wine Project</a>
-
-** GNOME
-
-Q: How is this related to GNOME?
-
-A: In a number of ways:
-
- * Mono will use existing
- components that have been developed for GNOME when it makes
- sense. For example on X systems, we will use Gtk+ and
- Libart to implement Winforms and the Drawing2D API.
-
- For database access, we will use LibGDA (not really
- depending on GNOME, but related to).
-
- * This project was born out of the need of providing improved
- tools for the GNOME community.
-
- * We would like to add support to our CLR implementation to
- deal with GObjects (in GNOME 1.x, they are called
- GtkObjects), and allow Mono developers to provide GObjects
- or use and extend existing GObjects.
-
-Q: Has the GNOME Foundation or the GNOME team adopted Mono?
-
-A: Mono is too new to be adopted by those groups. We hope that the
- tools that we will provide will be adopted by free software
- programmers including the GNOME Foundation members and the GNOME
- project generally.
-
-Q: Should GNOME programmers switch over to Mono?
-
-A: Mono will not be ready even within the next six months, and a
- complete implementation is probably one year away.
-
- We encourage GNOME developers to continue using the existing tools,
- libraries and components. Improvements made to GNOME will have an
- impact on Mono, as they will provide the "backend" for various
- classes.
-
-Q: Will Mono include compatibility with Bonobo components?
-
-A: Yes, we will provide a set of classes for implementing and using
- Bonobo components from within Mono.
-
-Q: Does Mono replace Bonobo?
-
-A: Bonobo is very focused on cross-application component reuse. Mono
- will provide a Bonobo framework to allow you to develop Bonobo
- components and use Bonobo components on Unix.
-
- Mono should allow you to write Bonobo components more easily, just
- like .NET on Windows allows you to export .NET components to COM.
-
-** Mono and the Web
-
-Q: Is Mono a way of running Java applets?
-
-A: No.
+ learn more about running Windows applications on Intel Unix systems
+ refer to <a href="http://www.winehq.com">the Wine Project</a>.
** Web Services
@@ -335,20 +264,19 @@ Q: Is Mono just a new way of writing Web Services?
A: No.
-Q: If this implements the SDK classes, will I be able to write and
- execute .NET Web Services with this?
+Q: If Mono implements the SDK classes, will I be able to write and
+ execute .NET Web Services with it?
-A: Yes, you will.
-
- When the project is finished, you will be able to use the same
- technologies that are available through the .NET Framework SDK on
- Windows to write Web Services.
+A: Yes. When the project is finished, you will be able to use the
+ same technologies that are available through the .NET Framework SDK
+ on Windows to write Web Services.
-Q: What about Soup?
+Q: What about Soup? Can I use Soup without Mono?
-A: Soup is a library for GNOME applications to create SOAP server and
- SOAP clients. You can browse the source code for soup using <a
- href="http://cvs.gnome.org/bonsai">GNOME's Bonsai</a>
+A: Soup is a library for GNOME applications to create SOAP servers and
+ SOAP clients, and can be used without Mono. You can browse the
+ source code for soup using <a
+ href="http://cvs.gnome.org/bonsai">GNOME's Bonsai</a>.
Q: Can I use CORBA?
@@ -366,7 +294,7 @@ Q: Can I serialize my objects to other things other than XML?
A: Yes, although the serializing tools have not yet been planned, and
you would probably have to implement them yourself.
-** Development Tools
+** Development Tools and Issues
Q: Will it be possible to use the CLI features without using bytecodes
or the JIT?
@@ -379,14 +307,34 @@ A: Yes. The CLI engine will be made available as a shared library.
Q: Will you have new development tools?
-A: Hopefully Free Software enthusiasts will contribute tools to
+A: With any luck, Free Software enthusiasts will contribute tools to
improve the developer environment. These tools could be developed
- initially using Microsoft implementation of the CLI and then
+ initially using the Microsoft implementation of the CLI and then
executed later with Mono.
+Q: What kind of rules make the Common Intermediate Language useful for
+ JITers?
+
+A: The main rule is that the stack in the CLI is not a general purpose
+ stack. You are not allowed to use it for other purposes than
+ computing values and passing arguments to functions or return
+ values.
+
+ At any given call or return instruction, the types on the stack
+ have to be the same independently of the flow of execution of your
+ code.
+
+Q: Is it true that the CIL is ideal for JITing and not efficient for
+ interpreters?
+
+A: The CIL is better suited to be JITed than JVM byte codes, but you
+ can interpret them as trivially as you can interpret JVM byte
+ codes.
+
+
** Mono and Java
-Q: What about using Java? After all there are many languages that
+Q: Why don't you use Java? After all, there are many languages that
target the Java VM.
A: You can get very good tools for doing Java development on free
@@ -405,26 +353,6 @@ A: You can get very good tools for doing Java development on free
wide variety of programming languages, and has a set of rules
designed to be optimal for JITers.
-
-Q: What kind of rules make the Common Intermediate Language useful for
- JITers?
-
-A: The main rule is that the stack in the CLI is not a general purpose
- stack. You are not allowed to use it for other purposes than
- computing values and passing arguments to functions or return
- values.
-
- At any given call or return instruction, the types on the stack
- have to be the same independently of the flow of execution of your
- code.
-
-Q: I heard that the CIL is ideal for JITing and not efficient for
- interpreters, is this the case?
-
-A: The CIL is better suited to be JITed than JVM byte codes, but you
- can interpret them as trivially as you can interpret JVM byte
- codes.
-
Q: Could Java target the CLI?
A: Yes, Java could target the CLI. We have details on a <a
@@ -465,6 +393,19 @@ A: Our main intention at Ximian is to be able to develop GNOME
MacOS X for example), we would gladly integrate them, as long
they are under a Free Software License.
+Q: Will Mono run on Windows?
+
+A: We hope so. Currently some parts of Mono only run on Windows
+ (the C# compiler is a .NET executable) and other parts have only
+ been compiled on Linux, but work on Windows with Cygwin.
+
+Q: Will Mono depend on GNOME?
+
+A: It will depend only if you are using a particular assembly (for
+ example, for doing GUI applications). If you are just interested
+ in Mono for implementing a `Hello World Enterprise P2P Web
+ Service', you will not need any GNOME components.
+
** Reusing existing Code
Q: What projects will you reuse or build upon?
@@ -485,101 +426,47 @@ A: We are also researching <a
href="http://www.gnu.org/software/lightning/lightning.html">GNU
Lightning</a>.
-<a name="ximian-and-microsoft">
** Ximian and Microsoft
-Q: I read that Microsoft is helping out Ximian, is this true?
+Q: Is Microsoft helping Ximian with this project?
-A: Initial contact between David Stutz and Miguel de Icaza happened.
- It was a friendly conversation. Microsoft is interested in other
- implementing .NET and are willing to help make the ECMA spec more
- accurate for this purpose.
+A: Not exactly. Ximian CTO Miguel de Icaza had a friendly
+ conversation with Microsoft software architect David Stutz, but
+ that's about the extent of the contact.
+ Microsoft is interested in other implementations of .NET and are
+ willing to help make the ECMA spec more accurate for this purpose.
- We were initially contacted by Sam Ruby at the ECMA TG3 committee
- to discuss the same issue. And we are glad to have good contacts
- to ask questions about the specs.
+ Ximian representatives have also spoken with Sam Ruby at the ECMA
+ TG3 committee to discuss the same issues.
Q: Is Microsoft paying Ximian to do this?
-A: No, we are doing this for purely selfish reasons. We are upgrading
- our development platform to build better applications on Unix and other
- systems.
+A: No.
-Q: Do you fear that Microsoft will change the spec and render Mono useless?
+Q: Do you fear that Microsoft will change the spec and render Mono
+ useless?
A: No. Microsoft proved with the CLI and the C# language that it was
possible to create a powerful foundation for many languages to
interoperate. We will always have that.
- Even if changes happened in the platform which were undocumented
- (which is very unlikely), the existing platform has a value on its
- own.
-
- Miguel once explained its motivation for working on Mono to Dave
- Winer, and his mail got posted <a
- href="http://scriptingnews.userland.com/stories/storyReader$1275">here</a>
-
-Q: Didn't Miguel de Icaza say that `Unix Sucks'?
-
-A: Yes, he did, as a catch phrase in his opening remark on the Ottawa
- Linux Symposium. His talk focused on various ways to improve Unix.
-
- There is a paper describing some ways to improve Unix at:
-
- <a href="http://primates.ximian.com/~miguel/bongo-bong.html">
- http://primates.ximian.com/~miguel/bongo-bong.html</a>
-
-Q: Didn't Ximian's Miguel work for Microsoft?
-
-A: Actually, Nat Friedman (Ximian's co-founder) did work as an
- intern for Microsoft for one summer but Miguel did not.
-
-Q: Did Nat and Miguel meet at Microsoft?
-
-A: They met online on the Linux IRC network; They met in person for
- the first time in 1997.
+ Even if changes happened in the platform which were undocumented,
+ the existing platform would a value on its own.
-** Mono and Microsoft
-
-Q: How can you expect Mono to compete with Microsoft, wont this
- require an effort too large?
-
-A: You are right. Mono will never become a reality without the help
- of other contributors. Ximian is a small company that can not
- finish Mono alone. We will be working with members of the
- community to deliver the product.
-
-Q: Is Microsoft and Corel involved in the Mono implementation?
-
-A: No, they are not.
-
-Q: Are you writing Mono from the ECMA specs?
-
-A: yes, we are writing them from the ECMA specs and the published
- materials in print about .NET
-
-Q: What happens if Microsoft `Embraces and Extends' the CLI standard
- and keeps Mono out of the play?
-
-A: There are various explanations to this question. The first one is
- that the benefits that you can get from the CLI are going to be
+ The benefits that you can get from the CLI are going to be
there with or without `embracing and extending'. We might not be
- able to run every .NET Windows application on Mono. But remember:
+ able to run every .NET Windows application on Mono, but then again,
it was already easy for someone to just use PInvoke to tie their
application to Windows.
- The bottom line is that the advantages of having a CLI runtime will
- be with us, no matter if Microsoft forks their version to be
- incompatible.
+Q: Are Microsoft and Corel involved in the Mono implementation?
-Q: What if Microsoft changes the interface, and all of a sudden
- applications break?
+A: No, they are not.
-A: If they change their released API, every application that was
- developed against it will break.
+Q: Are you writing Mono from the ECMA specs?
- That being said, Microsoft have a pretty good record of keeping
- backwards binary compatibility.
+A: Yes, we are writing them from the ECMA specs and the published
+ materials in print about .NET.
** Acronyms
@@ -596,26 +483,20 @@ A: CLI is the specification of an execution system. The Microsoft
<a name="gcc">
** Mono and GCC
-Q: Should someone work on a GCC front-end to C#?
-
-A: I would love if someone does, and we would love to help anyone that
- takes on that task, but we do not have the time or expertise to
- build a C# compiler with the GCC engine. I find it a lot more fun
- personally to work on C# on a C# compiler, which has an intrinsic
- beauty.
+Q: Are you working on a GCC front-end to C#?
- We can provide help and assistance to anyone who would like to work
- on this task.
+A: We are seeking volunteers for this task. Visit the <a
+ href="contributing.html">contributing</a> section if
+ you'd like to work on this task.
-Q: Should someone make a GCC backend that will generate CIL images?
+Q: How about a GCC backend that will generate CIL images?
-A: I would love to see a backend to GCC that generates CIL images. It
- would provide a ton of free compilers that would generate CIL
- code. This is something that people would want to look into
- anyways for Windows interoperation in the future.
-
- Again, we would love to provide help and assistance to anyone
- interested in working in such a project.
+A: That would be great: it could provide a ton of free compilers that
+ would generate CIL code. This is something that people would want
+ to look into anyway for Windows interoperation in the future.
+
+ Visit the <a href="contributing.html">contributing</a> section if
+ you'd like to work on this task.
Q: What about making a front-end to GCC that takes CIL images and
generates native code?
@@ -629,10 +510,10 @@ A: I would love to see this, specially since GCC supports this same
Ideally our implementation of the CLI will be available as a shared
library that could be linked with your application as its runtime
support.
-
- Again, we would love to provide help and assistance to anyone
- interested in working in such a project.
+ Visit the <a href="contributing.html">contributing</a> section if
+ you'd like to work on this task.
+
Q: But would this work around the GPL in the GCC compiler and allow
people to work on non-free front-ends?
@@ -644,37 +525,18 @@ Q: Why are you writing a JIT engine instead of a front-end to GCC?
A: The JIT engine and runtime engine will be able to execute CIL
executables generated on Windows.
-** Mono and Portability
-
-Q: Will Mono work on other variants of Unix?
-
-A: Yes. We do not expect to add any gratuitous incompatibilities.
-
-Q: Will Mono run on Windows?
-
-A: Hopefully yes. Currently some parts of Mono only run on Windows
- (the C# compiler is a .NET executable) and other parts have only
- been compiled on Linux, but work on Windows with Cygwin.
-
-Q: Will Mono depend on GNOME?
-
-A: It will depend only if you are using a particular assembly (for
- example, for doing GUI applications). If you are just interested
- in Mono for implementing a `Hello World Enterprise P2P Web
- Service', you will not need any GNOME component.
-
** Performance
-Q: How fast will be Mono?
+Q: How fast will Mono be?
A: We can not predict the future, but a conservative estimate is that
it would be at least `as fast as other JIT engines'.
- Now, wishfully thinking I hope that we will ship various JITs with
- Mono just like Microsoft has done. A fast JITer when maximum
- performance is not needed, but fast load times are important; And
- an optimizing JITer that would be slower at generating code but
- produce more optimal output.
+ We would like to ship various JIT engines with Mono, just like
+ Microsoft has done with their .NET development platform. We could
+ provide a faster, JIT for fast load times but lower performance,
+ and an and an optimizing JIT that would be slower at generating
+ code but produce more optimal output.
The CIL has some advantages over the Java byte code: it is really
an intermediate representation and there are a number of
@@ -689,18 +551,49 @@ A: We can not predict the future, but a conservative estimate is that
instructions was reached.
-** Mono and Portable.NET
+** Licensing
-Q: What are the differences between Mono and Portable.NET?
+Q: Will I be able to write proprietary applications that run with
+ Mono?
-A: Most of Mono is being written using C#, the only pieces written in
- C are those who have to absolutely be built using C (The JIT
- engine, the runtime, the interfaces to the garbage collection
- system).
+A: Yes. The licensing scheme is planned to allow proprietary
+ developers to write applications with Mono.
+
+Q: What license or licenses are you using for the Mono Project?
- The C# compiler and the tools will become reusable C# components.
+A: The C# Compiler is released under the terms of the GPL. The class
+ libraries will be under the LGPL or the GPL with a special
+ exception. The runtime libraries are under the LGPL.
- Portable.NET is building its components out of C pieces.
+ Since the LGPL is not suitable for embedded systems development, we
+ are also licensing the libraries under the GPL with the following exception:
+
+ If you link this library against your own program, then you do not
+ need to release the source code for that program. However, any
+ changes that you make to the library itself, or to any native
+ methods upon which the library relies, must be re-distributed in
+ accordance with the terms of the GPL.
+
+ This is similar in spirit to <a
+ href="http://www.gnu.org/software/classpath/classpath.html">GNU
+ Classpath.</a>
+
+Q: Can I subclass objects within the LGPL licensed Mono code and still release
+ the resulting software under a closed license?
+
+A: Yes. Object Oriented Programming in the class library is a well
+ understood interface barrier, and subclassing does not "count" as a
+ modification, so you may develop proprietary applications with the
+ Mono libraries.
+
+Q: I would like to contribute code to Mono under a particular
+ license. What licenses will you accept?
+
+A: We will have to evaluate the licenses for compatibility first,
+ but as a general rule, we will accept all GPL and LGPL-compatible
+ licenses. If you want to use the BSD
+ license, make sure you use the BSD license without the
+ advertisement clause (The `Ousterhout License').
** Assorted questions