He said, she said
Oh, you think Java sucks? How refreshing
Still talking about the credit crunch in sales meetings? Panicked about swine flu? And how about that kooky Lady Gaga - whatever will she do next? All of these things were top Twitter trends in 2009. Also ‘trendy’ in 2009: hating on Java. But that’s one bit of zeitgeist that’s yet to become passé (sorry Gaga) - and a link to an article titled ‘Please stop saying Java sucks’, written by Jason Cohen nearly five years ago, has gone viral on Reddit just this week.
So why is this piece still resonating now? Java is bigger than ever, with some of the highest paid devs in the business. Although you can pull apart the mechanics of some of these ‘biggest programming language in the world’ lists, by and large, Java is generally perched at the top, in first or second place. In 2013, Java was the most searched for skill keyword by recruiters. It’s clearly not going anywhere.
Perhaps the sheer ubiquitousness of the language is the key reason that hating Java will never stop being “en vogue.” As one Redditor puts it:
New languages spring to life and die quiet deaths as often as galaxies in the universe, but there are very good reasons certain languages are still on the tip of everyone's tongue when the discussion crops up, even 20 - 30 or more years later. Java is portable, verbose, strict and flexible in all the right ways. There is a time and a place to use it as the primary language...not every time, nor every place, but its relevance is here to stay for a long time.
In Cohen’s article, he does concede that, yes, compared to something like Ruby, Java coding does necessitate a whole lot of lines of code. If you rewrote Firefox in Ruby, it’d have five million lines, as opposed to ten million. Big freaking deal. When it comes to it, the people who fall into “more lines of code for the same job is automatically bad,”do appear have a point. A larger amount of code does leave a larger margin for error - it’s also harder to fathom what’s going on when you’ve got so much material to sift through. But to argue this would be to overlook the fact that certain apps “have no choice but to be millions of lines of code.”
Moreover, when it comes to it, just think for a second about the ramifications of actually sifting through five million lines a code. Who could actually do that? When you’ve got that much unfathomable code, what does it matter how long it is? Either way, it’s not like you’re going to just sit and plough through it. Ultimately, for Cohen, Java is the superior option for working on large code bases, and “Fewer lines of code” and “I don’t need types” isn’t enough to convince him to fall in line with the naysayers.
He adds that, “to me, I need a good reason to abandon a JVM that’s faster than a C compiler, IDEs like Eclipse, tools for correctness and profiling and debugging and analysis, the vast array of quality libraries, and millions of people who are already familiar with the environment.”
With so many people queuing up to bash their language of choice, maybe it’s not surprising that Java Redditors continue find posts like this relevant. And, as we’ve seen with Scala, there’s nothing like someone ripping into your code of choice to arouse the slumbering anger beast within even the mildest of developers. But, at the end of the day:
Do we really care about a five year old blog post whining about what a seven year old blog post by some douche who was trying to sell his Ruby books says?
Come on /r/java, have some confidence and quit worrying about what other communities think.
Aren’t we sick of all the debates? This guy certainly is - and, we're sorry irate Redditor, sometimes us tech editors just can't help ourselves:
Please stop writing article solely on the relevance/irrelevance and/or goodness/badness of Java. Jesus fucking Christ.
Perhaps we should just all embrace the philosophy of the writer below:
All languages suck. If they don't suck, then you've drunk too much of the cool-aid.
I swear, every time I learn a new language I go thru a series of stages.
1. (How do you work this thing): this language sucks because I can't use it like language 'X'
2. (OK I get it): this language is better than language 'X' because you can do this this way.
3. (in the bowels): ok, so now I need something non-standard, how do I get there from here?
4. (Acceptance): This language sucks, but I understand why it sucks and I'm ok with it.
This commenter would certainly like us to.
I want to print this out and mail it to every past, current and future coworker I have. Well fucking said
The best option seems to be to declare a state of mutual loathing all around, and end the fighting once and for all. Joking. Have you seen how slow Groovy is? Oh.My.God...And let's not get started on Scala - oh, the humanity!