Hacker News new | ask | show | jobs
by tptacek 4017 days ago
If this was true, and not a just-so story, then it should be easy to point to several well-known open source projects that started out in Golang and ended up in some other language, or several concepts that were prototyped in Golang and then ported over to some other language.

Like every programming language ever, there are surely many Golang users who've used it solely to add a keyword to their resume. That's not a very interesting observation, because the same thing is true of Rust, Scala, and even Haskell.

Further, that doesn't really address the question of why so many teams select Golang in the first place. A programmer might use Golang to get the keyword on their resume, but a team shipping a new product has no such incentive.

3 comments

A team might pick golang to check a box. Particularly the "our boss/organization/PR team wanted it" box.

I largely dislike Go but keep picking it because it is the lowest common denominator of languages my team will use and I really like them.

Even the proponents of Go on my team are moving away from it as their preferred choice, but for now it remains the only consensus fallback.

If it wasn't going to be Golang, what's the next most likely choice?
Some combination of Scala and C++ probably. Golang's central value to me right now is that I can keep a team that is split on those lines happy and cohesive. Which is more than enough of a benefit for me to put my own distaste in the background

The next language I want to learn is OCaml, but thats because I'm sort of obsessed with unikernels.

I think people who use Go in the first place are not those who think much about "can this be done in a better way?".

It's quite similar to the notion of "I'm a PHP developer and I don't understand why everyone says it is terribly designed! I learned to work with it and never tried anything else, so it can't be that bad!!!".

Not every developer cares about software development. There are plenty of people who chose this profession after they heard that a random developer can become the next Bill Gates by writing the right iOS app.

Having a language which doesn't require an inexperienced and non-interested developer to reflect on all the lessons learned in the last 40 years of software development and computer science fits the bill of this kind of person pretty well.

Sure, he/she is missing out on 4 decades of improvements to this profession, but who cares? Despite all the medical advances, there is still an economic niche for quacks selling "cosmic crystals" to cure your cancer.

There is nothing wrong with this. People don't pick a job in finance, because "they like to work with numbers" either.

We should just be aware of it.

Your argument seems to rely on go being the first language someone has learned. Very few people learn go as a first language. Most people I know in the Go community have 10+ years of professional development experience in a variety of the popular imperative languages and have used go for a couple years. I'm sure there are probably some people learning go as a first language by now, but I doubt it's a significant number.

So, "not knowing any better" is kind of ridiculous.

There are plenty of people out there which didn't manage or didn't need to advance beyond their first-year experience for the last ten years. "What did X do?" is a much better question than "How long did X do it?".

(For many jobs one year of experience is perfectly fine!)

I think people who can think critically and evaluate various options rarely join personality cults, which kind of explains Go's current community.

I think this comment does a pretty good job of summing up my perception of Golang's opposition.
To be fair, its no more ham-handed or insulting than the common refrain from the Golang proponents: "Go is for getting work done."
Fair point.
Let's not do SEO in HN comments. The language's name is "Go", not "Golang".
It's also useful for e.g. using Ctrl-F on your own comments or similar. Searchability optimisation can be valuable on its own.
By that logic you should also say Dlang, Rustlang, Nimlang and so on. Let's optimize for human readers instead.