Being a responsible open source developer

First off, let's start this post by saying I think there are a few key points in computer history where things turned. The introduction of the GUI (even though both Apple and Microsoft just build on what Xerox did); the Internet; Object Oriented Languages; Microsoft Bob. Well, maybe not the last one but the others are valid and there are lots of others gems out there.

I've been following the Office 2007 UI for quite some time, ever since I got my hands on early dog food alphas from the Office team. While some might not call it innovation, it just makes sense to me and I think it's a well designed and thought out piece of work. Yes, there are those that are not going to get it and require gobs of training and scream and kick and moan and want their beloved File menu and toolbar back. There is the other group where we embrace it and actually like it. I'll be the first to *** and complain when I'm building presentations where the freakin' buttons are as I'm still getting used to it, but in the end that's it. I'll get used to it, just give it time. I like the look and think it's a good way to go and frankly, Microsoft made that decision long ago and like or not, we have to adapt and live with it (or not, but that's a different blog post).

Skip ahead a few hundred blog posts and I came across Jensen Harris' entry about licensing the Office 2007 UI. Yes, a 120+ document about how to build the UI is a bit much and frankly I want to see component developers build controls that help me adhere to that standard. As an application developer, I really don't want to build an Office 2007 UI any more than I want to build my own implementation of the Windows Menu System or Toolbar. After all, that's what component developers do and that's why we buy their stuff. So awesome move on Microsoft's part to publish this, make it royalty free for those that want to build stuff. There is a lot of controversy over Jensen's blog post though, as people are questioning what exactly Microsoft is licensing (a concept? that didn't work for the recycle bin did it now) with some people calling Microsoft arrogant and others say they're brilliant. It'll be interesting how that conversation shapes out (and the comments on the post are quite in-depth, I expect this to hit Slashdot any minute now if it hasn't already).

The licensing does bring up a bit of a pickle. The royalty-free license is restricted to products that directly compete with Word, Excel, Powerpoint, etc. So what does a product like Open Office, that cannot obtain the royalty-free license? And more importantly what if they purchase a copy of an Office 2007 UI component, say from Infragistics, and use it in the product? Is that a violation of the license or not. Licensing is always messy so I'll leave that to those guys to figure out.

Anyways, back to some of the converging elements of what brings me to write this post.

A long time ago on a computer far, far, away I gave RSS Bandit a try for reading my RSS feeds. It was a nice product and worked well but after some time, I abandoned RSS Bandit. It was a huge memory hog (which may be fixed these days) but more importantly, the developer kept revamping the UI by using free copies of commercial UI libraries. Three times he flipped out the UI and I thought (as did others) that getting burnt 3 times would be enough and you would stick to something free, open source, or native. Sorry, but if you're providing a free, open source tool, you can't force your users to be bound to a commercial library.

As I understand it (and this view may be flawed) Dare Obasanjo, the author of RSS Bandit, received a free copy of the UI component for use in the project. Not unheard of on an open source project. Vendors see it as free advertising and it is. However doing this is tying the open source communities hands. We don't have a free copy of the software like Dare does and even if we did (if the UI component was say licensed for RSS Bandit) having the title heavily dependent on a tool that may or may not be there in the future isn't the open source thinking mentality. Imagine if DasBlog built it's foundation on some proprietary messaging system or database you had to buy in order to make modifications for? Where would it be today? Anyways, Dare and his recent post about what he was proposing for the next RSS UI is something that caught the attention of Mike Dimmick. His comment was what Mike called a misuse of the Ribbon concept, and I agree. I looked at the screenshots Dare posted and while they are prototype, they're far from what I think the Office UI is but rather a rather poor emulation of them. In addition, as some of the comments on Dares blog show, RSS Bandit might not be an appropriate application for the Ribbon concept.

It is confusing as Dare posts later that Microsoft is releasing several new applications this year, all with varying user interface concepts. IE7, Office 2007, Windows Media Player 11. All from Microsoft, all with different interfaces. Even in the Office space, Word; Excel; and Powerpoint; share the Ribbon but other tools like Publisher, InfoPath, or SharePoint Designer do not. What gives? I think Jensen answered this as those products were not the "core" Office products so would not use the concept of the Ribbon. In any case, how do you go from one interface (File Menu, toolbars) to something like the choices we have now? Not an easy switch. If we as developers think the users are going to push back on Office 2007, then we'll be staying far away from that UI as much as we can if we want to keep our users happy. I don't believe in the concept that just because there's new hotness out there, that we should all flock to it, no matter how cool it may be.

As application developers, we make choices. Sometimes bright, sometimes not so bright. However if we consider ourselves professional, we have a commitment to that professionalism and that's one of providing our customers (yes, even free open source weekend projects have customers) a product worth of its download. If we're dependent on a library or another tool, make sure that you have some plan to abstract yourself away from change. Sure, maybe the cool 2007 UI is the new hotness today but we as developers can, with a bit of forethought, build systems where the UI is swappable or at least "easier" to replace (I've done it many times). Patterns like Model-View-Presenter help with this and think about you can shift gears should you need or want to. What's cool today is cold tomorrow and painting yourself in a corner isn't going to win you any prizes.

I for one welcome our Microsoft UI overlords and will be looking to incorporate the Ribbon concept in WinForm apps I build where appropriate, hopefully with the help of some free libraries out there but if not, and where I can, I'll use what commercial tools there are to present what I think will be a better user experience for you. I hope other open source and free tool developers out there follow suit.

Published Tuesday, December 19, 2006 7:43 PM by Bil Simser

Comments

# re: Being a responsible open source developer

Wednesday, January 3, 2007 11:28 PM by AC

Good commentary Bil... find myself agreeing with many if not all your points.