Forget About Platforms, Let’s Talk About Jobs
June 9, 2008 Timothy Prickett Morgan
As a long time watcher of the systems and server area–at least by IT journalism standards, where journos usually burn out after five to 10 years in the field–I take a keen interest in any means of ranking the different platforms of the world. In the absence of truly impartial data, I am always on the lookout for a new way to compare different platforms. For the past couple of weeks, I have been playing around with the Internet’s major search engines to rank various server platform brands, and this week I continue the series, this time looking at what really matters to most of us: jobs.
To that end, I did some more hunting and pecking on the Internet, and racked up counts of various programming languages, databases, operating systems, and platforms, using the terms people actually use when they describe job openings, and instead of counting up page hits on the big three search engines–that would be Google, Yahoo, and Live Search (from Microsoft)–I instead did my searches on the big three job sites in the United States: Dice, CareerBuilder, and Monster. I queried each job posting site to look for jobs that had been posted to these services within the past 30 days, and ranked the job hits by term.
I realize that this way of counting programming languages, databases, and platforms is probably not particularly scientific, and in the case of the job posting sites (as with the Internet at large) I am by no means suggesting that there is not garbage in the data. It is, for instance, distinctly possible that when searching for RPG on a job site, instead of Report Program Generator (which no one calls RPG), a prospective employer is actually looking for an expert in Role Playing Games, but probably not someone with experience dealing with Rocket Propelled Grenades. There is probably some garbage in this data, as well as more than a few fakes jobs that companies put into these services just to build up a stack of attractive resumes. I know that companies, headhunters, and job services will take umbrage at that suggestion, but it is my understanding that such things do happen. But, as I said last week when ranking platforms by Web hits, it is my belief that the statistical principle at work in these trolls I have been doing out there on the Internet is that it all comes out in the wash.
Let’s take a look at programming languages and databases first. Take a gander at this table:
Being observant, as I know you are, you will see that the Monster column has a bunch of data points that say “5,000+” instead of a nice round number. Well, that is because the engine behind the Monster site stops giving full counts as the number of job postings goes above 5,000. Dice and CareerBuilder just let the counts go as far as they do, or at least as far as I can see from the polling I did of their sites. So the averages in the table are based on all three vendors when there is data, and on just Dice and CareerBuilder when the numbers for Monster are above 5,000 job postings.
If you build a bar chart of the data, which is much easier to process for those of us who think visually, the programming language and database data looks like this:
As you might expect, there are not a lot of RPG job postings, but there are a larger number of COBOL jobs. This stands to reason, in some ways, since mainframe shops tend to have much larger programming jobs for custom code and have hence had fleets of programmers (and always have), while a large portion of the AS/400, iSeries, and System i community use third-party applications. Given that the OS/400 and i5/OS platform, by customer count, represents a pretty respectable slice of the midrange and entry enterprise space, I would have thought RPG jobs would be a little more pervasive than they appear to be from this data. But that could also be an indication that RPG coders get their jobs in different ways–through connections at user groups, local headhunters, and so forth. It may also say something about how RPG is in maintenance mode and other technologies, such as Java and PHP and myriad legacy application modernization tools, are being used on the i platform.
There are maybe 400,000 RPG programmers out there in the world (assuming an average of one per running box and assuming that many footprints are out there, with possibly as many as 600,000), and according to estimates made by Evans Data in late 2006 (the most recent data I have at my fingertips), there were about 6.4 million .NET programmers, about 5.8 million Java programmers, and about 4.6 million PHP programmers in the world. Given that spread, you would expect there to be roughly 10 times as many Java and .NET/C# jobs as there are RPG jobs, and maybe 7.5 times as many PHP jobs. But there are a lot more Java job postings than this ratio would suggest. Java does not imply any specific platform, of course, since it runs on just about every server out there, including Windows, which is the only platform to run native .NET applications. And there are hybrid tools that allow .NET code to run on Java or RPG code to run on .NET, too. (Nothing is ever simple, is it?)
Because I am on a kick of trying to simplify data sets visually in this series of articles, I have once again created a word cloud based on the average data in these tables for programming languages and databases. With a word cloud, you use font sizes and color to represent the relative importance of a piece of data–the color is to separate groups of data while font point sizes correspond to market share, Web hits, or in this case, the average number of job postings. Here’s a word cloud of this first set of data from the Dice, CareerBuilder, and Monster polls that I did:
RPG is that tiny black word in the upper left corner, right near COBOL, which you can kinda still read. That little scribble to the right of COBOL is Fortran. C++ is still pretty prominent, as you might expect, and C# and .NET show up nicely. PHP still has a ways to go to catch up even to C++, but it is clearly on the way. And Java just ridiculously dominates the page. (I put it in blue, like C++, since Java is really just a glorified and virtualized variant of C++ that is barely more friendly to a programmer’s mind. And maybe not, since it keeps programmers so far from the iron that they can’t write code tuned to the iron any more. You watch, my friends, how that changes in importance if energy costs quadruple in the coming years.)
Anyway, just for kicks, I ran some queries against these three job sites looking for the number of times specific hardware platforms or operating systems were mentioned, and I did not try every possible operating system and every possible platform name. What I did do was crank in the term that a prospective employer might use. So for System z boxes, I would expect people to ask for “mainframe” experience, and for the OS/400 and i5/OS platform, I expected people to still say “AS/400” (and they do) and I did a check for “iSeries” just in case (which was a lot less popular). People don’t ask for programming experience on a BladeCenter or BladeSystem, a ProLiant or a System x, they say “Windows” or “Linux” experience, and ditto for the big three Unix platforms from IBM, Hewlett-Packard, and Sun Microsystems, where people simply say “AIX,” “HP-UX,” or “Solaris.” So, when you query the job sites, here’s the raw data you would have gotten last Friday afternoon for jobs posted within the past 30 days:
That’s a little hard to process, so here is a bar chart that shows the average data for jobs by platform:
And here is the word cloud of the same data that just makes it all that much clearer in some ways:
Unix, as you see, still has a pretty good showing, as a term by itself and for Solaris specifically; people don’t seem to be asking for AIX or HP-UX experience directly in job seekers, and for good reason. Most Unix shops have more than one Unix, which considering the name of the operating system, is kinda funny. Windows just eats the word cloud, obviously, having to be broken into two bits just to fit on the same page. Linux is no slouch, however, and the mainframe is doing a lot better than the AS/400 (which you can see in the upper left) and iSeries (which you cannot, it is the tiny smear beneath AS/400 in the cloud). Interestingly, the term iSeries is a lot more prevalent on the Internet at large than in the job descriptions having to do with the IBM midrange platform.