Slashdot Mirror


Dotgnu Coding Competition

Honestly writes "Apparently DotGNU seems to be offering more than the 'warm fuzzy feeling' to its contributors. Somebody has funded about $4500 worth of prizes for code contributions. The developers have confirmed that the $$$ is in FSF Hands (good hands, I suppose). Here is the split up of prizes. It's almost strange to earn money writing open source. Especially when you're not even employed by dotgnu. Anyway all I can say is ,I like it. It's ideal for a grad student with lots of free time. But hardly anyone seems to have seen the Newsforge posts (except maybe me)."

36 of 132 comments (clear)

  1. fp by Pompatus · · Score: 5, Funny

    It's ideal for a grad student with lots of free time.

    Never been to grad school, huh?

    --

    ----
    Squirrel ... It's not just for breakfast anymore
    1. Re:fp by s20451 · · Score: 2, Informative

      It's the Saturday of a long weekend, and as a grad student I'm spending my copious free time ... in the lab.

      --
      Toronto-area transit rider? Rate your ride.
    2. Re:fp by zCyl · · Score: 2, Interesting

      Some days I think Slashdot needs a +10, Insightful...

    3. Re:fp by Anonymous Coward · · Score: 2, Funny

      Life of a grad student:

      Year 0: "I will be an agent of change."
      Year 0.5: "Holy S@#&! Quals!"
      Year 1.0: Finished recovering from Quals
      Year 2.0: Hmm, no results.
      Year 3.0: Still nothin'. Do prelim anyway.
      Year 4.0: Realize that for project to succeed, 2 laws of thermodynamics must be violated.
      Year 5.0: Finally convince advisor of above
      Year 6.0: Surf web, drink coffee, contemplate navel. No longer bitter - now at peace.
      Year 7.0: Realize you're almost 30 and still in school. Realize you still don't have a feasable project. Bitterness returns.
      Year 7.0001: Job search begins.
      Year 7.5: Find job. Discover "friends" from undergrad who went straight to work will be boss's boss.
      Year 7.6: Define project, perform experiments, analyzing results, writing paper(s). Only productive time in grad school
      Year 7.7: Look for 5 faculty members willing to sit in a room with you and each other for 3 solid hours.
      Year 8.0: Committee finally assembled. Defense occurrs. Sum up 8 years with 20 minute talk. Listen to useful advice on project you'll never think about or work on again. Stand outside door for 20 minutes pacing nervously while committee discusses weekend plans, daycare options, new italian restaurant on west side. "You've passed! Now pay us $1000 to get 10 bound copies of your thesis made plus the microfilm charge or else you won't officially be awarded a diploma."

  2. If... by Spoticus · · Score: 2, Funny

    RMS wins, you know it's fixed ;-)

    1. Re:If... by wik · · Score: 5, Funny

      Little do you know, but the real prize is RMS coming to your front door with the FSF Source Patrol van, carrying an oversized copy of the GPL.

      --
      / \
      \ / ASCII ribbon campaign for peace
      x
      / \
    2. Re:If... by pyrrhonist · · Score: 2, Funny
      A decent programmer makes that in a week.

      No, several thousand Indians make that decent programmer's salary in a week.

      --
      Show me on the doll where his noodly appendage touched you.
  3. Thanks for spoiling it! by Lord+of+the+Fries · · Score: 5, Funny

    "But hardly anyone seems to have seen the Newsforge posts (except maybe me)."

    Oh great! So much for the easy win for the few of us that did know about it. :/

    --
    One man's pink plane is another man's blue plane.
  4. No you're not. by FreeLinux · · Score: 3, Funny

    You're posting on Slashdot, just like you do during the "busy" week.

  5. What about Mono by joeykiller · · Score: 3, Interesting

    How does this differ from mono? It seems to me as the two projects are trying to achieve the same things. If that's the case, why have two projects at all? Why not merge the two efforts? I guess somebody here knows why.

    1. Re:What about Mono by Plix · · Score: 4, Informative
    2. Re:What about Mono by qtp · · Score: 4, Insightful

      why have two projects at all?

      Perhaps, because different projects might come up with different implementations that have strenths that the others might not.

      Sometimes a parallel effort is needed in order that different approaches to the same problems get to be explored fully.

      Because it is sometimes better to fork a project, not because one approach is "wrong" but because another is equally good.

      Because it might be better to merge to separate efforts later when both have more mature codebases.

      Because having two separate projects nmight enable the coders to more easily see alternative methods that neither effort would have thought of without the other.

      Because there is more than one way to do it.

      --
      Read, L
    3. Re:What about Mono by Anonymous Coward · · Score: 2, Informative


      An advanced native-code compilation engine: Both just-in-time compilation (JIT) and pre-compilation of CIL bytecodes into native code are supported.


      Portable.net uses an advanced unrolling interpreter which gives it up to 60% the speed of a real JIT and makes it much easier to port than the mono JIT. It only took a week to port the unroller to arm processors.

      In the future Portable .net will have a full jit as well as the portable unrolling interpreter (which is much faster than mono's interpreter).


      A foundation for code optimization: The new code generator in Mono builds on the experience of our first JIT engine, and enables us to implement various advanced compiler optimization tricks. With an SSA-framework, plenty of new optimizations are possible.
      The current list of optimizations are: Peephole postpass, Branch optimizations, Inline method calls, Constant folding, Constant propagation, Copy propagation, Dead code elimination, Linear scan global reg allocation, Conditional moves, Emit per-domain code, Instruction scheduling, Intrinsic method implementations, Tail recursion and tail calls, Loop related optimizations, Fast x86 FP compares, Leaf procedures optimizations


      That's only unique cause Mono currently has a JIT. It's not unique to the Mono project.

      A self-hosting C# compiler written in C#, which is clean, easy to maintain.


      Focus on the .NET Framework: we are tracking down the .NET Framework API definition, as we believe it is the API people will be most familiar with.


      And the API that is the most poorly designed (when compared to OO libraries like Java).


      A multi-platform runtime engine: both a JIT engine and an interpreter exist. The JIT engine runs currently on x86 systems, while the interpreter works on SPARC, StrongARM, s390 and PowerPC systems.
      Our new compilation engine is being ported to the PowerPC.


      Now the wording of this paragraph is designed to decieve. The first part talks about a multi-platform runtime engine which is infact not unique to mono. In reality, portable.net runs on far more platforms than mono. The second part just goes on to talk about how the new compilation is going to be ported to PowerPC.


      Supports Linux, BSD, Windows and Solaris at this point.


      Portable.Net supports Linux, BSD, Windows, OSX, and more. In fact, all you need is a C compiler -- you can even compile portable.net with Visual C++ (try doing that with mono).


      The JIT engine is written using a portable instruction selector which not only generates good code but is also the foundation to re-target the JIT engine to other systems.


      More about the JIT. All of this "amazing" stuff is pretty standard for a JITs.


      Full support for remoting in the runtime.


      I'll give them that.


      The C# compiler, the JIT engine and the class libraries are mature enough that the whole system has been self-hosting since April 2002. This means that we develop Mono completely with itself at this point.
      By forcing ourselves to use our own code to develop our tools, we bug fix problems rapidly, and the system is overall more robust and tested than if we did not.


      That's not unique to mono either.


      We have a great community of developers, without which Mono would not be possible.
      In general, Mono is more mature and complete since it has been used to develop itself, which is a


      And so does portable.net. Too many mono developers are newbie or ex VB programmers which makes *a lot* of the code in mono extremely ugly hacks.

  6. Because by Anonymous Coward · · Score: 2, Insightful

    Each project is sure that their way is the only "sane" way to go about it. Each project looks down at the other with disdane, simply for being different.

    It's the same reason that there are now ~300 MP3 player projects on SourceForge.

  7. Re:System.Windows.Forms by Anonymous Coward · · Score: 2, Informative

    It doesn't matter how many "hidden" (they're not hidden - use ildsasm) calls there are. You're making your own implementation.

  8. Dyslexia??? by jpetts · · Score: 4, Funny

    I read that title as Donut Coding Competition!

    --
    Call me old fashioned, but I like a dump to be as memorable as it is devastating - Bender
  9. Re: "It's almost strange to be earning money..." by JessLeah · · Score: 2, Insightful

    As much as I love Open-Source/Free Software, it IS very very hard to make a living making it. I'm not talking about writing code for an employer, and then getting permission to release it; I'm talking about actually making your living DIRECTLY off of making, releasing and "selling" open source/free software, a la Red Hat (who just recently turned a profit for the first time). I'd love to hear some more stories from people who've actually made money by coding OSS/FS.

  10. What about this Malloc routine.. by adeyadey · · Score: 5, Funny

    What about this Malloc routine I've just written?
    Do I get a prize?

    Darl McBride

    --
    "You lied to me! There is a Swansea!"
  11. pgp key? by molo · · Score: 2, Interesting

    That message is signed with a pgp key. However, the key doesn't seem to be available on the public key servers, so how can we validate the message?

    If anyone has DSA key 0x7525EC32, please speak up.

    -molo

    --
    Using your sig line to advertise for friends is lame.
    1. Re:pgp key? by daserver · · Score: 3, Funny

      Is this a new version of "Will the real slim shady please stand up"? Sorry couldn't resist.

  12. Not so strange. by jtalkington · · Score: 5, Insightful

    It's almost strange to earn money writing open source.

    No, it's not. Linus, RMS, AC, BP, among many others have been getting paid to write free software for years.
    Part of the stigma associated with OSS is that since it's associated with "volunteers," it is considered hobby level. Lots of people get paid to work on OSS, and ever increasing large software companies (e.g. IBM and Apple) have staff members working exclusively on OSS.

    1. Re:Not so strange. by r00zky · · Score: 2, Informative

      He's no longer working for Transmeta.
      He's getting paid to write the kernel, paid by OSDL, more info here.

      --
      I'm a chainsmokin' alcoholic sociopath, so-ci-o-path
  13. $300 per prize - is it too little ? by leoaugust · · Score: 4, Interesting

    Besides the chance of winning one of fifteen monetary prizes totalling US$ 4500

    Though it is good start that there is some money, but what comes to my mind is why so little ... 15 prizes averaging $ 300 each

    • that is about 8.5 hours of a coder worth $ 35 an hour
    • or 1 week (20 hours) of a grad students time ....
    • or 2 weeks (40 - 60 hours) of a coder in India's time
    • or 4 hours of a coder worth $ 75 an hour

    I wonder why doesn't some philanthropist wanting to donate to charity or some rich guy wanting to support Linux just give a couple of hundred thousand dollars, or may be a few millions, in prize money - so that it can support a critical mass of programmers that can devote a decent amount of time ..... rather than the tens of hours that are "economically feasible" now ....

    I know ... linux is not about money and all .... but still ... why couldn't it be ... everyone does not have to pay - just those people wanting it very badly have to pay while the rest get a free ride so that society as a whole benefits ...

    and seriously - this is not meant to be flamebait ...

    --
    To see a world in a grain of sand, and then to step back and see the beach where the sand lies ...
    1. Re:$300 per prize - is it too little ? by Cthefuture · · Score: 2, Insightful

      I was thinking the same thing. The top prize is $2000. Over four months that's less than $3 an hour. And that's if you win. Screw that.

      Now sure, some people would just do it for the hell of it. However, if they are expecting quality code, it probably isn't going to happen. Anyone with any talent is going to pass this over.

      Quite lame.

      --
      The ratio of people to cake is too big
    2. Re:$300 per prize - is it too little ? by rhysweatherley · · Score: 4, Insightful

      It's a prize, not a wage.

  14. PNET vs Mono by Anonymous Coward · · Score: 4, Informative

    Basically Mono's FAQ trashes DotGNU and Mono at every chance. Miguel and the Mono crew has had a smear campaign against DotGNU since day one.

    DotGNU in the past has tried to cooperate and initiated talks in sharing resources, but this didn't go well with Mono.

    The true difference between Portable.NET and Mono is Portable.NET has chosen different technical decisions.

    #1: The compiler is written in C/C++ not C# itself, so it doesn't have the chicken or the egg problem. Mono's CVS is very difficult to get a handle of because of this. PNET's compiler is about 3x as fast as Mono's.

    #2: The topic at hand, winforms.. PNET's winforms only dependancy is X, which means their winforms work on handhelds, osx, etc. Very portable. Mono's requires Wine, not very portable to say the least.

    Thats a rough quick sum.

  15. License? by DickBreath · · Score: 3, Interesting
    Can DotGNU be used by a developer who wants to put their own work into making a web based, for pay application, that is closed source, but using DotGNU's tools and platform?

    I love free software and open source, use them, advocate them, and even write some small time stuff and license it LGPL. During the day, I work for a company that develops and sells a software program.

    Here is a quote from the FAQ of DotGNU's Vision for WebServices .

    Am I obligated to give away my webservice source code?

    You are not automatically obligated to distribute your source code, and you are certainly not obligated to just give it away. However, if you sell webservice services, then your customers will expect that you make them the "owner of the data" which the webservice uses, and depending on the exact circumstances that may indirectly give these customers a right to get the source code upon request. Here are the details:

    If you provide a webservice using a GPL'd webservice program (which you may have modified), then the "owner of the data" will be able to obtain the webservices programs under the terms of the GNU GPL, and this implies in particular that they will have a right to get the source code of the exact version of the program which you're using. The terms of the GNU GPL also require you to make a written promise to this "owner of the data" that you will be willing to provide the source code upon request. This ensures that the "owner of the data" will know about this right to the source code.

    The "owner of the data" is typically a paying customer, and the fact that the customer has a right to get the source code increases the value of the service you provide. Therefore you will be able to charge a higher price and/or close more sales.

    You can use the DotGNU development tools to program your own webservices (instead of just modifying the webservice programs which are distributed with DotGNU, or which others have made available under the GNU GPL) and then your are not required to make source code for these webservices available to the customer who is the "owner of the data". However, even in these situations where you are not required to make the source code available to your customers, we strongly encourage you to provide the source code to your customers under the terms of the GNU GPL anyway. We believe that this is ethically the right thing to do, and that it will be good for your business.

    Now I thought the GPL would not prevent this sort of thing? Now I'm really confused.

    I'm sure glad that GNU thinks they know what would be good for my employer's business and that my employer should charege more for their program (which is for schools).

    I thought I had a good solid understanding of the GPL . I've taken the GPL quiz , read the GPL Faq before.

    I thought the GPL only applied to copying and distribution of a program or derrived work. Not to running it privately on my own web site.

    If I distribute my proprietary program, along side a DotGNU program / platform that executes it, I would not think that my program comes under the scope of the GPL.

    If I do NOT distribute my proprietary program, but merely run it at my site, and merely sell it as a service, then I was definitely under the impression that the GPL did not apply since no distribution takes place.

    Still, back to the case where I distribute my program, and a seperate DotGNU program to run it, then I would not think that my program comes under the scope of the GPL.

    Maybe I had better just stay completely away from DotGNU. Stick with Apache and various Java tools instead.

    Just a side note about the customer having their data he

    --

    I'll see your senator, and I'll raise you two judges.
  16. Standard comment #346 by UserAlreadyExists · · Score: 2, Insightful

    I wouldn't support such a project. If you try to copy MS, you'll always be behind. Reverse engineering takes a lot of time and it's a moving target, since they can change .NET at will. Look at GNU Classpath (Java reimplementation): they're way behind.

    In these cases I think it's better to create a project that offers the same general functionality, but in a distinctive, better way.

    If only I wasn't so lazy...

    --
    "Screw causalilty!" -- Prof. Farnsworth
  17. stay away from all of them for now by penguin7of9 · · Score: 3, Interesting

    Maybe I had better just stay completely away from DotGNU. Stick with Apache and various Java tools instead.

    The Apache license is fine, but Java doesn't look like a big win to me. While Sun keeps proclaiming that the platform is open, in reality, large parts of the platform only exist as Sun proprietary code. Even if someone managed to reimplement them, Sun controls the compatibility tests and they can shoot down any implementation they don't like.

    At this point, I'd not get involved with any of Java, PNET, or .NET--the one thing all of them seem to agree on is that they want to entangle users in a web of intellectual property. Well, actually there is another thing that they seem to agree on: all of them want to run your code in a bloated runtime that's slow to start up. Mono seems to have the most straightforward license of the bunch, but even Mono is at risk of patent infringement claims from Microsoft.

    Just wait for the dust to settle and for Sun and Microsoft to come to their senses with their outrageous intellectual property claims. Until then, you have plenty of other options--there is nothing technically new in any of those platforms.

    1. Re:stay away from all of them for now by DickBreath · · Score: 2, Interesting

      Java doesn't look like a big win to me. While Sun keeps proclaiming that the platform is open, in reality, large parts of the platform only exist as Sun proprietary code

      Obviously, because I study the licenses before even proposing development, I would be considering such things.

      Open source implementations of Java are on the horizon. Today, commercial Java runtimes are available from multiple vendors, so you are not likely to have one single vendor treat you badly.

      It is not impossible that Sun could lose control of the standard once multiple mature Java implementations are around. What the rest of the industry does could become a de facto standard. Sort of how the PC architecture hasn't been dictated by IBM for a very long time. Or how modem command sets were no longer dictaged by Hayes. I'm sure there are other examples.

      So whether Sun sets the standards in practice or not (in the event of multiple mature open source implementations) would really depend on how good the standards are, and on how nicely they play.


      Java doesn't look like a big win to me. While Sun keeps proclaiming that the platform is open, in reality, large parts of the platform only exist as Sun proprietary code

      It has the drawback you point out. It also is not as mature in some sense as Java. If the evolution of Mono fits my schedule, it might be the thing to use.

      --

      I'll see your senator, and I'll raise you two judges.
  18. I beg to differ by jpmorgan · · Score: 3, Informative
    DotGNU in the past has tried to cooperate and initiated talks in sharing resources, but this didn't go well with Mono.

    I was involved in that argument. If I recall correctly, it was a Rhys Weatherly and some others demanding that the Mono be placed under the DotGNU steering committee and that everybody work on their project instead. Of course, at the time it was quite obvious that DotGNU was mostly ideologues who were obsessed with 'defeating Microsoft' through some embrace and extend tactics, whereas most of the Mono hackers were fairly pragmatic about the whole issue: 'This is pretty cool! I'd love to see an implementation of this in Linux!'. Most of the people who weren't turned off by the downright abrasiveness of Rhys were turned off by the zealous ideology.

    As for bad-mouthing, the only thing the Mono FAQ says about Portable.NET as opposed to Mono is that it the runtime (and compiler) are much less tested. Ximian claims that by developing the compiler and most of the rest of Mono in C#, the whole toolchain has been given a much more rigourous workout than Portable.NET.

    In fact, I'd say the badmouthing has been much more in the other direction: there used to be a page around on the DotGNU website (not sure if it's still there) badmouthing Mono. None of the claims had any substance. For example, it claimed that Mono was on shaky legal grounds with regards to hidden Microsoft patents, which may perhaps be true. However, Portable.NET/DotGNU isn't safe from those legal threats either. Further, while Mono was developed from the ECMA (and now ISO) specifications, Portable.NET was initially developed by reverse engineering Microsoft's .NET implementation (without any clean-room engineering), putting it at risk of copyright infringement claims as well as patent claims. This was also part of the reason why there was little interest from Mono in merging the class libraries.

    I suspect things are probably more civil these days. Cooler heads usually prevail in the end.

    As for your other claims....

    #1: The compiler is written in C/C++ not C# itself, so it doesn't have the chicken or the egg problem. Mono's CVS is very difficult to get a handle of because of this. PNET's compiler is about 3x as fast as Mono's.

    Mono's CVS is easy to handle. It is distributed with a partial prebuilt toolchain, that is then used to build the entire toolchain. It's all MSIL, so there are no platform portability issues. It is also standard practice to write a compiler in its own language.

    #2: The topic at hand, winforms.. PNET's winforms only dependancy is X, which means their winforms work on handhelds, osx, etc. Very portable. Mono's requires Wine, not very portable to say the least.

    WinForms contains a number of window-isms, which the Wine project have already implemented. Reimplementing winelib seems silly and a waste of energy. I can't imagine it'd be appreciably harder to port Mono's WinForms implementation across platforms had it been written from scratch than it would be to port winelib itself. And if winelib gets ported, people other than Mono users and developers can benefit from that work.

    Anyway, just my $0.02.

    1. Re:I beg to differ by TummyX · · Score: 2, Insightful


      WinForms contains a number of window-isms, which the Wine project have already implemented. Reimplementing winelib seems silly and a waste of energy. I can't imagine it'd be appreciably harder to port Mono's WinForms implementation across platforms had it been written from scratch than it would be to port winelib itself. And if winelib gets ported, people other than Mono users and developers can benefit from that work.


      WTF!? WinForms is based on windows controls but that doesn't mean you need an implementation of the entire windows API to implement them. The windows controls themselves can be written in pure C#. The only native part you need is the System.Drawing APIs which can be implemented different for different platforms. There is absolutely no need to have the entire windows API to implement a few basic controls. Also, I'd love to see how they plan on getting winlib + mono small enough to work comfortably on an iPaq.

  19. Re:Wine? by chochos · · Score: 2, Informative

    DotGNU is trying to implement System.Windows.Forms using only X instead of Wine or GTK#. This should result in greater portability. So they're writing all the gadgets from scratch, in C#. It's slower than using Wine but right now I can build PNET completely on OSX, and I can't still get Mono to work on OSX and even if I did it would only be for command-line and ASP stuff, no GUI available because I can't use Wine on OSX.

  20. No, you weren't involved by bizcoach · · Score: 4, Interesting

    No, you weren't involved in any of the three attempts to establish cooperation
    with Mono.

    The first attempt was made by the DotGNU coreteam and the
    Free Software Foundation, privately, immediately after the existence of the
    Mono project had become public knowledge (that was in early July 2001).

    You must be referring to the second of these attepts, which was not initiated
    by the DotGNU project but by a third party (Martin Coxall)... making Mono part
    of DotGNU was his idea, not ours... both Miguel (the Mono project leader) and
    I posted in the thread which resulted from this proposal, and I got upset about some
    of Miguel's comments, but in retrospect I think it's very understandable that
    the Mono folks were not interested in talking about cooperation in the context
    of such a proposal.

    In April 2002, we made a third attempt to establish cooperation with Mono.
    This attempt was much more promising than the earlier two, and it has involved
    offering a sizeable chunk of pnetlib I18N code to Mono under the X11 license,
    which they have integrated into their class library.

    DotGNU is still open to discussing any mutually beneficial ways of cooperation.
    For example, some parts of the class library could be developed jointly, using
    a neutral cvs server. We have proposed this to the Mono project multiple
    times, so far it seems that the Mono folks are not interested in this kind of
    cooperation. The I18N code which was integrated into the Mono libs forked
    immediately, so that doesn't count as a mutually beneficial form of
    cooperation.

    Your claim about DotGNU Portable.NET being "at risk of copyright infringement
    claims" is totally false. Our procedures have been carefully checked and
    declared ok by a competent lawyer (Eben Moglen, professor of law and legal
    history at Columbia Law School). I do know however what discussion you
    probably remember. Here is how it went: I asked whether Mono has proper
    procedures for reverse engineering (in hindsight I regret having asked
    this question publicly, I now think it would have been much more appropriate
    to ask this kind of question privately), and Miguel replied that the Mono
    project doesn't have the resources for that, and he added a verbal attack
    against the procedures used by Rhys in the early days of the Portable.NET
    project. You really shouldn't be concerned about what Miguel wrote about
    Portable.NET in that message. First of all, reverse engineering for purposes
    of interoperability is always legal in the country where that work was done.
    (EULA clauses that forbid it are legally null and void in that country.)
    Secondly, the early versions of Portable.NET achieved interoperability in a
    manner that (in the judgement of Eben Moglen) would not have violated the terms
    of the anti-reverse-engineering clause even if that clause wasn't irrelevant
    anyway. (We had not informed Miguel about the details. Why should we? He
    never asked.) Thirdly, the code to which these concerns applied has long since
    been rewritten for technical reasons anyway.

    Nota bene, both projects, Mono and Portable.NET, want to be compatible with
    much more than just with what is described in the ECMA specs. So there is
    reason to be careful. I can assure you that I've been working hard behind the
    scenes of the DotGNU project to make sure that we're as careful as we
    reasonably can be.

    I don't know what you mean with the claim "there used to be a page around on
    the DotGNU website (not sure if it's still there) badmouthing Mono." I
    maintain the DotGNU website and I'm sure that we have never had any such
    page. The DotGNU website moved to the Savannah CVS system on July 10, 2001
    and all versions of all website files since then can still be reviewed at
    http://savannah.gnu.org/cgi-bin/viewcvs/projec ts/d otgnu/?cvsroot=www.gnu.org
    Since that website move was just one day after the initial public announcement
    of the Mono project, if your claim was true, the evidence should be there. I
    challenge you to check your claim against the available public record.

    Greetings,
    Norbert.

    1. Re:No, you weren't involved by miguel · · Score: 2, Informative

      Well, a few corrections.

      Phase 1: DotGNU and Mono announced on the same day by the FSF. Mono to work on the framework, DotGNU to do the more undefined parts of .NET. Whatever that meant.

      At this point cooperation was not possible, because it turned out the DotGNU team wanted to invent a new virtual machine that supported Java and .NET at the same time. I could see this as interesting research, but not something I particularly cared about.

      Then we were asked something like `you will work with us better than with proprietary companies'. This is ridiculous in that you cant make this kind of promises. Specially with a team of people (the DotGnu) who had no track record of writing anything of large scale. So to us, a relatively experienced team of developers, being told this by a team of self-appointed "core team" of unexperienced people was a non-starter.

      Phase 2: Portable.NET bends over and accepts every wacky idea of DotGNUers. The idea here is that Portable.NET had to please the desires of the dotgnu kids, so a promise to support JVM binaries at the same time and generating code for both was made. They got this working to some extent, but again, its slow, untested, and very broken.

      Phase 3: the code donation. Mono received under the terms of the MIT X11 license, a copy of the I18N code. A pretty small chunk of code, and lots of data files that come from the IBM ICU library (about 4k lines of code, plus 46k of data files).

      This was the beginning of cooperation.

      The cooperation did not last long, because even when we submitted fixes to them, and pointed them to new codecs, they decided to change the license of their code to GNU GPL, because they felt cooperation with us was useless.

      Licensing:

      We use the more liberal MIT X11 code, which they have liberally integrated into their code base, but since we are commited to eliminate any potential licensing problem that a proprietary software developer might have with Mono, we will not use the GNU GPL or GNU LGPL in our libraries.

      We could not use PNet's code for two reasons: we just plain dont like the coding style (coming from the Linux/Gnome coding conventions), and second the reverse engineering that was done in Australia (what Norbert claims is ok) would put anyone distributing the software in the US under a potentially interesting legal situation.

      It is our responsability to the contributors of Mono who have devoted tons of hours to it, and to the users to make sure that there is not the slightest potential legal problem with the code that would make their contribution useless. We dont want anyone FUDing in the future like its being done with SCO. So we had to have more strict legal procedures.

      For instance, we recommended people not to look at Rotor source code until we had the equivalent Rotor functionality implemented. Pnet follows a different approach: read Rotor, and do a new implementation of it. Might be better for interop, but I sleep better at night :-)

      Miguel.