Paul Graham says that
        nobody loves java: 
“No one
        loves it. C, Perl, Python, Smalltalk, and Lisp programmers love their
        languages. I’ve never heard anyone say that they loved
        Java.”
I’m not so sure.
Google Says
Googling for “I love java” gives 5,400 results.  Adding the word
        programming to the search1 yields
        2,680 results.  Not all sarcastic, surely.  The results include “Why I
        Love Java” and a page that says that, “it makes programming quick and
        fun”.
These numbers don’t tell us much.  Anything as widespread as Java must
        have some fans.  We need something to compare with: ‘”I hate java”
        programming’ gives 1,350 results.  Java seems to be more loved than
        hated, at least.
Paul Graham contrasts Java with C, Perl, Python and Smalltalk.
    Google says:
| “I love Java” programming | 2,680 | 
| “I hate Java” programming | 1,350 | 
| “I love C” programming | 872 | 
| “I hate C” programming | 506 | 
| “I love Perl” programming | 1,720 | 
| “I hate Perl” programming | 426 | 
| “I love Python” programming | 1,330 | 
| “I hate Python” programming | 46 | 
| “I love Smalltalk” programming | 57 | 
| “I hate Smalltalk” programming | 3 | 
| “I love Lisp” programming | 185 | 
| “I hate Lisp” programming | 77 | 
So Java can claim to be the “most loved”.  By the better measure
        of love/hate ratio Java does approximately as well as Lisp, and better
        than C.
Old and New
It is the two most established languages2 that are
        most hated: Java and
        C.  It is this establishment that is key.  Because they are established
        they are forced on programmers more often, not chosen.  Because they are
        forced they are hated.  It is harder to hate a tool that you selected
        than one that is forced on you.
Python is not so well established.  It finds its
        place in the fringes of organisations and in the open source
        community.  Where it is used, it is selected.  If it is not
        ideally
        suited for a task, it tends not to be used.  Because of its
        age3, if a library or feature
        is missing it will be excused as “coming soon”.  If a library or
        feature is missing in Java it is considered a serious shortcoming.
Older languages also have more visible shortcomings.  When C was young it
        was the most portable language in the world.  Now we say that Java
        solves some of those portability problems with far greater success;
        similar claims can be made for Perl, PHP and others.  Older
        languages also have the problem that more bad code has been written in
        them – you are more likely to have wrestled with someone else’s awful C
        than someone else’s awful Python simply because you are far more likely
        to have had to edit someone else’s C full stop.
Newer languages seem to be loved more.  This might be because a missing
    library or functionality in a new language can be excused more easily –
    “Generics?  We’re working on that.”  Also a newer language will be known in
    less depth by its average user and therefore its limits will be less well
    known.  The problems of C and C++ are so obvious to us because hundreds of
    thousands of programmers have butted up against them numerous times.
    There may be terrible limitations on Python but they are less well
    known.
When I wrote the first version of this article my
    blog was quickly commented on by a
    number of   Ruby users all anxious to show that Ruby was the most loved
    language.  And the results for Ruby are spectacular (love: 1,450, hate: 13).
    And Ruby became mainstream (if it can be said to have done so) very recently
    indeed4.
It is not just that shortcomings become visible or inexcusable.  The
    state of the art does move on.  Fortran is superior to Assembler5 and C is superior to Fortran.  Perhaps it
    will one day be possible to say that it is equally evident that Java is
    better than C and Python is better than Java6.  I suspect that these languages are too much
    contemporaries for that distinction to ever be so clear.
Why Love Java?
Let’s look at what Java offers: portability, automatic garbage
        collection, object orientation.  Yes, Smalltalk offered the OO and the
        GC in 1971 but never with such a large standard library and so many
        tools, and with C-like syntax too.
If you were forced to work on somebody else’s complex C program
        porting it to another OS whilst fixing memory leaks and then allowed to
        switch to Java I wouldn’t be at all surprised to hear you say the words,
        “I love Java”.
A previous version of this article entitled
Programming Languages That Are Loved previously appeared on this site.