[Mono-list] Portable.NET

Jonathan Pryor jonpryor@vt.edu
Sun, 07 Mar 2004 12:13:09 -0500

On Sun, 2004-03-07 at 11:34, Alejandro Ospina wrote:
> Hi!. I was wondering what are the differences between Mono and
> Portable.NET
> Why don't join the both?

This has been answered many times before; check the archives.

Here's a summary: Mono and Portable.NET have different opinions on a
number of subjects, from:

  - Licensing: Mono uses MIT/X11 for the class libraries, Portable.NET
    uses "GPL with linking exception."

  - Implementation: Mono's C# compiler is written in C#, Portable.NET's
    C# compiler is written in C.  Mono implemented their own JIT engine,
    while Portable.NET uses an existing interpreter system (CVM).

  - Mis-communication: There have been numerous heated arguments, on 
    mono-list and elsewhere, where both parties appear to be "talking
    past each other"; both sides make well-reasoned arguments, but it
    frequently turns into a flame war, with communication not being
    fully lucid.  For example, there was a "heated debate" in October
    2003 regarding the patentability of System.Windows.Forms.  (See the
    thread: Collaboration on alternatives to the US-patent-endangered
    APIs?) Portable.NET claimed they looked at it, and felt that none of
    the API was patentable, but clarification as to *why* the API was
    not patentable was not entirely forthcoming.  From the Mono
    perspective, anyway, and I'm not claiming that my memory is perfect
    (or even accurate).

So why don't they join?  Because they have different approaches to a
number of topics, as seen above.  That doesn't mean that we don't
cooperate on some topics; we do.  Mono's i18n implementation came from
Portable.NET, and Portable.NET is free to use all of Mono's class
library without restriction (the joy of MIT/X11).  For example,
Portable.NET's System.Text.RegularExpressions ChangeLog contains entries
from miguel and gonzalo, so Portable.NET is likely using Mono's
RegularExpression implementation.

 - Jon