Sunday, May 27, 2012

Microsoft Pulls Desktop Support for Visual Studio Express

In an article today on, Katherine Noyes writes of the latest blow by Microsoft against open-source software. Apparently, the latest generation of Visual Studio Express IDEs will no longer be usable for creating desktop applications, and will instead be designed exclusively for Windows Mobile app development. Go here to read the article.

I guess it's a matter of perspective, as to whether this is really a blow to open-source. One of the reasons application developers favor Windows so much is because there are so many great free dev tools. Building a desktop app with Visual C# Express involves a very small learning curve. It's easy. And, of course you can't ignore the enormous user base. For a novice programmer, it's the obvious place to start. So who is Microsoft really hurting here? Only time will tell.

As I've mentioned before, I believe this is one critical area where Canonical really seems to be getting it wrong. With all the effort to ready Ubuntu for the mainstream user, there appears to be little being done to attract developers to the platform. Creating your first graphical app for Ubuntu still takes a good deal of web searches and research; First, to figure out what tools to use, and second, to figure out how to use them.

The fact is that GTK+, the default graphical toolkit for Unity and Gnome, is still pretty painful to build interfaces with. While seasoned GTK developers may disagree with this, it's important to remember that nothing seems difficult when you already know how to do it. We tend to forget what it was like when we were first learning how.

Compared to other graphical frameworks, Gnome development requires an inordinate amount of hand-coding. Even when you use Glade and GTKBuilder to create the interface, the process can be awkward and time consuming. In particular, the GTK+ bindings for C++ require a lot of redundant coding to be done by hand in order to integrate the XML file into the program. You can use the native GTK+ C libraries instead, but you will still be very limited on how much can actually be done with Glade. It may come as a surprise for the novice Ubuntu developer when, after spending hours crafting their interface in Glade, they find that none of their signal handlers are accessible from their code. Besides that, GTK+ falls a bit behind aesthetically.

This is in sharp contrast to KDE, where you have an abundance of mature graphical development tools. These include: QT Designer, QT Creator, KDevelop, the QT Eclipse plug-in, and the powerful KATE text editor. All, of course, work very well with C++, but also with most of the other major languages used on Linux. In my opinion, QT applications also have a much more professional and modern look and feel, and they seem to play better with graphical effects. Take, for example, the beautiful oxygen-transparent theme. QT apps can be run in Unity and Gnome, but they still don't quite fit in.

Going back to Microsoft and Visual Studio. It's hard to see how eliminating one of their greatest boons to developers will help them. According to the article, the VS Express IDEs will only be usable to make apps for the mobile platform. Considering the uphill battle Microsoft will likely have in winning over users from iPhone, Android, and Blackberry, this is a big risk for them. It seems almost as if they are trying to force people to use Windows 8 mobile, and are desperate to make headway into the mobile market.

There was a day when most of the great free applications were only available on Linux, and the only stuff you could get for Windows came with a lot of unwanted bloat and stipulations. Of course, things are very different now. The plethora of open and free apps available for Windows has probably done much to maintain the platforms popularity among the rising generation. The fact is that, people love free software, and free software greatly benefits when more developers are available to work on it. Having affordable development tools that are easy to use makes a big difference here.

Only time will tell if this move by Microsoft will pay off, but to me it seems like just another manifestation of a shrinking mentality on their part. My guess is that it will push developers away from Windows, and toward Linux and OS X. Perhaps it will drive more development on cross-platform tools like Eclipse, which would hardly be a blow to open-source.

Hopefully, Canonical and the Gnome Foundation will see the opportunity here, and focus more energy on providing better tools to developers. A huge part of this is having really good documentation, in addition to integrated development software. When you're building a house, it's great to have a lot of help, but it's even better if everyone has a good set of tools to work with. If you have people standing around because there are not enough tools, or the tools you have are too difficult to use, then the extra help is largely wasted. Two guys with a nail-gun are much better than 10 with hammers. In short, focus on providing the right tools, and the other stuff will take care of itself.


  1. Update:


  2. Hey, nice site you have here! Keep up the excellent work!

    Journal support