2006-10-12

Clearing the Air - Languages that Suck

New! Check out the follow-up article More Languages that Suck.
Everyone knows that programming languages suck, but which sucks the most?

I have conducted a scientific study to answer this question, and humbly present my findings below.

Methodology

All data for this report were collected from search results done through Google's Code Search, by searching for the phrase "<language> sucks" (without quotes) where <language> was one of these 10: C, C++, Java, JavaScript, Visual Basic, Python, Ruby, Perl, PHP and Lisp.

Occasionally, two similar searches would turn up different numbers of hits. For example, "C sucks" results in 35,900 hits while "c sucks" results in 49,600 hits. Where this is the case, the query with the greater number of hits is kept.

Results

The results seem to confirm conventional wisdom: Perl sucks the most, Ruby sucks least and all other languages fall somewhere in between.

It was surprising however to find that Visual Basic sucks less than JavaScript - I'd have thought it would be the other way around.

RankLanguageQueryHits
1Perlperl sucks58,900
2Cc sucks49,600
3C++c++ sucks39,900
4Javajava sucks27,900
5LispLisp sucks19,100
6JavaScriptJS sucks13,400
7Visual BasicVB sucks8,000
8PHPphp sucks3,000
9Pythonpython sucks2,000
10Rubyruby sucks500


Here's a graph of the above data (click to view larger version):


Operating Systems That Suck

Out of curiosity, I also tested for operating systems which suck. Again conventional wisdom proved correct: although Windows, Mac and Linux all suck, Windows definitely sucks the most.

RankLanguageQueryHits
1Windowswindows sucks60,000
2Macmac sucks58,200
3Linuxlinux sucks49,600


Honorable Mentions

Surprisingly, a search for "C# sucks" returns only one result. I took this to be a statisitically insignificant outlier, suggesting that either C# sucks so badly that nobody uses it, or that those who do use it dare not openly challange the .NET regime.

Also, searching for files with COBOL's file extension (.CBL) reveals about 100 hits. Unsurprisingly, the query "cobol sucks" (no quotes) also has about 100 hits. I leave it as an excersize to the reader to interpret this result.

Conclusion

All programming languages suck, some just suck more than others. Thank you.

(If you liked that, keep reading...)

digg this article, dzone this article

14 comments:

Anonymous said...

Cool idea, but to state the obvious: it's reasonable to assume that when someone comments "perl sucks", he currently programs in perl -- etc. So if google has in its database 10,000 perl lines, but only 500 ruby lines, it seems likely there will be much more perl-cussing than ruby-cussing. Without taking this futher data into account, your post makes for a cute anecdote, but for a fallacious one.

jimbojw said...

Thanks visitor! I appreciate that you took the time to comment. I hope my satirical article came off as such. My "evidence" certainly wouldn't stand up to any scientific scrutiny - a fact to which I readily admit.

Thanks again for reading - I'm glad you were amused (it certainly was fun to write).

Richard H said...

While you admit it wouldn't stand up to proper scrutiny, what the other guy said shows something interesting too...

Your figures on operating systems sucking... if we take into account the relative number of people using each system, Windows is easily the most popular, and at a guess I'd say Mac is slightly more popular than Linux (I may be wrong), so if you adjust for how popular the systems are, ie how many people must be using them compared to how many "sucks" comments are found... then Linux/Max get far more sucks comments per people using the OS's than does Windows :)

Anonymous said...

I'd also note that someone saying something sucks is not a very indication of how much it sucks. People only say things suck when those things have enough value to continue using while sucking enough to complain about. But when something reaches a certain threshhold of suckiness, we move from complaining about it while we use it to not using it at all. So the more useful something is, the more suckiness we are willing to tolerate, and the more likely we are to complain rather than leave. I'm not sure that leaves us with any real way to quantify suckiness. But maybe a real scientist could figure it out.

jimbojw said...

Hey now - I am a real scientest. A Computer Scientest (my B.S. says so :)

In any case, thanks for reading!

Zach Smith said...

definitely a cool post. glad you made something funny like this.

if you wanted to take it a step further, you could compute the ratio of hits to the number of hits for that language. for example, there are probably much more c files in the google code search than ruby files, so comparing them on raw numbers isnt fair.

sucks results / total results would give much better results.

i would love to see that. =)

jimbojw said...

Glad you liked it! I've been getting a lot of comments that the analysis wasn't really fair/scientific/etc. I plan to address this in a future post ... Thanks for reading!

Anonymous said...

But if you use Google to search for life sucks, 23,400,000 hits are returned. So its safe to say that in general computer languages don't suck at all (at least, by comparison),

Anonymous said...

-Hey now - I am a real scientest. A -Computer Scientest (my B.S. says so :)
-
-In any case, thanks for reading!

B.S. for bullshit? If not you wasted your money on an education that leaves you unable to correctly spell the name of the degree you supposedly obtained. Twice!

jimbojw said...

#!/usr/local/bin/perl
# good-catch.pl
$mypost =~ s/([sS])cientest/\1cientist/g

Unknown said...

waiting for the follow up article!

Anonymous said...

Hey anonymous from 4 days ago!
Those "B.S." mispellings are on purpose. Do you not get it?

Well, let us refrain from making any more "stating the obvious" comments on this article. Although, surely, this mutual questioning of each other's intelligence was fun. Thus I refer to my first comment on this article and neatly close the circle I began.

rigtenzin said...

This is a great way to quantify how much a thing sucks, from here on known as suckage. I think I'll apply this to everything, politics, religion, shampoo, etc.

Anonymous said...

You should probably do the searches with quotes, so search "Foo sucks" rather than Foo sucks.

Think about a comment in, say, a C++ app:
// C++ sucks, needs build in perl-regex