Life in Other Worlds

Tue Mar 25 20:17:58 EDT 2014

I've found the reaction to BlueMix to be pretty interesting. Unsurprisingly, the main question in our community has been "how does this relate to Domino?" The answer is pretty clear: it doesn't.

That's not really a bad thing! About half of the problems a platform like BlueMix solves - app packaging, multi-server availability, data-store access - are either non-issues on Domino or are done much more easily with it than with other app servers. The other advantages, well... IBM could likely shoehorn Domino into a service like that if they cared to, but they clearly don't.

Instead, I think this is a good opportunity to look at BlueMix for what it is (or appears to be from my only-partially-informed perspective): a competitor to Heroku and (half of) Windows Microsoft Azure. This is a great thing, because those platforms are amazing. What they do is one conceptual level above what someone like Linode does: in addition to abstracting away the physical machine your app is hosted on, they also abstract away the OS and server stack, presenting you (the developer) with an idealized world free of sysadmins and DBAs.

The best way to get a feel for what this means is to embrace it on its own terms: pick an environment wholly unrelated to Domino, close Notes and Designer, and try out one of the supported frameworks. It should come as no surprise that I find Ruby on Rails to be a perfect way to do this. Specifically, Michael Hartl's Rails tutorial not only brings you up to speed with modern Rails programming, but it also provides an introduction to Heroku, showing you how to use their free tier to publish your apps using Git (seriously, Heroku uses Git to publish - it's amazing). Node.js is also absolutely worth your time: it's a programming environment unlike any other and gives you an excellent new perspective on client/server interaction on the web. It looks like BlueMix doesn't do Python or PHP, which is just as well. Please don't use PHP.*

Particularly if it's been a while since you did any non-Domino or non-Java development, it could be a very useful experience - different ways to structure apps, different tools (no need for Eclipse, for example), different conceptual models of programming. You may not stick with it (for all my bluster about Ruby, I'm still writing Domino apps), but it'll keep your brain healthy. Too much of any one type of programming makes you calcified and causes you to miss out on the rest of the world. I know I, for one, plan to do more of this type of exploratory exercise.

* One of the greatest features of these app platforms is that they solve one of the main problems keeping people on PHP: it's just so freaking easy to deploy an app written in PHP, whereas deploying a Ruby/Java/Python/etc. app has traditionally been much harder. By abstracting away the app server, the playing field is leveled and you can choose the better tool.