Live data from Hacker News

Please stop saying Java sucks

blog.smartbear.com

31–38 of 38 posts

Re: Please stop saying Java sucks

#32
post #28

Earlier quoted context omitted.

Java isn't capable, however, of high levels of abstraction without various surrounding crufts, however. That is why it sucks. It's not simply a matter of "more lines", it's the additional cognitive overhead reading those lines demands, and the tooling required to make it suck less.

> Java isn't capable, however, of high levels of abstraction without various surrounding crufts, however. Well, Go is even worse in this regard, and yet people jump all over it.

Go at least has the ability to be fast. And compact enough to fit in your head. And approach a specific set of problems. For what it originally set out to do, it actually works pretty well.

What's Java's supposed purpose THIS week, again? First it was making web pages interactive, but it turned out that nothing ever worked in Java web applets except security flaws. Then we were told that Java had always been meant for making desktop apps, but it turns out that nobody in the late 1990s and early 2000s wanted to work with shitty purple quasi-windows designed to cater to the lowest-common-denominator X systems from 1982. Then we were told that Java had always been intended to take over the low-power, low-resource embedded space, but Scott McNealy's speech about that was hard to hear over the sounds of millions of embedded developers laughing so hard that they all shit their pants. I suppose you can argue that it works okay as a quasi-embedded platform today due to Android, but that's only because the idea of "embedded" has expanded, and because the Android boys swapped out the JVM horror show for something that didn't suck dick for a nickel and give four pennies in change.

Shit, what IS Java's one true purpose supposed to be these days? It's hard to keep track. Oh, that's right-- it's for WEB development. Or at least, that was Java's always-all-along-never-did-we-deviate-from-this-concept purpose according to SUN, right up until they found a buyer for the bloated corpse of their once-mediocre company. The original intent of Java to be used as REST-aware web dev platform totally shows in its design. That's what they were thinking of ALL ALONG. Yep. Yes, sir. No doubt about it.

Go, on the other hand, has no defined market, application, or purpose where it can solve any specific problems, and will therefore have to only be quasi-popular because Google is pushing it harder than Plus-- not because its developers actually LIKE it.

Re: Please stop saying Java sucks

#33
The reality is that if Java was a useless language, it wouldn't be the most used programming language in the world. It's not the right tool for every task but more people in the world find it the right tool for their job than any other language. There's a reason for that and it's not that a now defunct company funded its development decades ago.

Re: Please stop saying Java sucks

#34
post #28

Earlier quoted context omitted.

> Java isn't capable, however, of high levels of abstraction without various surrounding crufts, however. Well, Go is even worse in this regard, and yet people jump all over it.

Go at least has the ability to be fast. And compact enough to fit in your head. And approach a specific set of problems. For what it originally set out to do, it actually works pretty well. What's Java's supposed purpose THIS week, again? First it was making web pages interactive, but it turned out that nothing ever worked in Java web applets except security flaws. Then we were told that Java had always been meant fo…

>Go at least has the ability to be fast.

Err, Java is typically faster than Go. And with much better GC to top.

>And compact enough to fit in your head.

It's not like Java is Haskell either. Any enterprise slob can handle it. C# has 4 times Java's features.

>What's Java's supposed purpose THIS week, again?

To be a general purpose programming language?

>First it was making web pages interactive

That hasn't been the case for 15 or so years. Ever since 2000 it was server side enterprise and web apps, and some device stuff thrown in for good measure (which was one of Java target's even before applets).

Re: Please stop saying Java sucks

#35
post #17

Earlier quoted context omitted.

Java isn't capable, however, of high levels of abstraction without various surrounding crufts, however. That is why it sucks. It's not simply a matter of "more lines", it's the additional cognitive overhead reading those lines demands, and the tooling required to make it suck less.

Did you just call jython, jruby, groovy, and all of the other dynamic JVM languages cruft? Or maybe you don't consider them high levels of abstraction... if that's the case might as well not consider inheritance, interfaces, dynamic proxies, classloaders, and annotations while we're at it.

No, I didn't: none of those are Java. They're Jython, JRuby, Groovy, and the other JVM languages.

We're discussing Java-the-language. Not the JVM. And without various surrounding crufts you don't have an expressive, dynamic, malleable language with high levels of abstraction.

Lambdas help, but do not solve, Java's impoverished model of abstraction.

Re: Please stop saying Java sucks

#36
post #28

Earlier quoted context omitted.

Java isn't capable, however, of high levels of abstraction without various surrounding crufts, however. That is why it sucks. It's not simply a matter of "more lines", it's the additional cognitive overhead reading those lines demands, and the tooling required to make it suck less.

> Java isn't capable, however, of high levels of abstraction without various surrounding crufts, however. Well, Go is even worse in this regard, and yet people jump all over it.

Java is pretty fast. Not sure how saying "Y is worse" is particularly meaningful.

Re: Please stop saying Java sucks

#37
post #17

Earlier quoted context omitted.

Did you just call jython, jruby, groovy, and all of the other dynamic JVM languages cruft? Or maybe you don't consider them high levels of abstraction... if that's the case might as well not consider inheritance, interfaces, dynamic proxies, classloaders, and annotations while we're at it.

No, I didn't: none of those are Java. They're Jython, JRuby, Groovy, and the other JVM languages. We're discussing Java-the-language. Not the JVM. And without various surrounding crufts you don't have an expressive, dynamic, malleable language with high levels of abstraction. Lambdas help , but do not solve , Java's impoverished model of abstraction.

All of the things I listed are part of the Java language and standard library.

http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/P...

http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoad...

http://docs.oracle.com/javase/7/docs/api/java/lang/annotatio...

etc

Re: Please stop saying Java sucks

#38
post #37

Earlier quoted context omitted.

No, I didn't: none of those are Java. They're Jython, JRuby, Groovy, and the other JVM languages. We're discussing Java-the-language. Not the JVM. And without various surrounding crufts you don't have an expressive, dynamic, malleable language with high levels of abstraction. Lambdas help , but do not solve , Java's impoverished model of abstraction.

All of the things I listed are part of the Java language and standard library. http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/P... http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoad... http://docs.oracle.com/javase/7/docs/api/java/lang/annotatio... etc

I never said it didn't have those things; I'm not sure why you're still talking about them.

I said Java has an impoverished model of abstraction, and without external tools (byte-code manipulation, libraries, etc) it still doesn't.

Then you brought up not-Java, which I also didn't talk about. You brought those up because those do have better models of abstraction than Java does, which effectively concedes my point.

Post reply on HN