Friday, August 17, 2012

Can't Quit Qt

I’ve been dorking around with DeskBlocks lately, trying to find a way to get things to build & run within OS X. My ODE references were already many versions behind and the physics codebase is in need of an overhaul. Looming overhead was also the issue that Nokia was not entirely dedicated to the Qt4 platform that DeskBlocks is built upon, so I started to debate if I should find a new framework to build DeskBlocks within. I was pretty down on Nokia’s acquisition of Trolltech back in January of 2008, although it kinda made sense for the maemo platform. Still, with Nokia going all-in for Windows Phone it seemed like maemo and Qt was heading for the dustbin.

Sure enough, last week Nokia announced it was selling off Qt to Digia Oyj, even reportedly taking a significant loss in the process. Digia had already been running Qt licensing since 2011, so it’s not a huge surprise for it to take over the whole kit and kaboodle.

I’m of the mindset that this could potentially be a very good thing for Qt. I’ve seen Candyland get paved over so many times in the past decade, with big industries wrecking my favorite technologies over and over again. Going smaller may make things more agile - and it seems like many in the Linux community might agree. In a very smart move, Digia has already written an open letter to the KDE community emphasizing their commitment to Qt going forward. If they actually follow through on this dedication to the ecosystem, this could be a huge win for Digia Oyj.

Finland wins yet again.

Wednesday, August 15, 2012

Tired of The Good Old Desktop

It seems like people are getting tired of the good ol' "desktop" user interface we've all grown accustomed to within our window managers. A generation that has grown up with Windows, MacOS and X11 has seen the desktop metaphor used and abused over the past fourty years, and it seems like developers and user experience engineers are bent on shifting the dominant paradigm. Traditional users have grown accustomed and comfortable however, making the user experience shifting without a clutch. Instead, the desktop OS is forcing the change instead of building concensus.

Last year John Cook had a great blog post about why forcing users to change against there will may actually be a good thing for everyone. John cites a fantastic example - Microsoft's infamous "ribbon" toolbar. Microsoft Office introduced a new user experience element where menu and tool bars changed based on the document's context, causing elements to magically appear and disappear based on what Office thought they were going to do given the user's previous actions. This was a disruptive change that made many long-time users (including myself) particularly incensed. The resulting usability metrics have proven Microsoft correct however - especially given that prior to the ribbon "90% of the feature requests the Office team received were for features that Office already supported." After the ribbon was forced upon users they began using over four times as many features as they did pre-ribbon. The new user experience helped users discover features that they never knew existed.

This is happening on a more global level now that designers are bucking against the Xerox PARC GUI of old and abandoning the desktop metaphor. Apple's iOS and OS X could be considered the first shot across the bow to re-do the personal computer's user interface, although this wasn't so much forcing users into a new paradigm as it was creating a whole new product line. The first "forced" modern redesign might be considered KDE 4 - and people indeed got maaaaaaaaaaaaad. As soon as 2008 hit KDE 4 was released early, even though the development team publicly admitted that it might still be a bit immature. However the desktop concepts had radically changed and dependent applications needed to be re-written... and it seemed like the best way to get this to happen was to discontinue 3.5 development entirely and publicly release 4.0. The Plasma Desktop and the new widget-based design was something that caused major hiccups with hardware support, driver bugs and subordinant applications. History seems to have justified this change however, and now KDE 4 is a fantastic desktop interface.

Gnome 3 has made radical changes as well and is seeing similar community push-back, just as KDE 4 received upon release. They will likely have the same path however, and gradual acceptance and re-thinking the desktop interface will eventually take root and help users become more productive. I recently installed Ubuntu's take on Gnome 3 with Unity and was disappointed to see a number of features unceremoniously dropped. Even choosing a screensaver doesn't exist as an option. However - despite my own personal bias - the UI worked astonishingly well for a grade-schooler's laptop. I've tried openSUSE a number of times and kids just don't like it... but Unity was a hit. It was organized just as their minds expected it, especially with regards to instant messaging and e-mail.

Many people are now decrying Windows 8's Metro user experience, with its touch-based gridbag layout and full-on contextual menus. I'm guessing Metro will eventually win similar acceptance, although it will cheese off a fantastic number of users in the process.

I've been pretty psyched about KDE 4 and openSUSE as of late but I do have to admit... things are starting to get a lil' shakey. Bear in mind I HAVE NO RIGHT TO COMPLAIN since I haven't debugged a thing or filed a single bug report, but it feels like the gears are getting stripped a bit. Evolution has started to freak out with Exchange servers (and even IMAP), and calendar events don't sync across platforms. KDE 4 is starting to hit odd mutex hiccups where nothing happens (e.g. no applications launch) and suddenly they all launch at once. Sometimes it seems like kio is smacking the entire desktop around. All in all I do love working within Linux and KDE 4 - it has made me far more productive of an engineer. Issues with package building and distribution, however, are cause for concern that the platform can remain nimble enough. This issue considered alongside Attachmate's acquisition of the SuSE platform gives one pause.

Recently, and for the first time ever, I bought a Mac. Never before have I owned or operated an Apple desktop/laptop but I needed to legitimately develop within xcode, which requires OS X, which of course requires Apple hardware. I'm not a fan of paying an "Apple tax" to write software, but when my time to purchase coincided with Apple's refresh of the MacBook Pro line I decided that if I was ever entertaining trying the Mac platform, now was the time. Well, at least until the next refresh.

Whenever I jump around platforms I try to force myself to use it exclusively to do productive work. No jumping back and forth based on the task... force yourself to really work around those odd 10% problems that often plague your user experience. See how well edge cases are handled. Try to bend your mind around the nuances of the user experience. When the MacBook Pro arrived I tried to switch all of my work from openSUSE 12.1 to OS X Lion and move all my correspondance and communication as well. I am going to force myself to bend my brain around a new way of doing stuff... and hopefully I'll march past my frustration and objectively see if I'm more productive or not.