Why JetBrains should make a Mono IDE

If you haven’t seen the news already, Miguel de Icaza announced yesterday that the Mono team, having been cut loose by Novell’s new Attachmate overlords, had started their own company, Xamarin, to continue the great work they do for the .NET community beyond Microsoft. They’ve got some angel investment and a business model based around their MonoTouch, MonoDroid and MonoXYZ stacks, plus a bit of consulting.

This is welcome news indeed following a couple of weeks of fear, uncertainty and doubt over the future of not only the Mono product line but also the personalities whom many of us “know” through Twitter, mailing lists and so on.

The day after this announcement, I caught this tweet from @agileguy:

They could partner with a certain dev. tools maker and make the bestest mono/.NET IDE evar!! MonoStorm FTW

I don’t know if Daniel was serious, but I think this is a truly awesome idea. JetBrains IDE offerings are the best out there (with the possible exception of Visual Studio + Resharper). I use RubyMine, which is based on IntelliJ IDEA, and I love it.

But a Mono IDE, written in Mono, would be a smart move for JetBrains. At the moment their flagship product is written in Java and runs on the JVM. Since long before Oracle’s acquisition of Sun, Java has been drifting, and has fallen behind C# as a language and the CLR as a runtime. Now that Oracle have taken control, Java’s future seems even less uncertain, whether you believe that’s due to apathy, incompetence, litigiousness or downright malice.

By contrast, Mono is now under the safe stewardship of a passionate and capable team who are pushing C#, .NET and the CLR in amazing directions, often further than Microsoft seem to manage.

Porting IntelliJ to C# and Mono would result in that amazing JetBrains IDE know-how, still running cross-platform, but on a runtime that is fast and stable, and under active, enthusiastic development. It would mean that MonoTouch development could be done in exactly the same environment on OSX as Android (and other) development on Windows or Linux. It could become the de facto choice for anybody doing cross-platform mobile device development, with built-in support for sharing code between MonoTouch, MonoDroid and WP7 apps. And it would be an IDE to challenge Visual Studio for the hearts and minds of hundreds of thousands of .NET developers worldwide.

This is an opportunity for an established, respected company to work with and support a fledgling start-up, and for a small team of some of the best developers on the planet to really hit the big-time. I hope that opportunity isn’t missed. If you agree, please take a minute to add a comment below.

Comments

  1. I was serious and I am glad someone else thought it was a good idea too 😀

  2. I agree, I think that it would be a really good idea for JetBrains and strengthen their position not only from a product offering point of view but with their standing in the dev community.

    JetBrains + Mono #ftw!

  3. C-J Berg says:

    It’s a brilliant idea (hah, Idea)! I’m a user of some of JetBrains other IDEs, and it never ceases to amaze me how powerful and developer friendly they are. Visual Studio with ReSharper is good (with emphasis on ReSharper), but compared to Idea and its cousins it’s a resource hog, it loads way slower, and there are so many things it forces you to do manually that Idea does automagically. Not to mention that Visual Studio’s release cycle – biyearly with a service pack if you’re lucky – belongs to the last century. I would buy “MonoStorm” in an instant!

  4. Ed Blackburn says:

    Mark,

    Totally agree regarding the premis for serious Mono IDE refactoring / productivity capabilities.

    R# is pretty old and one assumes pretty tightly coupled to Visual Studio. As Visual Studio evolves and moves away from the COM model and more towards a MEF enabled, plugin friendly architecture, the more emancipated plugins can be.

    I imagine much of the R# IP is in excellent lexing capabilities and hence the suggestions that can be provided to the user. Thus the mandatory R# to VS adaptor / plugin infrastructure is just a time consuming, expensive time-sink as developers pinvoke the crap out of VS to integrate.

    Once the VS plugin architecture matures enough that JetBrains can decouple without major expense, or even organically via the evaluation of the product in conjunction with sound engineering principles (do JetBrains practice what they preach?). The opportunity then presents itself; write providers, proxies, bridges and adaptors – sound like familiar patterns / concepts – to alternative IDEs. Take a look at MonoDevelops refactoring contract:

    public abstract class RefactoringOperation
    {
    public string Name {
    get;
    set;
    }
    public virtual string GetMenuDescription (RefactoringOptions options);
    public virtual bool IsValid (RefactoringOptions options);
    public abstract List PerformChanges (RefactoringOptions options, object properties);

    public virtual void Run (RefactoringOptions options);
    }

    Simple – I think so?

    Perhaps at this junction the Mono team and the .NET community can offer a real contribution?

    The real questions for me are at what point does it become worthwhile for JetBrains to extend R# to facilitate this? Could that be accelerated with investment? Would it be worthwhile? Will VS get to a mature plugin architecture fast enough, considering they operate on 2 – 3 year iterations?

    Java as a language may well be staring VB6 in the face but the JVM thrives and I just don’t see where the RoI would be to port any JVM code to Mono is – for anyone. That’s a task for Miguel, he has to convince the world…

  5. I think there’s tremendous value and potential for a Visual Studio competitor from JetBrains, with Mono being the natural cross-platform choice for a foundation. I would love to see this, as the ability to use one IDE for cross-platform development for C# has never surfaced in the past. I don’t like MonoDevelop enough to use it in Windows with VS is close at hand, but I know that JetBrains has the capability to do a better job than Visual Studio. I say this is a product whose time has come, especially with the advent of MonoTouch and MonoDroid.

  6. I couldn’t agree more! I am trying to use monodevelop (on a mac) and it’s driving me insane. It seems IntelliJ has an open sourced their base IDE. I wonder how hard it would be to port it over to work with C# and mono.

  7. wow, I am also definitely agree with the comments above. It makes so much sense to have a mono/clr IDE. please do it IntellliJ

  8. Microsoft should outsourced it’s VIsual studio development to Jetbrains. I love the .net framework but after years of watching Microsoft focusing on the wrong things (like changing the look and feel of VS instead of making it more stable and fast) I am reaching a point where I am willing to give another programming language a shot. And it’s going to be a programming language with a Jetbrains IDE… I really believe there is a market for a .net IDE. Just read the numerous comments following any VS release… And at the price that VS is selling for Jetbrains would have a high margin IDE.

  9. No. It ill bad idea. Currently R# is convert intellij platform to C#. Without main UI, but the same.

    Another variant – is make C# plugin for IDEA. And it works. U can see it at video http://www.youtube.com/watch?v=K1EZF8-jcTs

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: