Hacker News new | ask | show | jobs
by quotemstr 3593 days ago
Well, that's how C++ started. I'm honestly surprised nobody's forked Go or made a less obnoxiously opinionated front-end.
6 comments

C++ implementations were commercial products. Same with C before it, and many (possibly most) languages used in industry. Because platforms were less uniform, and even where they were porting still took much more effort than it does today.

It's really hard to justify making a new go, python, lua, etc. implementation when the primary ones are stable and support a large number of platforms.

And adding language features by altering syntax/semantics, you might as well produce an entire new language rather than deal with the headaches of being partially compatible and having to track the original over time.

I think you overestimate the number of people who care that much about Go. It's not very widely used.

It would also be a massive effort to add generics to it at this point, because of the design choices the team made early on.

Not sure what counts for "widely used", but it's now in the top20 TIOBE: http://www.tiobe.com/tiobe-index/
"It's not very widely used."

Um. Well ok, maybe but not likely, as pointed out by a sibling comment, but it is used by a large fraction of companies that deal with services on an enormous scale - Google (obvi), Dropbox, Cloudflare... here, better than copy/paste: https://github.com/golang/go/wiki/GoUsers

You're going to recognize an awful lot of those companies.

Edit: not sure if it counts, but the number of companies using software written in Go in mission-critical ops is enormous (see: Docker).

> It would also be a massive effort to add generics to it at this point

Not really. The easiest approach would take like a day for PoC.

What approach would that be?
That would be meta/templating approach.
Oden: experimental, statically-typed functional language, built for Go ecosystem

https://news.ycombinator.com/item?id=11183836

Thanks for the link, this looks pretty cool. Like Scala was on the JVM, this could be a sort of escape hatch for some people on the team.
I promise this isn't a troll question, but isn't the opinionatedness (which is a matter of taste) one of Go's biggest features? Once you remove that, what do you get over Elixir or Erlang, on a technical level? Static linking and no VM?
I think the opinionatedness doesn't have to stop, just the opinions can change in the face of evidence that a particular abstraction is more useful than the archetectural hazards it presents developers.
Can you quantify this, then?
That's a good question.

Maybe I could do some kind of poll of people hitting this or other rough snags that would be solved by generics or something similar? But I am afraid that (rightfully so) go fans would feel the poll could be overrun by people who only casually dabbled in go. Same with counting the many complaints of people every time this topic is brought up- the general response seems to be that they don't want that kind of programmer here anyways, so go away.

Go++?
C++ started as a tool that generates C files that can be compiled by a standard C compiler, not as a fork of anything.