Today I decided to try converting my script-based build procedure to a MonoDevelop project. The process was pretty straightforward, although there were some pretty annoying glitches that saw me scrapping the project files several times before it was “just right.”
Now that the conversion is done, my experience with MonoDevelop is so-so. The work that has been done so far is indeed impressive, but I find myself disabling many of the unpolished features simply because they get in my way.
For example, automatic indentation makes assumptions about my coding style that are incorrect, forcing me to re-indent portions of code only to have them butchered again later when I change something. The code parser seems easily confused by things, to the point where it doesn’t recognize half of the members of a class, so I only see a portion of the members in the class browser. Code completion is likewise fragile: it frequently erases code by itself; is unable to find a class in the list after being given a few letters (though I can locate the class in the list it displays); and seems to be constantly using stale data for my own classes, as a Regex field recently changed from a string still displays members of String in the member completion popup.
At this point, MonoDevelop provides very few (if any) benefits over vim and some build scripts. I will continue to watch its progress though — while I don’t find it particularly useful right now, it is a very promising project.