Which Technology Should I Use Next?
That's always a tough question. Java or C#? Ruby or Django? Flex or Silverlight? Drupal or Joomla? In some cases, you need to implement and use the technology. In other cases, you have some spare time and you want to invest in learning a new technology that will prove itself useful. In my case, I need to extend nWire to new languages and frameworks and I simply need to decide which technology has the greatest market potential.
I'm an innovator myself. However, in a world with thousands of options (many of them open source), following the herd means you will get better support and your selected technology will continue to grow and evolve with you. You will find more examples. You will find qualified people familiar with the technology. Needless to say, the features are only a part of the overall score when it comes to picking your winner.
You are reading this article, which means you read blogs. You care about new technologies and you probably get a good sense of what people are discussing. That "sense" is not something you want to trust, because:
- The blogosphere has a very viral nature. It is possible that a very small group is making a lot of noise. (ehm.., cough... Scala... oh, just kidding, don't flame me)
- You probably have an RSS subscription list of technology oriented blogs (or you simply follow DZone or other aggregation service). That's great. That means your sources are limited to a specific group of people posting to these sources.
The technologies you will encounter could be the latest and greatest. But, having hype around the technology does not make it mainstream.
One of the best tools for measuring trends is Google Trends. It compares search volume and estimated web site visitors. The fact that people are reading and searching for a technology, again, does not make it mainstream. It is much better than tracking the blogosphere, but it still very hype-infected.
Here's an idea: searching for trends in job postings, also known as Job Trends. The results cannot be affected by hype. People who post wanted ads already chose the technology and they are now willing to pay for a person familiar with it. Putting money on the table is one of the strongest indication that people trust the technology. It simply does not lie.
I found two good sites for conducting my research: Indeed.com and SimplyHired.com. Both are simple to use and the results are usually close.
Here are some examples:
- Java versus C# - Indeed, SimplyHired
- Abode Flex vs. Microsoft Silverlight vs. JavaFX - Indeed, SimplyHired
- Struts 2 vs. Spring MVC - Indeed, SimplyHired
- PHP vs. Ruby on Rails - Indeed, SimplyHired
Very interesting stuff. Here are some caveats to watch out for:
- Make sure you are searching for all the terms people use. For example, people hiring ActionScript developers might write this as "AS3".
- Job ads may contain acronyms or words which have different meaning than what you might think. Searching for GIT vs. SVN is completely useless. In the Adobe Flex example above, people may just write Flex. However, Flex has other meanings.
- To complete the above example, people do not hire for every technology, even if they use it. I'm not sure how many companies hire dedicated SVN or GIT experts.
To stay on the safe side, it is best to go over some of the job ads and make sure you are looking at the right data (for example, here are some GIT jobs and some SVN jobs).
If you have some good examples for technology comparison, let me know in the comments.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)





Comments
Thomas Mueller replied on Tue, 2009/04/14 - 2:38am
> which technology has the greatest market potential.
Scala and Javascript.
Michele Scaramal replied on Tue, 2009/04/14 - 4:31am
Martin Wildam replied on Tue, 2009/04/14 - 5:32am
I am not sure if such trend analysis are really giving a good long-term view of the market. It can also mean that a lot of people are leaving a particular field to work in another realm and therefore a lot of jobs get to disposition for maintenance of legacy systems. And further I can see that e.g. the European market is not really represented on the links you mentioned (just my intuition from doing some searches).
I tend to rely on some hard facts that are interesting for companies, which - IMHO can be for example:
All the above are real considerations of companies heading for the future. Even if it might be currently only a few companies really thinking that way, from my point of view these considerations are pretty logical.
And Java fits very well here I would say. C# less, but including Mono maybe it would be similar.
Philippe Lhoste replied on Tue, 2009/04/14 - 6:44am
And you are right to pinpoint the issues of using a generic English name for a technology: I use Processing for coding small programs, googling for that is painful. Same for the Fan programming language, to the point authors think they should change the name... :-)
Craig Gabbadon replied on Tue, 2009/04/14 - 8:45am
Developer Dude replied on Tue, 2009/04/14 - 3:08pm
Alex(JAlexoid) ... replied on Tue, 2009/04/14 - 5:17pm
in response to:
Developer Dude
Yeah. Comparing Java to .NET is like comparing C# to Java. .NET is the whole infrastructure with all the languages, etc.
The real comparison query would be very hard to construct.
Just for example, .NET probably would include any job posting for work with IronPython, VB.NET, F# and so on. While Java side would not include JRuby.
Mike P(Okidoky) replied on Tue, 2009/04/14 - 7:37pm
john green green replied on Mon, 2009/10/26 - 3:27am