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.
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.
Perhaps adding the search word “programming” in addition will get more accurate results in the case of languages with more common words. A skim through the results of “I hate ruby” – not one of them is related to the programming language.
Searching for ‘”I hate ruby” programming’ gets 0 results. ‘”I love ruby” programming’ gets 516 results.
And ‘”I love java” programming’ gets 661 results, while ‘”I hate java” programming’ gets 663. After all, lots of people like their coffee in the morning.
Having used more than half the languages on that list fairly extensively, it is no surprise that ruby tops that list by an excessively wide margin. It’s a language – that makes programming fun again.
I have never met a person who dislikes ruby.
Greg,
what search engine did you use? I just used Google to search for “I love Ruby” (with the double quotes to search for the phrase), and I got 2,750 hits. I went through the first hundred hits and found 60% of them to be referring to the programming language. Extrapolating, this gives 1,650 real hits.
When I search for “I hate ruby” (again, with the quotes) I get 58 hits. Only one of them was about the programming language — even then, it said “its not that I hate ruby…” But I’ll count it anyway because the same could happen for the other languages.
So this actually boosts Ruby’s ratio to 1,650. That’s 165 times higher than Python!
Oops, a math error on my part. I should have said that puts Ruby 16.5 times higher than Python.
I used google – and as I said, I addeded the word ‘programming’ to the search phrase. So it’s searching for the phrase “I love ruby” that also has ‘programming’ somewhere in the page. And yeah, we’ll lose some hits for that, but it’ll happen on both sides of the equation (love v hate)
And your math was right.
1,650 (Ruby’s rating) / 10 (Python’s rating) = 165
So you find that Ruby wins the lovable language test by a wide margin and then dismiss the results as being skewed because the word ‘Ruby’ could be used in non-programming ways. But couldn’t the same be said for some others on the list like Java (“I love Java in the morning”) or Python (“I love Pythons, they’re my favorite snake”) depending on how your Google search was done.
I love Ruby (the programming language). I’ve programmed in lots of different languages over the years (Assember, Basic, Pascal, C, C++, Perl, a bit of Java…) and while I liked some of them, I wouldn’t use the word ‘love’ to describe my feelings for them. But I do find that Ruby is a joy to use and most everyone I’ve talked to who has tried programming in Ruby ends up loving it.
Just to continue the fun with the #2 entry, I did the same sort of rough analysis with the love/hate python.
For “I love python” I got 762 hits. Checking out the first hundred, only 7 were false hits (all but one were references to Monty Python). For “I hate python” there were 86 hits, and 2 were false hits (also for Monty Python).
This give Python an adjusted ratio of 755:84 or 8.98.
I just noticed that myh adjusted ratio for Python actually drops it slightly below C#.
Its unlikely that love/hate C# is going to get false hits (i’m not going to look at this one). The only thing I can think of is the musical note C# — but why would someone love or hate a particular note?
Oh man…. I forgot to adjust those 7 false love-python hits to account for the total of 762 hits. This means a total estimated false love-python hits of 53.
This gives Python a ratio of 709:84 or 8.4 — well below C#.
I said I wasn’t going to do it, but I couldn’t help myself. 🙂 I just did the same adjustments for C# (yes there were some false hits for the musical note). Since these top three entries (Ruby, Python, and C#) were *way* ahead of the rest, I *will* stop here… promise.
“I love C#” had 237 hits, 4 of the first hundred were false, giving an estimated total false hit count of 9. “I hate C#” got 28 hits and none of them were false.
This gives C# an adjusted ratio of 228:28 or 8.14.
Remove false hits altogether:
“love ruby” perl python => 1560
“love perl” python ruby => 175
“love python” ruby perl => 172
“hate ruby” perl python => [ no hits ]
“hate perl” python ruby => 141
“hate python” ruby perl => 33
Just to quickly respond to Paul who said that I, “dismiss the results as being skewed because the word ‘Ruby’ could be used in non-programming ways.”
Paul, all I said was that, “Ruby’s outstanding result should not be taken too seriously as it was definitely more polluted by noise than a language like Smalltalk … Nevertheless a quick skim through the results seemed to show that most of them related to the programming language.” That’s hardly dismissal!
One thing that I learnt doing this rather random test was that Ruby is definitely a well-loved programming language.
Another question might be /why/ Ruby, Python and C# are the “most loved” languages. It seems to me that they have all hit primetime fairly recently. To illustrate this here’s some stats on O’Reilly books:
– Ruby in a Nutshell (1st ed.) Nov 2001
– C# in a Nutshell (1st ed.) Apr 2002
– Python in a Nutshell (1st ed.) Mar 2003
whereas
– Java in a Nutshell (3rd ed.) May 1997
– Perl in a Nutshell (1st ed.) Dec 1998
– VB and VBA in a Nutshell (1st ed.) Aug 1998
This is a good time for finding lovers of all three of our top languages before people are being forced to use it and before the lack of X (generics, a good sockets library, an object system, or whatever X might be) has driven some users mad.
That’s not to say that “newer” languages aren’t necessarily the best languages, I’d say they probably are (Lisp is the only language older than about 10 years that I’d consider using and that has had many modernisations).
And we aren’t there yet, something better than these new languages will come along, you can be sure of that. There’s some good stuff on Paul Graham’s site on this, like http://www.paulgraham.com/hundred.html
I don’t know how new you can consider Python to be. According to http://python.org/doc/faq/general.html#why-was-python-created-in-the-first-place
Python was unleashed upon the world in 1991. Perl was released in 1987 according to Perl.org, making it 4 years older, which is admittedly a long time in terms of technology, but not that long. According to this http://www.ruby-talk.org/blade/00382 usenet post ruby was released in 1995. Likewise was Java. This means Python is actually older than Java, and Ruby is approxiamately the same age as Java. C# is apparently the youngest of the bunch and Perl the oldest.
Woo. “I love ocaml” gives 17 results, whereas “I hate ocaml” gives 0.
That’s some sort of ratio I can’t comprehend.
Delphi has a better ratio:
“I love Delphi” – 591 results
“I hate Delphi” – 11 results
Ratio: 53.7
I hate C#, OCaml and Delphi. I love Java.
We can recompute now.
“I hate C#” may well refer to playing in the KEY of C#, rather than the note itself. That said, I don’t consider C# to be all that bad a key to play in — EVERYTHING is sharp, there is nothing to remember! I would prefer to read a chart written in C# than the exact same thing enharmonically written in Db. There is a lot less thinking involved, although you are dealing with seven sharps as opposed to five flats, because seven means “everything”.
Still, playing in C# can be a technical and intonation nightmare on certain instruments, particularly clarinet. This is exactly why clarinets come in two very similar-sounding varieties – Bb and A. Bb handles the usual “band keys”, while the A gets a lot more use in the “string keys” typical of orchestras. So “I hate C#” may well be penned by a clarinettist.
The comments above about love ruby being a common phrase seem true to me. Of the first 40 results I got, only two of them were related to the language at all… and they were actually the same article at different mirrors.
Invite you to peruse the granddaddy of such surveys: http://srom.zgp.org/
Since 1998, if not earlier.
that was… cute…
oh, and i love python
How about “I use “x…
Not many love C++ maybe, but how many use it to get the job done?
Somehow, I suspect you’d get C, C++, Java and maybe C# on top. Now, if you didn’t, *that* would be interesting.
How interesting is it to know what people are being forced to use, anyway?
Steve, remember to include the “programming” keyword…
AFAIC C rules. Its good to see that VB and VBscript are the most hated programming languages on the internet.
Chris http://www.hackinghardware.com/
And the point of this exercise would be…?
My reasons were: 1) try and prove that Paul Graham’s assertion that Java is not loved is wrong and 2) see what programming languages inspire love because it would probably be worth checking them out. In the cases of both Ruby and Python this turned out to be the case.
I’ve written an update to this article at http://bluebones.net/2005/04/does-anyone-love-java/
The link above to Ruby auf Platz 18 is a German language update on my searches. Ruby runs aways with it …
Actually there is no surprise. Graham was talking about languages *loved by their programmers*. Lisp, Haskell etc are mostly hated by those who don’t use it because they are popular they pop up in discussions quite often but few actually code in it.
Yeah, sorry for reviving the post.