diff options
author | Aaron Weber <aaron@mono-cvs.ximian.com> | 2001-12-17 21:12:43 +0300 |
---|---|---|
committer | Aaron Weber <aaron@mono-cvs.ximian.com> | 2001-12-17 21:12:43 +0300 |
commit | 2e9a549a33ffbfaebdaf5b95deda1a24414b2568 (patch) | |
tree | e6b6f4786a8756cebe4cf0541ebc84e465fde2fb /web/faq | |
parent | 4380b1b625d3dbb8688f0f92621e0c7cd7c2a587 (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/faq | 577 |
1 files changed, 235 insertions, 342 deletions
@@ -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 |