In 2009, we really shifted the content mix in TechRepublic's Programming and Development category. In past years, there was a lot more analysis and opinion on my part, and a mix of tutorials and hands-on content from other authors. This year, most of the analysis and opinion was repurposed from our sister site ZDNet, and I focused a lot more on articles that teach an idea or a topic. As part of this effort, I started writing the Code concepts series, which provides a high-level introduction to a topic, and the Hands-on programming series, which provides real-world coding examples of a common programming task. I also try to run a reader response article each month, although lately, I have not had enough questions from readers to keep up that pace. So please, send in your questions!
In this meta post, I look back at the topics that we discussed throughout the past 12 months, examine readers' reactions to those pieces, and try to be as objective as possible about where I was right and where I was wrong.
Product overviews and book reviews
I've been writing fewer columns along the lines of "My first impressions of product XYZ" based on a product demo or a conversation around a product and publishing more reviews based on actual product usage. Because these reviews take a substantial amount of time and effort, I have been trying to limit their frequency. I've also been trying my hand at book reviews. I intend to keep them up as well, but they are based on me having the time to read books, which I have been a bit short on lately.
To keep you guys in the loop regarding product news and announcements, we've started the programming news pieces; originally, these were being run on a weekly basis, but we have recently started to experiment with a bi-weekly schedule.
One thing that really disappointed me is the utter lack of interest in parallel programming. I'm not upset that so few developers share my love of parallel programming, but rather that they don't seem to understand that it's the only answer for a slew of applications. The lack of interest is a red flag to me that, as an industry, we are not working on those kinds of applications. Why are we not solving the kinds of challenges that require vast computing horsepower? This is a very real concern.
This is a topic that I will be taking up in the very near future, but let me just say that every true industry insider that I've talked to is in 100% agreement that the vast majority of the IT industry is the emperor's clothes and that we are the weavers ripping off our clients.
I am also a bit disappointed in the direction that mobile development has been taking. Windows Mobile is, hands down, the most easily programmed of the major platforms on the market (BlackBerry, iPhone, and WinMo).
I've seen numerous demos of all three systems, and there is not enough money on the planet to drag me into BlackBerry development. I saw someone using not one, but two IDEs on the same codebase, due to the lousy debugging tools in one and the poor authoring tools in the other. That's insane.
iPhone development looks only marginally less awful; the tools seem primitive, the test cycle is horrid (to put it mildly), and then you still have to deal with Apple's Byzantine AppStore rules.
WinMo development uses the well-known, high quality Visual Studio environment with a good test cycle, well-documented languages and APIs, etc.
So, which platform is sinking like a rock? WinMo, naturally. In addition, the iPhone does not integrate well into enterprise networks, and BlackBerry devics are expensive to integrate, while WinMo is cheap and easy. This restricts the market for enterprise apps for the BlackBerry and the iPhone markets, while the platform for enterprise mobile development is rapidly shrinking. Hopefully, the Droid platform will get enough market share and enterprise connectivity to become a legitimate platform for mobile enterprise development.
The Web development space is rocking and rolling. Looking back at some statements that I made two to four years ago, they were on-target at the time, but now they are incorrect.AJAX
AJAX development, for example, is now a viable option. (Read what I said about AJAX in 2006: AJAX: The Right Goal, but Often the Wrong Tool.) It's not that the underlying technologies suddenly improved -- the libraries that mask the underlying technologies improved.Silverlight
Out of the new RIA technologies, it looks like Silverlight is making a huge impact, but maybe it's just that Silverlight developers are particularly vocal. I still don't see much Silverlight on sites that are not Microsoft owned or sites run by Silverlight developers, outside of some streaming media applets on a number of sites. All the same, Silverlight installations are pretty high already, and in a year or two, Silverlight's installed user base will be really close to Flash's, if its current pace keeps up. At a technical level, I believe that Silverlight has surpassed Flash, based on some of the things I have seen implemented in it (such as Photosynth); also, Silverlight continues to add new features, sometimes at a pace that I think is too quick to absorb.ASP.NET MVC, Ruby on Rails, and Java
In addition to Silverlight picking up steam, ASP.NET MVC has made a big splash, and I feel that Ruby on Rails continues to gain mindshare. While I think some of the "wow, this is magic!" is gone from Ruby on Rails, and folks are seeing it a little more objectively, people are finding a lot to like about it. While I don't see Rails as grabbing huge market share from Java or .NET any time soon, I do see it eating into PHP a bit, since both user bases have a lot in common. Speaking of Java, I have been very impressed by the way the JVM has transformed from a single-language runtime into a hotbed of language innovation, with JRuby, Scala, and Groovy all making serious inroads.
While 2009 certainly was not "the year of the cloud" as some might have you believe, it was definitely the year that "the cloud" became a viable target for development. Amazon Web Services has silently become a real force in the cloud, and Azure, Engine Yard, and other entries into the cloud space have provided a lot of choice. While the very real issues of trust, security, and latency are still out there, I feel that the comfort level is quickly rising. I think that development shops are learning that certain applications lend themselves quite well to the cloud paradigm and others do not; more and more shops are seriously considering cloud computing when it makes sense.
The big issue on far too many people's radar is the economy. At the beginning of the year, an awful lot of folks I knew lost their jobs. Some of them bounced back quickly, some not so quickly. My general take on things is that the bloodletting has ceased, but that it will take quite some time for things to truly get back to "normal" (whatever that is). I truly hope that all of the folks out there who have been affected by the bad times are able to get back on their feet without too much damage.
And that's it for me. I can't wait to see you guys in 2010!
J.JaDisclosure of Justin's industry affiliations: Justin James has a contract with Spiceworks to write product buying guides; he has a contract with OpenAmplify, which is owned by Hapax, to write a series of blogs, tutorials, and articles; and he has a contract with OutSystems to write articles, sample code, etc.
---------------------------------------------------------------------------------------Get weekly development tips in your inbox Keep your developer skills sharp by signing up for TechRepublic's free Web Developer newsletter, delivered each Tuesday. Automatically subscribe today!
Justin James is the Lead Architect for Conigent.