[MonoDevelop] Why Monodevelop?
Miguel de Icaza
miguel at novell.com
Mon Dec 1 18:43:28 EST 2008
Some developers have weighted into this discussion, and I wanted to
complement the answer. Like Mike said, Monodevelop is based on
SharpDevelop which is a project from the early days of .NET.
MonoDevelop started originally as a port merely of the
auto-completion engine of SharpDevelop, a tool to just do auto-complete
for C#, and this at the time used System.Reflection. Building this on
Java (or any other language, like C++ for using Anjuta) that we would
have to write a new metadata parsing library. And for a week hack, it
was not worth doing.
Over time, as more code was ported from SharpDevelop to MonoDevelop,
the code itself started to be a great test not only for Gtk# bindings
exposing limitations, bugs, design mistakes and missing APIs, but also
for Mono and its own class libraries.
So MonoDevelop became one of the most important applications that
helped drive the qualify of Mono. There are certainly other open
source applications that we could have used as QA, and we have tried,
but the dynamics are very different. With MonoDevelop you have
*developers* that actually write code provide bug reports, investigate
the problems and suggest solutions. This happens to a much smaller
extent with other open source components.
At some point, one of our own developers (Lluis) started using it
for his day-to-day work as it had become useful enough, and he started
contributing to the open source Monodevelop effort to get his own work
But it is not only about QA, and about having our own IDE, and an
IDE that we can develop. It is also an IDE that will natively
integrate with every .NET library out there that works on Mono, and
integrates with Mono and its library ecosystem.
Had we used Eclipse, we would not be able to host any .NET code in
Eclipse without each attempt being a significant effort. Integrating
the code would be the exception rather than the rule.
By having an IDE that is built on our own platform, not only we
dog-food our own products, but we are able to integrate the very
technologies that we create and test the very technologies that we
recommend to people. Think of it as "bootstrapping" your own
I wish we did more of this, rather than less.
Eclipse is a great tool, and we want to learn from them, but we need
our code to be based on our platform.
More information about the Monodevelop-list