Introducing Mono.XTensions (temporary name I think)

I had just a Yet Another Brainwave idea in my bed this morning, I discussed it with Antti and we both agree that it may be interesting. In simple word I came to a sort of conclusion that even if Mono have interesting subprojects on their own (Gtk#, Gnome#, Mono.Unix for example) the root foundations is still heavily Microsoft copy&past’ed. The new Moonlight project is, I think, a great illustration of how Mono seems dependent of Microsoft in term of innovations. Hell, we are OpenSource developers ! Creativity is our field. We shouldn’t be limited by ECMA specs and higly-patented Microsoft technologies if we want Mono to be the next major development plateform for Linux (as Miguel likes to put it) and not « MS on Linux » as some detractors keep telling.

That’s why I propose to provide new features to the BCL of Mono : standard features (i.e. things that are covered by the specs) should stay like they are in the default class files but at the same time we should provide new methods that integrate nicely into these base classes. That’s exactly the purpose of extension methods that were recently added to Mono 1.2.4. Why not then create a Mono.XTensions project and extend what we want in the BCL much like Microsoft folks did with their implementation of LINQ (which is based on the extension of the IEnumerable interfaces) ?.

In my personal experience I often find to be limited by the methods of the string class or, in fact, by the absence of some syntactic sugar, my examples are : a .IndexOf method which start searching at a defined index, a .Substring method which take a start index and an end character, a one who make portion based on index and a chomp Ruby-like method. All of this is possible to implement with the base methods but it becomes a pain in the ass to repeatedly rewrite the same subroutines for each projects.

For the moment Antti is on the move to open up a channel on GimpNET for further discussions and we are looking towards porting the PublicDomain library (a good lib btw) from CodePlex in our new Mono.XTensions library. Any input in the comments or in the upcoming channel would be appreciated :) .

Comments 1

  1. dufoli wrote:

    great idea!
    Why not add some iterator method to Int class like ruby do or add some class more than just extend current one.
    In Framework we have some base class/factory for implementation but without the tool itself.
    For Example, SFTP, Tomcrypt based key for RSA, colored console, …

    duff (olivier dufour)

    Posted 10 juin 2007 at 21 h 21 min

Trackbacks & Pingbacks 1

  1. From Two big news today « Yet Another [a compléter] on 05 sept 2007 at 9 h 42 min

    [...] a good and credible product they have to make it portable themselves) and, as I already said there, it proves again the dependency link that Mono is slowly acquiring on Microsoft technologies and, [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *