Live data from Hacker News

The Go Programming Language and Environment

cacm.acm.org

51–60 of 250 posts

Re: The Go Programming Language and Environment

#51
post #44

Earlier quoted context omitted.

I had no idea Docker and Kubernetes migrated. I assumed they were both Go from the onset.

Yes, When Docker migrated away from LXC the new code was in Go, https://www.infoq.com/news/2014/03/docker_0_9/ Kubernetes moved when some Go advocates joined the team and pushed for a rewrite, https://archive.fosdem.org/2019/schedule/event/kubernetesclu...

> Kubernetes moved when some Go advocates joined the team and pushed for a rewrite

Frankly, that hardly says anything about the technical merits of that switch. In fact, it reads like a poorly-though tautology.

Re: The Go Programming Language and Environment

#52
post #22

I’m pretty sure the Google name association can explain the languages popularity. I remember reading novices wanting to learn Golang due to the Google name attachment. That propelled the language into many minds, especially new programmers.

Then why is Dart much less successful?

Internal politics.

Re: The Go Programming Language and Environment

#53
post #51
post #44

Earlier quoted context omitted.

Yes, When Docker migrated away from LXC the new code was in Go, https://www.infoq.com/news/2014/03/docker_0_9/ Kubernetes moved when some Go advocates joined the team and pushed for a rewrite, https://archive.fosdem.org/2019/schedule/event/kubernetesclu...

> Kubernetes moved when some Go advocates joined the team and pushed for a rewrite Frankly, that hardly says anything about the technical merits of that switch. In fact, it reads like a poorly-though tautology.

Just paraphrasing the FOSDEM talk in one sentence, so....

Re: The Go Programming Language and Environment

#54
post #9
post #3

* "easy" concurrency * rich standard library, particular for internet facing apps * "simple" language * single binaries * massive corporate support * rich or full toolset The first and second point fortunately "coincided" with: the move to multi-core chips, and the "second" dot.com boom of the 2010s. Which you could probably attribute to the rise of (Google) Chrome, and the decline (finally!!) of IE6, which held back…

This reads exactly like the joke where successful people describe their daily routine and one of the items besides things like running and meditating once a day is "my parents are millionaires".

> (...) and one of the items besides things like running and meditating once a day is "my parents are millionaires".

Also known as the Elon Musk school of bootstrapping. Step 1: have an emerald mine.

Re: The Go Programming Language and Environment

#55

What I'm more interested in is the comparison between the cases of Go and Dart, which both are languages developed by Google. Why Go is so much more successful (in the system programming domain) than Dart (in the web/mobile/desktop domains)? Many of the listed good choices (e.g. being developer-focused) can be (had been?) applied to Dart as well.

Because Google announced that they will add Dart VM to Chrome, and web community's reaction was "Hell no, we've just got rid of VBScript from the Web Platform, and we don't want vendor-specific languages".

Google changed course to using Dart-to-JS cross-compilation instead, but their initial implementation added 700KB+ of boilerplate at a time when people debated whether 100KB jQuery is too big.

Re: The Go Programming Language and Environment

#57

I think it misses * Made by really famous veteran language designers * Backed by Google Not saying it doesn't deserve its popularity, but most of the things listed are not necessary for explaining its popularity, and none of them (even taken together) are sufficient.

>> Made by really famous veteran language designers

Yeah that’s a positive

>> Backed by Google

But that’s a negative, https://killedbygoogle.com/

I definitely think you’re too fast to dismiss the language features contributing to popularity. As an example:

Fast builds are a positive developers immediately warm to when they experience them (stand by for rustacean “i need time to make tea and my compile times are exactly the right length for tea break” type comment). The example of the 4.4mb c++ project that results in the compiler ingesting 8Gb of data is eye opening. C++ needs to resolve type information for all includes and all their includes and all their includes… go only needs the interface so compilation can be done without all that effort.

Re: The Go Programming Language and Environment

#58
For me it were four things:

1) no bloat

2) great tooling

3) speed, speed, speed

4) developed by legends in Computer Science

To expand a little bit more:

1) Go is still the only language is not developed by analogy (i.e. let's do X because all other languages have it). It's designed from the first principles, and that's why so many newcomers are buffed about weirdly different take on things they consider "basic" or "common sense". "Less is more" sounds funny for people coming from the feature-bloated languages.

For me, minimalistic feature space was a breath of fresh air. I liked how Go authors see it as a vector space, with features being basis vectors (that's where "orthogonality of features" comes from in the articles about Go). Thus Go is optimized to simplify the search for the optimal path in that vector space which is a proxy for cognitive load while writing code. I'm not sure why it's noy obvious for other languages designers, but seems like "the more features - the better" narrative is rarely questioned. Go holds its stand firmly here.

2) Go tooling got it fair share of praises, and inspired other languages and frameworks to follow the same approach. Rustfmt or single binary `flutter` tool for everything are good examples. But back then in 2013 it was, again, an unusual approach that reflected some amount of thought and design put in it. (As opposed to the zoo of different commands, approaches and tools in many other languages).

3) Go was quite close to hardware – you could play with structures bit packing if you need to. Witnessing how whole companies burn cash to scale servers while using memory and CPU hungry languages (and not raising an eyebrows over that), Go seemed like a perfect choice for anything server and backend related.

4) Appeal to authority is not a logical fallacy when the authority is an actual authority. Designing a programming language requires more than CS course on compilers. Go authors had extremely deep understanding of hardware and software internals (obviously), but also had *decades* of practice in different teams, companies and even epochs. That made me trust their decisions over my initial responses. I still remember how I was mad at gofmt ("Who the hell they think they are to tell me how I want to format my code!"). Needless to say I was struck by how incredibly useful that turned to be at scale.

What was never on my list of Go selling points is that it was originated in Google. Never understood this argument. I have more respect to Apple than to Google, yet I'm not writing Swift just because it's backed by company I respect more.

Re: The Go Programming Language and Environment

#59

Started a project in Golang this week. Looked into web frameworks and was underwhelmed. Settled with Echo as it seems to have the only decent documentation. Still no good templating library, will settle with html/template and try to add something else for template inheritance. (I chose Golang for the best async scheduler and the very fast compile times).

Take a look at GoBuffalo

Re: The Go Programming Language and Environment

#60
post #50
post #41

Earlier quoted context omitted.

> - After Docker and Kubernetes explosion, all Cloud Native Foundation projects start using the same language, thus adoption This take sounds highly unrealistic. No one in their right mind would ever say "well Docker/Kubernetes were developed in Go, thus that means it's a good idea to develop a totally unrelated application that bares no resemblance or shares any use case in Go as well". Also, migrating away from an…

The amount of Go projects in Cloud Native Foundation shows otherwise. Most people pick languages based on platforms, not a language in isolation and go hunting for projects. As for the point migrated to a compiled language from Python, if it wasn't for the shinny thing, the migration would have been to a compiled language with proven record in prodution like C and C++, as it is common on the ecosystem. And regarding…

> The amount of Go projects in Cloud Native Foundation shows otherwise.

That says nothing at all, actually.

Beyond the transparent appeal to authority, why would anyone take decisions seriously when they are made without any technical merit in mind and just follow a mix of cargo curlting and pushing in-house tools, such as the case of the kubernetes migration to Go?

> Most people pick languages based on platforms, not a language in isolation and go hunting for projects.

The whole point of this discussion is that people don't, and make decisions without any technical merit in mind.

> As for the point migrated to a compiled language from Python, if it wasn't for the shinny thing, the migration would have been to a compiled language with proven record in prodution like C and C++, as it is common on the ecosystem.

This personal assertion ignores the fact that there are plenty of alternatives that considerably improve over C++, let alone C (?!), not to mention that it reiterates again the mindless cargo cult mentality behind Go.

> And regarding Java, everyone that actually knows the ecosystem is aware of AOT compilers since 20 years now, even if they have been available as commercial only for the most part.

I don't understand what point you tried to make with regards to Java, specially as the Kubernetes migration from Java to Go was pushed by people who worked on Go, and thus it had an unavoidable self-serving "eat your own dogfood" aspect to it.

Post reply on HN