Welcome to 2010! I took a look back at 2009 at the end of the year, and now I am summarizing my thoughts and ideas about what topics will be important in the software development industry in 2010.
.NET 4 and Visual Studio 2010
One of the big items for 2010 is the release of .NET 4 and Visual Studio 2010. I anticipate that this will be much more revolutionary than the release of .NET 3.X and Visual Studio 2008 for the following reasons:
- Visual Studio 2010 will fully and properly support all of .NET 4, unlike Visual Studio 2008, which had lackluster support for much of .NET 3.X's features.
- .NET 4 finally brings C# and VB.NET into close feature parity; the new C# features will make interacting with Office much easier, and VB.NET will have the ability to play well with lambdas, both of which are really important capabilities.
- F# will be a full-fledged member of the .NET ecosystem, bringing functional programming to the masses.
- ASP.NET MVC will now be an "out of the box" experience, as is the Web Platform Installer.
I have my doubts about cloud computing, and so do a lot of Programming and Development readers. We all know the laundry list of concerns (most of which can never be fully alleviated): security, privacy, network latency when integrating with in-house systems, "is the vendor doing what it says they are?" and so on. All the same, some cloud computing vendors (e.g., Amazon Web Services) have built a solid reputation, and developers are seeing that, in many scenarios, cloud computing makes sense despite potential or real risks.
I expect to see more developers use cloud computing in 2010. While you might not need to start using it yet, get familiar with cloud computing, so when your boss asks you about it, you look like a genius.
Ruby, Scala, Groovy, Python, and other programming languages
In 2009, a whole host of alternative languages established themselves as being more than niche players. A lot of companies are seeing not just the value proposition of many of these languages, but that the risks are not nearly as bad as they were perceived to be a year or two ago. While it may still be hard to find employment as a full-time, W2 employee in many of these programming languages, there is lots of room for consultants to make a living, or developers to use them in a few projects. This is great news, and I want to see these languages have more of an impact going forward.
The JVM's renaissance continues
A few years ago, the only language running on the JVM was Java. If you wanted to use multiple languages on the same runtime, .NET was where it was at, and your options were C# and VB.NET. Now, the JVM has established itself as the premier multi-language runtime, with JRuby, Scala, Groovy, and Jython all looking like seriously useful systems. Meanwhile, IronPython feels half ignored, and IronRuby still can't get out the gate on the .NET platform.
The economy is still the big bull in a very fragile china shop. From what I feel (pure gut instinct, folks), I don't think massive layoffs are still happening for IT workers, and I have been seeing a trickle of hiring in certain types of jobs. I think that highly skilled superstar programmers can find work if necessary, but they may need to relocate or not get as much of a pay hike as they would like. My instinctual reaction is also that entry-level and intermediate developers are still very vulnerable, as many companies perceive them to be "a dime a dozen," and their jobs are potential targets for offshoring.
If I was an entry-level or intermediate developer, my plans for 2010 would be:
- Learn some advanced and/or cutting edge development techniques: parallel programming, games development, component design, etc.
- Merge development skills with industry-specific skills to add value. For example, don't just implement the algorithms the business analysts hand to you -- learn to develop the actual algorithms.
Something I see time and time again is that an idea will work well in certain shops that have the right attitude and people for them to become popular, but as other companies try to implement those ideas, they fail. The buzzwords that succeed in the long run are the ones that have enough perceived risks to slow adoption. Slow adoption rates mean that people have time to explore the possibilities and learn to mitigate risk. Super-hyped ideas don't get that maturation period, and instead, people rush headlong to implement them and then give up when they don't get the promised results.
Last year, SOA (and its buzzword predecessor, SaaS) lost a lot of its shine as big companies without a lot of IT dexterity tried to implement SOA and turned those projects into the usual enterprise IT boondoggles for the usual reasons (wrong people, lack of passion, too much red tape, "too many cooks," and so on). I highly doubt you will see many new SOA implementations this year.
Mark my words that agile is about to go this same route. As more folks hear about the benefits of Agile, and as more "gurus" write books, the more the pointy-haired bosses become willing to try it. We all know what happens when some Seattle or Portland hipster cool concept gets implemented by pointy-haired bosses: total failure. It's like watching your grandfather try to skateboard.
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.