Hacker News new | ask | show | jobs
by fxfan 2611 days ago
I've heard great points and experienced myself how utterly legible go is. But nobody on earth has ever praised anything about the language design itself. I wonder if go came from somewhere not google- how would it fare.
2 comments

Dart also came from Google. Why isn't everyone jumping on that train?
It's kind of irrelevant since it's a different team with a different software niche and design aesthetic, but since you ask:

Dart struggled for years to find a killer app, though Flutter now seems to be a good bet.

Originally the idea was to replace JavaScript and everyone except TypeScript pretty much failed at that. (I mean failed from a popularity point of view, they often succeeded technically.)

I'll also point out that coming from Google is kind of a mixed blessing these days, from a popularity standpoint.

It should be noted that TypeScript succeed by augmenting Javascript, instead of strictly replacing it as most other languages tried to do.
Dart was born "for the wrong reasons" AKA replacing Javascript, it failed at it. The language itself is quite good, better than Go IMHO, but Go has the advantage of not requiring a separate virtual machine. The problem with languages is whether they get enough momentum so that a community can be built around them. A language without an extensive ecosystem is nothing.

Also since Go is "hypocritically Object Oriented", people can claim it's not an object oriented language and kind of write Go like classic structured programming such as C. But Go is OO. You can't write go without using interfaces for I/O.

> You can't write go without using interfaces for I/O.

You can and people do that all the time. You don't have to use its standard library I/O APIs, even its syscall package.

I'm not disagreeing that Go is OO though. Its ecosystem is dominated by OO. But it's more like Perl in this regard, where you can spend years without writing a single line of OO code yourself even if you have to use other people's OO code.

Dunno. It's a good language, better designed than JavaScript anyway. Maybe Flutter will change that.
One reason perhaps is that TypeScript took over that space, and TypeScript also came from a well known company.
And, like Go, TypeScript was strongly associated with a lead designer whose name is well-known and who shaped the industry over multiple decades.
Except that TypeScript's designer had strong and established experience in language design, and he made a lot of correct choices when implementing TypeScript. Can't say that about golang.
I'm not sure if you're casting aspersions on Rob Pike and Ken Thompson. But they are truly giants of computer science giants and they are behind golang. Can't say that about typescript (or any other language I can think of).
They have contributions, but not in programming language design. I was specific to point that out.
You could argue that there's a bit of a network effect involved. i.e. it doesn't get much love on HN, Reddit, etc. (just look at the comments on any Flutter thread).
> I wonder if go came from somewhere not google- how would it fare.

There was a precursor to golang that the some of the same authors worked on before they were at Google. It didn't go anywhere, precisely because it didn't have Google's name behind it.

I think it was called "C", by Bell Labs folks.
Ever considered that in 1995 some aspects of Limbo weren't as appealing as they are today and that this played a great deal in its adoption?

For example its CSP concurrency model, similar to Go, was hardly pertinent when common processors were 150 MHz Pentiums with 1 core. Completely different scenarios.

Not to mention Bell Labs had enormous influence on Computer Science at the time so it's not like Limbo had no strong backing either.

> For example its CSP concurrency model, similar to Go, was hardly pertinent when common processors were 150 MHz Pentiums with 1 core. Completely different scenarios.

There was always demand for having servers that processed high numbers of requests (e.g. C10K). Just because single core processing was common does not mean that there wasn't need for high concurrency.

> Not to mention Bell Labs had enormous influence on Computer Science at the time so it's not like Limbo had no strong backing either.

In those days there was less fad driven development compared to what we see today. So the effect wasn't as pronounced.

> There was always demand for having servers that processed high numbers of requests (e.g. C10K)

Demand is not binary. In 1995 the demand for concurrency was a fraction what it is today. Not only multicore processing was an extremely rare sighting in comparison to what we have today but also:

1. Internet was accessed by 10% of the population vs today's 80%+

2. Capable smartphones? First iPhone came only 12 years later. There was no such thing as internet during commute.

3. C10K for example was coined only in 1999.

The 20 years between 1995 and 2015 did change the IT landscape wildly regardless of your beliefs.

When did Erlang come out? There clearly was interest in concurrency, otherwise, why make a new programming language (limbo or otherwise) just for the sake of it?

Just because multicore wasn't common doesn't mean that concurrency wasn't important. Event loops have practically always been there on widely used OS's.