Live data from Hacker News

The Go Programming Language and Environment

cacm.acm.org

101–110 of 250 posts

Re: The Go Programming Language and Environment

#102
post #41
post #33

Easy, - Backed by Google - Plan 9 and UNIX people as designers - Docker migrated from Python to Go - Kubernetes migrated from Java to Go - After Docker and Kubernetes explosion, all Cloud Native Foundation projects start using the same language, thus adoption

> - 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…

That is very much what happened. Go became the de facto language in the cloud native community, which to this day is its biggest crowd

Re: The Go Programming Language and Environment

#103
post #75

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 - Backed by Google Looking at decades of how various programming languages gain popularity, those proposed reasons don't seem that convincing when we look at counterexamples . E.g. counterexamples of unknown (at the time) creators creating popular languages : Bjarne Stroustrup (C++), James Gosling (Java), Rasmus Lerdorf (PHP). E.g. counterexamples of famous computer…

Oberon is sort of widely used, at least conceptually. Large parts of it are co-opted into Golang.

Re: The Go Programming Language and Environment

#104
post #49

1 - Golang was created for sub-average programmers, thus half of us soon discovered a way to ship more bugs around, more quickly. 2 - Many unlucky ones in the other half found themselves stuck in environments where the former half was over-represented.

This is true but the reality is that most teams have lots of average programmers and Go does a lot to keep them productive and prevent foot guns

Re: The Go Programming Language and Environment

#105
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?

Go filled a niche that wasn't served well: network services with performance/capabilities exceeding scripting languages. Back then the other options were mainly Java, JVM-based niche languages, or C++ — each with its own problems and detractors. Server-side switching costs are low: if it can talk HTTP, you can use it.

Dart was meant to be a better JavaScript, but the barrier to entry for a new browser-native language is impossibly high: it needs consensus of all browser vendors plus a decade for all users to upgrade. Dart made a fatal mistake of betting on having a brand new browser VM instead of being a good compile-to-JS language. In the meantime, JS itself has improved (ES5, ES6), and TS has been designed for being a first-class JS compilation target. The "better JS" niche has been filled by JS.

Re: The Go Programming Language and Environment

#106

Earlier quoted context omitted.

>> 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 exact…

I really dislike this meme of pointing out that Google has deprecated a lot of projects. Do people actually expect Google to staff people & resources running every project they've released forever? A more interesting comparison would be open source projects that Google has abandoned or failed to properly hand over control of to the community, especially if we're talking about Go.

It’s not clear to me that Go would survive Google giving up its continued investment.

Go has the fundamentals to survive - it’s open source, it has a healthy amount of contribution from non-google employees, the compiler is written in Go (that’s important when you consider an alternative situation like a python or js developer who wants to contribute a change to their compiler (they need to learn c / c++ respectively), i strongly suspect that if google walked away tomorrow, the velocity of change to the compiler, stdlib etc would not massively drop in the short term.

Medium / long term though… would i bet on Go over Java? It’s not clear to me that Go has reached the level of market penetration to make that a simple question.

Edit: i meant to add halo projects like docker, kube etc. as reasons to suggest the Go community is healthy

Re: The Go Programming Language and Environment

#107

Earlier quoted context omitted.

>> 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 exact…

>> Made by really famous veteran language designers > Yeah that’s a positive No, that's also a negative. C is close to assembly and produces fast code but it's weakly typed and very unsafe. Pascal was the strongly typed and safe option but people went for C because speed was considered more important than safety back when processors were slow. In today's online world, we've realized safety is more important than spee…

>> but it's weakly typed and very unsafe

Oh here we go :-) and yet the world spins on C kernels and lands jumbo jets in C autopilots and regulates heartbeats with C pacemakers and, and, and …

It seems there’s more nuance to this than just “strong types good”.

>> people went for C because speed was considered more important than safety

But for the past 10-27 years people have the choice to use a fast and safe language (java, c#, go) and they do, in very large numbers.

For the past 10 years (-ish) they’ve had the choice to use rust too - but they don’t. Rust has a popularity comparable to clojure or erlang.

Re: The Go Programming Language and Environment

#108
post #30

Earlier quoted context omitted.

In my case "backed by Google" was a deterrent, not a feature. I gave the language a chance after trying Rust (backed by Mozilla - which was a feature to me ;-) and I found it easy to start. Go is very well documented: That was the killer feature for me. No more search tutorials / videos etc. - just get the go book, read it, and start coding. Of course there are tutorials and videos everywhere for fun stuff. But good…

To me, in the old Go vs Rust debate, there are two things that are abundantly clear in making a compelling case for Go. First, I don't think even the most devoted rustacean can deny that Rust has a hell of a learning curve. But perhaps most importantly is that Go has a strong and extensive standard library that covers many 21st century applications (e.g. talking to REST APIs). The problem to me with the Rust "no stdl…

Unfortunately the lack of investment in the standard library for important things like structured logging have meant that there is still a bifurcated ecosystem around things like “what logger does this use?” (rather than “what async runtime is this for?” in Rust).

Unfortunately major projects pull on tens of random libraries from the internet which represent real supply chain risk.

Re: The Go Programming Language and Environment

#109

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).

Go has the same problem as Python when it comes to web frameworks. It's just so easy to whip op your own middleware on top of the standard library, so there is no One True Option for middleware/framework.

This is where the problem lies. Everyone and their mom thinks it's trivial to do authentication and authorization (as an example), so they keep rewriting things and in many cases full of security bugs, instead of using something created by people with expertise.

Re: The Go Programming Language and Environment

#110
post #29
post #12

Earlier quoted context omitted.

Like Go, C# has also always been a decade behind on the tooling side. For a recent project I wanted very fast HTML templating and I/O. Went with C# instead of Go and it's looking pretty good so far. The tooling is close to the level Ruby was ten years ago, and that was really acceptable. I was very happy with my previous project that I did in Go as well, you just can't go wrong with Go for implementing network protoc…

Ah interesting, so I'm relatively happy working with C# and .NET. I'm interested in what you think might be lacking, is there an example of another language with some tooling not available in .NET? Note: not trying to pick a fight, I'm legit interested what I might be missing since I feel like my needs are pretty much covered :)

The list is shorter then it once was, but high quality Bazel support comes to mind.
Post reply on HN