When I was growing up I read a book from Robert Heinlein entitled The Moon Is A Harsh Mistress.  One of the things that kept with me ever since I read the book was the phrase TANSTAAFL which stood for “There Ain’t No Such Thing As A Free Lunch”.  That idea is prevalent in today’s society as well:  if you’re getting something free there must be a catch. 

I was visiting an audiobook web site recently where I could get a 30 day free trial and then pay for a full year in advance, at a “huge” savings.  Or pay on a month to month basis and actually pay less money over the course of a year.  The 30 day trial wasn’t free, I paid for it.

Sometimes, however, the cost is not so much money as it is time.  (And sometimes that is minimal.)  For instance, Code Kwondo from Microsoft Canada.  Just for joining you get 1000 points, which is already enough to get some free stuff (Shaker Blender Bottle, T-Shirt or Mug).  Complete a course from the Microsoft Virtual Academy (free) and they toss in another 5000 points which gets you a lot more free stuff (USB Key, App Store Gift Cards, etc).  If you publish a Windows 8 application you get more points and more stuff.  The intent is that you become enamored with building Windows 8 applications and start putting more applications on the Microsoft Application Store.  Heck, they even supply you with the links necessary to download free copies of their toolset.  From Microsoft’s perspective they are getting some time in your busy head to think about Windows 8.  They are doing what they can to increase their market share in your mind.

And therein lies the cost.  Your time.

But is it really such a big cost?  I mean, for the developers who are reading this, part of your job is to remain current with technologies, to understand how and when to use the tools, to even know what tools are the most appropriate for the situation.  For example, the vast majority of the applications that we build are web-based applications.  Is that actually the best solution?  Would a Windows application be more appropriate using web services to extract the data from the back end?  I don’t know.

In many respects this little competition from Microsoft is a win-win for both developers and Microsoft.  The developers get a better understanding of the Microsoft tools and, if they develop a humdinger of a Windows app then Microsoft gets some bragging rights and some much needed intellectual capital in their App Store.