One of the most important aspects of being a modern software developer is the ability to pick new tools to adopt. Every year, there are numerous new tools and technologies that require our evaluation and potential selection. Some tools/technologies will be “winners” and others will be “losers.” Winners are those technologies that gain traction and support in the marketplace. Losers are those technologies that appear on the market but lose developer support, never gain traction or are simply abandoned by their creators. There is one more category; I'll call this the “middler.” A middler (I made this word up BTW) is a tool or technology that has gained traction but has yet to prove its real value and has every potential of becoming a winner or loser.
Let's take a look at a real loser of technology to put this article in perspective. In 2002, Microsoft introduced a new technology called .NET My Services. This technology had a lot of promise as it tried to provide a unified interface for managing mundane sets of data, such as contacts, lists, calendars, etc. As per the CODE Magazine mandate, we covered this technology in our May/June 2002 issue: Introducing .NET My Services. The funniest/saddest thing about this technology was how fast it went from potential winner to loser. By the time that issue hit the stands, the technology was killed by Microsoft.
Now that you've seen an example of a loser, let's take a look of some of the more recent winners, losers, and middlers of 2014. (So far.)
Loser: Windows 8
It's become pretty apparent that Windows 8 has been as successful as Windows Vista was. Translated: Windows 8 is a flop. Microsoft decided to marry standard desktop technology with touch-based tablet technology. This, in itself, wasn't a problem. The real problem is that they put the tablet metaphor front and center, delegating the original desktop interface to the background. This was one of the easiest technology flops to predict. The concept of touch interaction is orthogonal to that of desktop. Microsoft tried to out-Apple Apple and failed miserably. Windows 8.1 has started down the path of correcting many mistakes of the Windows 8 launch. Expect the re-emergence of the “Start” menu soon.
Winner: Microsoft Surface Pro; Loser: Microsoft Surface RT
You can't mention the winning Surface Pro without mentioning its challenged cousin, the Surface RT. For some reason, Microsoft decided that it would be a good idea to ship a separate, less powerful tablet with a different operating system, rather than focus on one single great fully featured tablet. The Microsoft developer ecosystem provides some clear-cut advantages. One of the primary advantages is a clear development path. RT muddies this vision and, in my estimation, will be relegated to the scrap heap of bad ideas soon. The Surface Pro has been a great computer through three major iterations and can be declared a clear winner.
Middler: Entity Framework
Microsoft has a very sketchy history when it comes to data access technologies. The list of acronyms is quite extensive; ODBC, ADO, RDO, ADO.NET, LINQ to SQL, and now Entity Framework. Entity Framework has one rare attribute: longevity. This tool seems to have survived longer than most of their previous endeavors in this space. I'm declaring this tool as middler (probably a controversial judgment) because there have been indications from Microsoft that this tool will be headed into some new uncharted directions. It's a middler because Microsoft has a poor track record in this space.
Losers/Middlers: Any Technology from Google
Google is known for creating some of the coolest technologies and then wholesale abandoning them. One great piece of technology was Google Wave. This technology gave users the ability to collaborate online in new and unique ways. The lights were turned off in mid 2012. The latest tool that seems to be on the chopping block is Google+. The VP in charge of this product left Google earlier this year and it seems like Google+ may be going with him. A real middler of a technology is the Android phone operating system. I've been doing a lot of development for this platform over the last year and half. Android reminds me a lot of my experiences with vendor-installed Microsoft Windows; there's lots of “crapware” that causes lots of development issues. Android also suffers from poor vendor support, primarily in the arena of upgradability. A lot of devices are stuck on old versions with no upgrade path. This is a real problem for developers.
Winner: Microsoft Open Source
Just a few short years ago. the words Microsoft and Open Source were like oil and water. Steve Ballmer wasn't a fan of open source, going so far as to publicly berate the concept. Fast forward to 2014 and numerous Microsoft tools have gone open source: ASP/MVC, Entity Framework, and most recently, the C# compiler named Roslyn. Open source adoption is definitely on the upswing at Microsoft and I can see more and more of their technologies being opened to the software community at large.
Picking Winners and Losers
As you've seen, picking winning technologies is not as simple as it seems. Some products fail because they are ill-conceived, vendors lose interest, or they simply never gain traction in the marketplace. Other products succeed because vendors are committed to their long-term success or they fill a niche well. Hopefully, I have provided some examples you can use to compare and contrast during your technology evaluation. May all your choices be winners!