An interview with MonoDevelop’s Lead Programmer

The Linux.Ars crew brings you an interlude before Part II of the Mono series …

MonoDevelop

We were planning on continuing Andrew's introduction to Mono this week. Unfortunately the overwhelming response and the release of IronPython as Open Source complicated a bit of his work and some retooling is necessary. Thanks to everyone who contributed to the discussion in the initial piece. Don't get too depressed however, because we've got some more Mono coming up in the next few weeks. In the meantime, you'll just have to settle for an interview with the lead developer of MonoDevelop, Todd Berman. Poor you. But first, we're going to hit some news.

News

SLES me!

LinuxWorld is going on right now in San Francisco. SUSE fans can celebrate the release of SUSE Linux Enterprise 9, otherwise known as SLES9. You can snag a free 30 day trial here. Meanwhile, Linux desktop fans are still chomping at the bit to see what Novell Linux Desktop (NLD) will bring to the table.

eXcellent

The X Foundation has laid out plans for the next release of X.org. No decision has been made as to wether to christen it 6.7.1 or 6.8. This next release of X.org is significant because of the inclusion of extensions that were previously unavailable to most X users. The new XDamage, XFixes, and Composite extensions are probably some of the most exciting features to come to X in quite some time. Composite in particular, which as you can see from the screenshots, catapults X into where it needs to be in order to be competitive with other graphical implementations. Right now the team is past the feature freeze phase and moving into the "fix stuff" phase. Our X monkeys in #linux have been keeping tabs on the CVS and everything seems to be going according to schedule. For more information on X, make sure you check out their wiki.

KDE 3.3 due this month, Debian and GNOME set to release on the same day

KDE 3.3 is nearing release, and many expect it to come out this month. In the meantime, you can play with the latest Beta2, thanks to OnebaseGo's Live CD. As with all KDE news, stop by the Dot for more information.

In other distro news, the planets align as Debian shoots for a September 15th release of version 3.1, codenamed "Sarge". This release is the debut of debian-installer, the new installer for the Debian project. We've been using the installer through its beta cycles, and so far, it looks excellent. If you can't wait, you can pick up the latest beta of the installer here, and upgrade to the final when it is released via apt. This Sarge release date happens to coincide with the release of GNOME 2.8, which is nearing Beta 1 as you read this. Those of you wondering about the aforementioned X.org support in Debian can welcome in Keith Packard, and the other new Debian maintainers to the project.

Crossover shoots for iTunes support

Codeweaver's Crossover Office is set to bring iTunes support with version 3.1 of their software. Though not released yet, Codeweaver has already given users a glimpse of what's coming with a screenshot and a trial version of the software. We'll have a full review of the progress in our next issue.

Users who prefer a Linux-native solution are encouraged to check out the read-only support in current versions of Rhythmbox. Better support for the iPod is in the works in the .9 branch of Rhythmbox, but you'll have to build from source. If you want it to get finished faster, we recommend you bother our LKF Forum moderator, StoneTable, to finish his work on libipod. You go girl.

MonoDevelop - An Interview with Todd Berman

The recent release of Mono 1.0 was, of course, a significant event in the life of the project. Like many large open source projects, the barrier of "1.0 quality" release is a difficult one to overcome. In the scope of an implementation of an entire programming environment, things can get real complicated. One of the key pieces of Mono was the availability of an Integrated Development Environment (IDE). MonoDevelop, which started out as a Linux port of the popular SharpDevelop for Windows, soon came to the forefront as the leading .NET development tool in Linux. Though still in its beginning stages, the MonoDevelop team, led by Todd Berman, has a plan for bringing leading-edge development tools to the Linux desktop. We took some time to sit down with Todd and ask him where MonoDevelop is going. If you want to ask Todd your own questions, please feel free to either email him or to post them in the following Discussion and we'll make sure he gets it.

Linux.Ars: How do you see MonoDevelop positioned in relation to other .NET development tools, such as Visual Studio and #Develop?

Well. We are in a fairly unique space right now, as we don't really have any competition to speak of. Eclipse works on Linux, but is basically a Java solution, regardless of whatever the latest C# plugin will ask you to believe. Because of this, we try not to relate to the other .NET development tools too much, as they aren't attempting to do the same thing we are. Our goal is to write an IDE that helps people write applications. We aren't looking for a piece of any market, or to convert everyone to an IDE; we just want to give people a tool they might find useful.

Linux.Ars: MonoDevelop was originally a port of the #Develop project. Now that MonoDevelop has established itself, how do you see the two projects interacting?

Generally, very well. In some specific instances it has been a bit tense. Luckily, we have been able to work through all of the problems and come to fairly positive resolutions, all things considered.

Having worked with the #Develop code for a long time, and being relatively familiar with it, it is an amazing project to watch. Mike Krueger does some amazing work, and their entire team is highly competent.

Linux.Ars: What kind of problems did you run into while converting #Develop's System.Windows.Forms to GTK#? What advice would you give to other developers looking to port their System.Windows.Forms (SWF) code to GTK#?

Well, the TreeView is always an issue of contention, as the models are very very different. Personally, although the API for the SWF TreeView is far nicer, cleaner, and easier, it doesn't have near the power that the Gtk# TreeView has. We actually went ahead and created a TreeView wrapper class that does a decent job of matching the API of the SWF TreeView.

We found that there was no hard and fast rule for porting UI code. You basically had to look at it, and convert it over on a case by case basis. Initially we were doing a direct port, where the goal was for it to look the same. However after a bit of time, we realized that wasn't really what we wanted. We wanted MonoDevelop to feel like a GNOME application, not a port of a Windows application. Even today, there are lots of places where we aren't GNOMEy enough, things like instant apply, icons, HIG compliant dialogs, etc.

However, I think each case is very different, and it really depends on what your end goal is. The thing to keep in mind is that as inviting as it may be to wrap every single SWF class there is, and reduce potential future porting costs, a lot of times it is really much faster to just convert it. 90% of the stuff is easy to port, and your wrapper won't really solve that hard 10% anyway.