Java Versus C# (Jobs)

A colleague of mine last Summer decided he would learn C# rather than Java because, “that’s where all the jobs are.” I disagreed and showed him the jobserve listings for that day that seemed to prove him wrong. “Well, that’s where all the jobs WILL be.” he replied. Thus was born jobfight.

I think enough time has gone by (10 and a half months) to have a look and see if we can discern any trends. The graph belows shows the statistics I have gathered on UK programming jobs for the keywords “C#” and “Java”:

Graph of C# jobs versus Java jobs advertised on jobserve.com June 2003 to April 2004

It seems that Java is growing faster in terms of total number of jobs and at nearly the same rate as a percentage of the existing jobs.

Programming Languages that are Loved

Paul Graham thinks Java “[smells] supicious”. One of his reasons is:

4. No one loves it. C, Perl, Python, Smalltalk, and Lisp programmers love their languages. I’ve never heard anyone say that they loved Java.

But I think some people do love java. In fact if you put “I love Java” into google you get approximately 2,530 results. “I hate Java” did get 768 results though. This got me thinking about how some programming lannguages are loved, like Perl in 1999 (before the backlash about it being “write-only”). PHP, then Python and Ruby emerged in a similar way from the hacker community and also seem to be loved. I decided to extend my unscientific test.

Results of putting “I love x” and “I hate x” into Google for various programming languages.
language love hate ratio
ruby 1,550 76 20.39
python 820 82 10.0
c# 287 30 9.57
smalltalk 131 24 5.45
php 4,070 772 5.27
assembler 72 14 5.14
ml 30 7 4.29
cobol 43 13 3.31
java 2,530 768 3.29
perl 1,990 670 2.97
haskell 20 7 2.86
c 1,640 582 2.82
scheme 65 27 2.41
lisp 181 78 2.32
sql 164 98 1.67
fortran 17 18 0.94
prolog 21 24 0.88
c++ 311 477 0.65
vbscript 17 30 0.56
javascript 179 432 0.41
vb 522 1,270 0.41

Some languages had to be excluded from the test because their results were just noise: Icon, Joy, Eiffel (apparently there’s a band of that name). Sisal, T-SQL and Intercal (at least) don’t really have enough information even for this rough test (a very small number of “I love”s and no “I hate”s making them appear to be the most popular languages).

Ruby’s outstanding result should not be taken too seriously as it was definitely more polluted by noise than a language like Smalltalk (no one says, “I love Smalltalk” unless they mean the programming language). Nevertheless a quick skim through the results seemed to show that most of them related to the programming language.

Three of the top five languages by love/hate are the “community” languages Ruby (1), Python (2) and PHP (5). Perl, however is way down at 10 (below Java). Of the other languages in the top five, Smalltalk was developed by a small group at Xerox Parc and the rapidly expanding C# is, of course, a Microsoft creation (unless you count the 10 years of prototyping done by Sun).

The languages that inspire much more hate than love are the perennial whipping boys VB and VBScript as well as JavaScript (hatred due at least in part to the terrible environment in which it usually operates – incompatible browsers) and (hilariously) C++ in which an awful lot of desktop apps are written.

Java comes ninth. That’s above Perl in tenth, C in twelfth and Lisp in fourteenth – three of Paul’s “loved” languages.

PHP has the most people willing to proclaim their love (4,070) but also a significant number of detractors (772). In fact, by volume Java lovers are the second largest group (2,530). Java has obviously picked up a lot of adherents since April 2001 (when the article was written).

If you liked this you will probably like the follow up, Does Anyone Love Java?

You may also find my jobs by programming language page interesting.

Clear Print Queue (Windows)

So you cancel a print job using Document, Cancel. But it just won’t disappear and nothing will come out of the printer (all queued behind the “deleting” job). Simple answer: restart the “Print Spooler” service. Either in Administrative Tools (Control Panel or Start Menu) or using net stop "Print Spooler" then net start "Print Spooler" at a command prompt. Easy, but it was driving me mad.