Live data from Hacker News

Six years of Go

blog.golang.org

61–70 of 327 posts

Re: Six years of Go

#61
post #23

Earlier quoted context omitted.

> not an oversight, but rather a design choice Why not both?

You can choose an oversight? Once chosen, it ceases to be, no?

I suppose it depends on the precise definition of "oversight". My understanding of the term allows it to be used when someone deliberately chooses a course of action, but not having taken into account the full consequences.

Re: Six years of Go

#62
post #58

Earlier quoted context omitted.

Having said that Rob Pike told me that Go is now one of Google's "official languages".

... which just means developers at Go now have permission to use it, along with Python, Java, and C++, to build things, right?

I believe so.

Re: Six years of Go

#63
I wish the gdb support were better or that delve were more stable. I also had some weirdnesses using cgo on osx. Then I went into #go-nuts on freenode, and I got told I was wrong and there was no problem.

Back in 2009 #go-nuts seemed to be a much different place.

I write Go at work, and I admire many of the same things in Go I admire about Python.

I still wish generics were part of the language and will say their excuses about not being able to do it in a performant way seem to just be away of avoiding the subject.

Ocaml for instance, has a performant generics implementation.

Sometimes the Go community can have an anti-programming language research and anti-intellectual feeling which can be annoying, since in addition to Go I write a good amount of Haskell.

The tooling is nice as people say, however I think more maturing of the platform needs to be done. It's also never talked about how much slower Go's claim to fame of fast compilation got much slower after the 1.3-1.4 switch to a compiler totally in Go. In all fairness, I could be wrong about the last one since I haven't benchmarked it... but I can say it feels much slower than it was around 1.1/1.2.

Concurrency in Go is easy, however I feel like many erroneously think that channels or concurrency primitives like it only exist in Go. There are other languages with rich concurrency and parallelism options as well.

Using lots of interfaces and casting everywhere gets on my nerves since I like to have the strongest guarantees possible via static typing.

Overall though, I can't say I've had a bad experience with Go. I can say it feels like I'm using an okay tool (great in some places) with maintainers who put their hands over their ears to potential improvements (see the generics proposals over the years).

Re: Six years of Go

#64
It was early 2013, when we adopted Go as a default language for all our server side (micro or not) services. Before that we had been using Java for some years. The reason for the move were few:

1) Ambivalence on Java roadmap, in my understanding (gradual build up, since after the Oracle's Sun acquisition). Even the earlier clean java docs, suffered from Oracle branding efforts. Downloading older versions were confusing via a long chain of navigation between sites.

2) Boredom after nearly a decade with Java programming.

3) Memory usage of Java in our conditions was much higher compared to other languages (C, C++, Go)

4) Not Java's problem, but whenever one thinks of hosting a HTTP service in Java, thinks of using a container (e.g. tomcat, jetty, Jboss etc.). Go seemed to have made making services very easy. Its possibly just a perception issue, but its there in my experience.

So we wanted to move, and Go looked stable at the time from all my HN readings. C was too bare bones(even string handling was a pain to me, after a gap), and even C++ would not have matched some of the things which Go has inbuilt. Few examples:

1) Json/XML parsing is the easiest with no work (or minimal) required, you can just have the field names capitalized (or use stereotypes) and it gets done, with a line of code.

2) Great HTTP client and server libraries, which make very easy to write your own standalone services, as well as write http crawlers. (I am quite excited that Go 1.6 will have HTTP/2 support for both, as per this birthday blog).

So, in nearly three years of usage, with largely no regrets[1]. It is what they say it is: a bare-bones, fast (both compile & run) and stable (hardly get any errors after you have coded stuff, one of the stablest programming paradigms in error handling, etc).

Thank you, Go team! Hoping to use it for many years, as default server side language.

[1] Some of the 3rd partly libraries, we use are still not ported over to Go. They have Java, C++/C versions.

Re: Six years of Go

#66
post #51

Started using Go for my latest project (a successor to Evernote). It feels like such a relief, especially having just come out of a node.js project. It's everything I wanted in a (web-app) programming language, and for the first time I can say that a language has actually made my code better. I've never had a codebase this clean before.

I don't mean to be snarky and I'm definitely showing my age here, but isn't that exactly what devs were saying about node.js two years ago?

Re: Six years of Go

#67
post #16

Earlier quoted context omitted.

Compared to what other new language?

maybe not specific to language, but compared to projects like Angular, React etc... Go has much less traction. Swift is a new language and is already much more widely used.

Angular...React, are you serious? Haven't even tried Go tbh but I wouldn't even dare to make such a comparison on HN or anywhere else for that matter. You just don't do it. It's like saying that Go sucks, google maps is better.

Who cares about adoption rate? Is PHP the best language to make websites because of it's popularity? Hell no!

I tell you what I care (and I know I will eventually pick Go for these reasons):

- concurrency - parallelism - stability - speed - community - libraries - proper use of hardware - small footprint

Re: Six years of Go

#69
post #24

Earlier quoted context omitted.

> The prevailing feeling of Go is "getting things done". This is a common refrain amongst go proponents and I find it quite distasteful. It either implies those of us who prefer other languages aren't "getting things done" or those who feel productive in Go aren't smart/hard-working/educated/etc enough to "get things done" in other languages. I don't think either is true. I think a more accurate way to look at Go is…

"Getting things done" is quite accurate considering large number of popular Go projects in short time compared to allegedly better design languages ( Scala, Rust, Haskell, D, OCaml etc..)

In Haskell a lot of it is due to people thinking they need to deeply understand everything before cranking out code. It's like trying to understand music theory before strumming some guitar strings... actually it's probably something less useful than that.

However, I guess the inability to deeply understand or pontificate about Go is an advantage in itself... forcing your only potential activity to be getting work done.

Also, are you sure that there are more popular Go projects than popular Scala projects?

Re: Six years of Go

#70

I'd say after 6 years adoption rate has been rather lackluster

I'm assuming you trolls down vote because you know it's true. I've tried to use Go, I think it's syntax and unique style sucks compared to C#, Java, Python or even JavaScript.

Go's syntax is pretty much C-like though. Try comparing Go to Lisp, Pascal, Python, Visual Basic, COBOL, FORTH, etc etc.

But at the end of the day, syntax is really just a superficial element of a language. Particularly when you're comparing Go with very syntactically similar languages such as Java, JS and C#.

Post reply on HN