Live data from Hacker News

Go: Ten years and climbing

commandcenter.blogspot.com

31–40 of 193 posts

Re: Go: Ten years and climbing

#31
post #26

I appreciate the ruthless design choices behind Go. Crafting a language so there are as few ways as possible, and preferably one, to solve a problem must be beautiful at a large scale organization. In my experience java codebases in big companies are nightmare factories because of the freedom you get from more similar languages. The Go dream of having a single decent solution to a problem instead of 20 that range fro…

>because of the freedom you get from more similar languages.

Is this lack of freedom a good thing?

Re: Go: Ten years and climbing

#32

Go is actually 50 years old in terms of design insight.

If their goal was to be innovative and bring new ideas to the programming world, you could argue that they failed.

But their goal was to make it easier for people to do large scale distributed system programming. In that, they succeeded.

Re: Go: Ten years and climbing

#33
> Today, Go is the language of the cloud [...]

Is that true? First time I hear of a dominance of Go in the cloud. (And what does it mean anyway -- any distributed app that runs on the cloud, or cloud infrastructure... such as?)

Re: Go: Ten years and climbing

#34

Having dealt with enough spaghetti code over the years (just a few of industry experience, and some more years of academia), I understand what Go's strengths are. It's an opinionated language that stops users from being too clever or writing code that's too complex. That said, I've always hated the trends that have brought Golang into popularity. The engineers I've felt who could benefit from Golang the most could al…

Developers may not need the sophistication that you describing. In that case it's just wasted effort learning something that is more complicated.

Are Docker and InfluxDB simple apps? What do you consider simple and what do you consider complex?

Re: Go: Ten years and climbing

#35
post #8

I've been using Go on the side since mid-late 2013, so not nearly as long as some here, but I was heavily impressed by both Goroutines and channels as ideas, and by the net/http library. The general portability and simplicity of the language has made it nice for side-project work. I've since used go to write a blog engine, several APIs for school projects, and have been working on a scripting language (pisc.junglecod…

> but I was heavily impressed by both Goroutines and channels as ideas You know they didn't invent this right?

I know the didn't invent them. But Go was my first exposure to them, and to date, one of the few languages to give them dedicated syntax. I realize it's less necessary to do so in some other languages, but it was still a very interesting learning experience.

Re: Go: Ten years and climbing

#36
post #33

> Today, Go is the language of the cloud [...] Is that true? First time I hear of a dominance of Go in the cloud. (And what does it mean anyway -- any distributed app that runs on the cloud, or cloud infrastructure... such as?)

Infrastructure. Some example projects of the top of my head: Kubernetes, etcd, Docker, terraform, ...

Re: Go: Ten years and climbing

#37
post #26

I appreciate the ruthless design choices behind Go. Crafting a language so there are as few ways as possible, and preferably one, to solve a problem must be beautiful at a large scale organization. In my experience java codebases in big companies are nightmare factories because of the freedom you get from more similar languages. The Go dream of having a single decent solution to a problem instead of 20 that range fro…

>because of the freedom you get from more similar languages. Is this lack of freedom a good thing?

The size of the language and the (more or less) one-way-to-do-things style mean that reading someone else’s go—say, from a library you’re depending on—is really easy. The chance you’ll run into language features you aren’t familiar with (which can happen even to long-time writers of some larger languages) or one of several competing and possibly now-deprecated 3rd party bolted-on features making up for painful deficiencies in the base language (ahem, JavaScript) or some nutty flow-obscuring “helpful” nonsense is low.

Re: Go: Ten years and climbing

#38
post #28

I've been writing Go professionally, full-time, for the past five years. I'm a polyglot, so before Go, I loved exploring every new language I could get my hands on[0]. I still do, for fun, but Go is the one language that has kept me hooked all this time. It's not for any single feature, or for the community (though that's a great part of it). It's because it's the only language which I feel gets out of the way for me…

Out of curiosity, what is your take on clojure then ?

> Out of curiosity, what is your take on clojure then ?

I have a lot of respect for Clojure, though I don't have much of a use case for it.

At the time I tried it, I was annoyed its semantics for '() and nil - they're sort of a hybrid between how Common Lisp does it and how Java does it. Which makes sense - the Common Lisp approach would be a nightmare to implement on top of the JVM while maintaining interoperability, but as someone whose primary language before that was Lisp, it was a bit weird to try and get used to.

I love functional programming - before Go, Lisp did pay a number of my bills, after all! - but to me it feels more like art than work. It's fun to figure out the most elegant, Lisp-like way to approach a problem. It's fun to convert an arbitrary task into a language-recognition problem and then write the compiler to recognize that language as the implementation to the solution. I get the same feeling from it that I do when I finish a drawing and stand back to look at it. I don't want to touch it, lest I smudge it - I just want to sit back and appreciate the finished result.

But it's a completely different kind of satisfaction that I get from writing Go - there, the fun is in how quickly I can solve a problem, and how confident I am in the reliability, robustness, and long-term maintainability of my initial effort. That's where Go really shines for me, and it's not like the joy of having created an beautiful work of art. It's more like the satisfaction of having built a solid American Colonial house for yourself to live in.

I like them both, but for my professional work, I'll choose Go every time.

Re: Go: Ten years and climbing

#39

Having dealt with enough spaghetti code over the years (just a few of industry experience, and some more years of academia), I understand what Go's strengths are. It's an opinionated language that stops users from being too clever or writing code that's too complex. That said, I've always hated the trends that have brought Golang into popularity. The engineers I've felt who could benefit from Golang the most could al…

Developers may not need the sophistication that you describing. In that case it's just wasted effort learning something that is more complicated. Are Docker and InfluxDB simple apps? What do you consider simple and what do you consider complex?

> Are Docker and InfluxDB simple apps? What do you consider simple and what do you consider complex?

Docker and InfluxDB are investor funded organizations that contribute to open source. I'd argue that their success has more to do with the monetary input than anything to do with the language itself.

Re: Go: Ten years and climbing

#40

Having dealt with enough spaghetti code over the years (just a few of industry experience, and some more years of academia), I understand what Go's strengths are. It's an opinionated language that stops users from being too clever or writing code that's too complex. That said, I've always hated the trends that have brought Golang into popularity. The engineers I've felt who could benefit from Golang the most could al…

Have you written anything complex with Go?
Post reply on HN