Why SharpDevelop is better IDE ?
by Mandar Vaze on July 10, 2009
in Open Source, Python, Review, windows

- Image via Wikipedia
In my first post about IronPython, I documented how installing IronPython Studio was painful (Needed Visual Studio shell, which in itself was confusing). When I started with IronPython I did not know about any other IDE, hence I went ahead with IronPython Studio. But later I came to know about SharpDevelop.
My initial problem with SharpDevelop was that it needed .NET 3.5 SP1 at the minimum. I had just gone through the painful exercise of downloading and installing the prerequisites for IronPython Studio. So I was in no mood of downloading another big chunk before I can start my IronPython Development. But once I got past my initial development cycle, I wanted to give Sharp Develop a try.
After using both the ID interchangeably, I finally settled on SharpDevelop as my choice for IronPython Development
Why SharpDevelop ?
#develop (short for SharpDevelop) is a free IDE for C#, VB.NET and Boo projects on Microsoft’s .NET platform
To begin with it is completely free and open source. We like Open Source. But IronPython Studio is also Free and Open Source. But it needs Visual Studio shell from MS. There is nothing wrong with that, I think it is a design philosophy. IronPython Studio was probably built with the sole purpose of supporting IronPython IDE. So the developers must have assumed that anyone doing development on MS platform would typically use Visual Studio. Since MS has a free version of Visual Studio, cost is non-issue. That is why IronPython Studio is available in two modes : integrated mode and isolated mode. Assuming that existence of Visual Studio shell helps in reducing the download size. While IronPython Studio was less than 1MB, Sharp Develop on the other hand is whopping 18 MB.
On the other hand, SharpDevelop was built from ground up with the goal of providing a completely open source alternative to Visual Studio. As the name suggests, probably very first language it supported was C#, and then added support for VB.NET and Boo (and IronPython as of 3.0) one by one.
Support for Visual Studio Solution files
While SharpDevelop aims to be complete alternative for Visual Studio, I think they realize that in real world there are bound to be projects which already have .sln files. So it is important to support .sln files. IronPython Studio on the other hand insists on creating its own .pysln files.
While .pysln may be OK for Standalone IronPython Development, SharpDevelop approach of supporting solution files will be useful when one tries to use IronPython code with other .NET languages like VB.Net and C# (To be fair both use .pyproj project files, which can be open interchangeably in any IDE – But IronPython Studio insisted on creating its own .pysln file when it opened .pyproj)
While I have not used integrated mode of IronPython Studio, SharpDevelop inherently supports multiple .NET languages. It also has feature to convert VB.net code into IronPython. Now how cool is that ?
Third party tools
One of the menu items in SharpDevelop is titled “Quality Tools”. I liked the fact that an IDE cares enough about the quality to integrate various third party tools. It has built in option for Profiler, StyleCop, FxCop, as well as NUnit. Some of these tools require a third party DLL to work, but that is fair enough.
SharpDevelop also recognized that TortoiseSVN was installed and supported Subversion operations from within the IDE. On the other hand, free Visual Studio plugin for SVN – AnkhSVN – doesn’t work with free (Express) version of Visual Studio.
So does that mean SharpDevelop is the ultimate IDE for IronPython development ? Not quite. There are certain things that didn’t quite work for me.
Code completion missing ?
Since most of my development has been on *nix platform, I haven’t used much of IDEs. I used Eclipse once is a while for some Java Development, but always felt it to be slow. For pure Python development, I prefer Komodo free IDE on both Ubuntu as well as Windows. I have also tried Eclipse 3.5 with built-in support for Dynamic languages for Python development on Ubuntu. But none of these provided the auto completion (or intellisense as sometimes it is referred) feature for python/ironpython. I read on one of the blogs that SharpDevelop 3.1 supports code completion for IronPython, but for some reason I was not able to get it working for me (Please let me know in comments, if you know of any configuration that may be required for this)
Folding doesn’t quite work
Another big feature I missed (as compated to Komodo free version) was how folding worked. SharpDevelop support folding only for the code inside a class. Most of code is outside of any of the classess – so I get no folding. Komodo on the other hand support folding for as small as if block.
Closing Remarks
In coming days, I need to integrate my code with VB.Net application. I plan to use SharpDevelop for the entire development. If my colleagues can’t figure out that I am not using Visual Studio, I may suggest the rest of the development team to also try SharpDevelop (and save some buck for the organization – that would be pretty big saving)
![Reblog this post [with Zemanta]](http://img.zemanta.com/reblog_c.png?x-id=41035723-ab8c-4afa-a80a-aa40c8e97aae)


If you use Eclipse+Pydev, you should be able to have code-completion for Iron Python (note: version 2.6 is required) — see: http://pydev.blogspot.com/2009/06/testing-on-pydev-147-ironpython.html
To use #develop 3, yes, u need .Net 3.5 sp1 when installing but u can bypass it as long u had upgrade .Net 2 2005 or install .Net framework 3.5 2008 (note this different with sdk and sp1). Next go to registry then edit hklm@sotfware@microsoft@.Net 3.5, next look for sp then change to ‘1′. That’s all and start again the installer. If ur country gv broadband free, i recommend to download .Net 3.5 sp1 or .Net 4 beta. I agree with u that #develop will be just like firefox. Lets support it. Ciao..Goody luck..