Hacker News new | comments | show | ask | jobs | submit login

Node: Everyone knows JavaScript, there's a massive community, there are tons of libraries, and you get very good performance

Go: No one knows this language, there's a small-but-growing community, there are enough libraries to get a lot done, and you get even better performance

Java: They are paying me (money!) to write in this language

The Go community on Reddit is already bigger than the Node community: http://www.reddit.com/r/golang (3730) http://www.reddit.com/r/node (3581)

I think he was referring to the whole JavaScript community.

For comparison: http://www.reddit.com/r/javascript (27,041)

And the Google+ Go community is growing fast and is already larger than the sub-reddit. https://plus.google.com/communities/114112804251407510571

You do see a correlation right?

I wouldn't consider subreddits a good way to gauge a tech community's size. Try IRC rooms and mailing lists.

The mainstream always lags behind significantly in every aspect of life. If everyone's using it, then you have little competitive advantage using the technology.

Go would be one of the first things I'd reach for if there's any chance server-side concurrency would be involved. The language is minimalistic and unsurprising to the extreme. A joy to program in and use.

More like: Anything web HAS to be Javascript (cause the calendar says 2013 but apparently it's 1970), no choice so oh well, we'll try Javascript on the server cause God knows using the same language everywhere is a good thing :/

Go: The language is in its infancy, growing at a slow pace for now, bears some promises that are yet to be confirmed.

Java: For some reason people still hate the language even though it's the closest to being the most versatile language around (in every single aspect that makes a good language it ranks well against the others)

> For some reason people still hate the language even though it's the closest to being the most versatile language around (in every single aspect that makes a good language it ranks well against the others)

In every respect that a PHB may care about, perhaps. I think you should examine that "for some reason" more carefully before declaring that all reasons favor Java. Clearly there is something going on there, unless you think everyone who dislikes Java just suffered head trauma or something.

Let me clarify then:

I think that a consensus was built in the mid-90s that Java was a pain in the ass and not an improvement over what was available in that particular field at the time (not as easy as other higher-level languages and not as good or fast as C or C++).

I have a feeling that people over time consolidated that consensus through some form of confirmation bias even though the Java/JVM ecosystem had made strides towards a brighter future. And I say that as someone that doesn't even like Java in the first place (or at least doesn't see himself enjoying coding with it).

But it's hard in 2013 to look at what Java and the JVM brought to the table with disdain. Java is nowadays a very fast language that deals with memory management extremely well (not a good feature in some fields of course, embedded or real-time systems come to mind), that offers a rather sane Java-flavoured OOP paradigm, tons of tools (from IDEs to debuggers to servers) and an extremely well-crafted documentation.

The JVM also enabled Scala, Clojure, JRuby, Rhino, Vert.x, etc.

Now I totally understand and agree that the picture of Java nowadays is still far from perfect but I was more pointing at the slight disconnect between the actual capacities of the language and its perception by the programming world at large. Overall Java and the JVM are pretty damn good tools to use and meet the needs of lots of different niches.

It's not the JVM or the ecosystem, but the language itself. It is clunky and generally irritating to write and read. But the libraries and its niche sophistication (basically enterprise middleware and webapps) are second to none, so people put up with it.

Note: I've been writing it professionally since 1999, currently working a lot with ServiceMix so I'm knee-deep in the enterprise stuff.

Exactly, the JVM and the ecosystem are just fine. There is no particular hate for them, just look at Clojure.

Well, I know lots of programmers who do like Java, you just don't see them that much on Hacker News. Reasons:

- Availability of good IDEs.

- Good dependency management and build infrastructure via Maven.

- Quick and easy deployment via servlet containers.

I am not a big Java fan, but having written quite much code, feature-wise there are not that many advantages of Go over Java. Package management in Go is nice for an early system, but will become a mess eventually, since there is no version management at all. Goroutines and Gochannels are nice for concurrency, but not all that great for parallelization. Java has generics, checked exceptions, and a good garbage collector via the JVM.

I don't hold much hope for the development of Java the language, but the JVM is a great platform, with many interesting languages (Scala, Kotlin, Clojure), that attempt to solve problems that Go doesn't solve.

You and VeejayRampay seem to have misunderstood me. I'm not saying the language is all bad, or that the technology is crap, or that there are not programmers who love everything about it. I am saying that there are reasons that many people dislike Java; it isn't just some sort of blind prejudice.


Considering the love Clojure gets on HN, I reject the notion that Java gets a bad rap due to historic shortcomings of the JVM or ecosystem. No, the language itself is disliked, not the tech. Its constructs and its idiomatic usage. Things that your standard PHB will find difficult to quantify. This is in stark contrast with how the JVM is perceived (from my perspective, it seems to be widely adored).

I'm saying this as someone who currently makes their living programming in Java.

Yes, but at what point does go transition from obscurity to PG's "python paradox"?


It sure seems Scala's in this "python paradox" land now. My guess is that you need some startups make it big using Go to evangelize it. Google using it is interesting, but I'm not sure it makes it "cool".

Though, I'm not sure Java was ever a language you could use as a skillset filter. Hm.

I think a lot of the "coolness" factor of Go comes not from its parent company, but from some of its core developers, namely Rob Pike & Ken Thompson. That gives Go a serious Bell Labs/Unix/Plan 9 pedigree.

I don't follow the mailing list anymore, so I don't know if it already led to the same "cargo cult" fanboyship that Plan 9 sometimes evokes, where a lot of the idiosyncratic opinions of its developers (e.g. "shared libraries are bad") are basically never questioned and repeated almost like holy scripture.

I tend to think of "coolness" as a kind of reason behind early adoption, more like "this thing as a large opportunity for catching on".

I'm not 100% sure would make the argument that "Rob Pike and Ken Thompson made it". Instead, I'd say "it's in use at Google, and all of these other startups..." If 1 or 2 of those startups hit it big (e.g. Twitter or LinkedIn kind of big) that might have a bit more of an "Ooo" factor.

Though I have said, "it's incredibly well thought out, look, Rob Pike and Ken Thompson know what they're doing". I don't sense this quite had the gravitas I was looking for yet. Hm.


Pretty much anything Google does is cool. Probably same could be said about Amazon, Facebook et al.

Depends a lot on your interpretation of "Cool" though.


I get more of the sense that Google is more "impressive" than "cool".

If I were to use "Google's got it in production" I might be told something like "well they can pull this off" as if they have some unattainable smarts or something.

Whereas a "cool" thing is more about just simply taking a risk.

Come to think of it, that's kind of a funny definition. Oh well.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact