Live data from Hacker News

Go 1.11 got me to stop ignoring Go

drewdevault.com

61–70 of 79 posts

Re: Go 1.11 got me to stop ignoring Go

#61
post #33

A few years into using Go, I have mixed feelings about `GOPATH`. On one hand, I can see the author's frustration in that it was always incredibly presumptuous of the language's authors to dictate how its users should organize their hard drives, and more so it feels like exactly the type of arrogance that people tend to attribute to the Go's core and community. Also, having helped a number of people now through their…

There's going to be a large group of people (myself included) who graps the system but refuses to use it because it's pointless and stupid. > It's always obvious where your dependencies are located and which versions are going to be used to build your project. More obvious than specifying the version in some dependencies file? > Even better, it lets use very easily drop into those dependencies and add minor changes o…

> What dependency management system doesn't allow you to do this if you insist?

Dependency management systems that require you to hunt for where they stashed whatever they sucked down based on the versions you listed in some file might, in some cases, make this particular task more complex than it strictly needs to be.

Re: Go 1.11 got me to stop ignoring Go

#63
post #33

A few years into using Go, I have mixed feelings about `GOPATH`. On one hand, I can see the author's frustration in that it was always incredibly presumptuous of the language's authors to dictate how its users should organize their hard drives, and more so it feels like exactly the type of arrogance that people tend to attribute to the Go's core and community. Also, having helped a number of people now through their…

There's going to be a large group of people (myself included) who graps the system but refuses to use it because it's pointless and stupid. > It's always obvious where your dependencies are located and which versions are going to be used to build your project. More obvious than specifying the version in some dependencies file? > Even better, it lets use very easily drop into those dependencies and add minor changes o…

> More obvious than specifying the version in some dependencies file?

I have nothing against dependency files, but yes, it's probably even more obvious.

If I see an `import "github.com/x/y"` at the top of a Go file, I know that I can go find the source for that at `cd $GOPATH/src/github.com/x/y` (unless the project has a `vendor` directory in which case you'll look in there instead).

> What dependency management system doesn't allow you to do this if you insist?

I'm sure you could do it on anything, but Go makes it very easy.

As noted upthread, it's pretty simple to do this in other languages like Ruby when you're using Bundler and know the system well (e.g., `pushd $(bundle show excon)`), but in many languages it's much more difficult. You'd need to go chase down the source, download it, then redirect your dependency to point to it. Sometimes you'll grabbed a newer version that's no longer compatible so you'll have to make sure to work off of the right tag.

In bad cases (e.g., C, Java) you'd have to learn how to build the project which might not be trivial because tooling isn't standardized or convenient to use.

Re: Go 1.11 got me to stop ignoring Go

#64
post #52

Having introduced Golang in a business environment in 2014 and having seen the language solve real problems at that time, at scale, I feel that if your own reason to not use Go is GOPATH... Either Go does not solve any real problems for your use case, or your reasons to use Go is misaligned. GOPATH is really not a problem, but efficient concurrency is. Go made the company I worked for go from 20 deployments for a ser…

> something Java, C and other languages failed at before Go was introduced.

Java's concurrency solutions are just as good, if not better than golang's. Pair that with libraries such as RxJava and you're definitely ahead. I don't see what golang has to offer in that area that the JVM doesn't

Re: Go 1.11 got me to stop ignoring Go

#65
post #64
post #52

Having introduced Golang in a business environment in 2014 and having seen the language solve real problems at that time, at scale, I feel that if your own reason to not use Go is GOPATH... Either Go does not solve any real problems for your use case, or your reasons to use Go is misaligned. GOPATH is really not a problem, but efficient concurrency is. Go made the company I worked for go from 20 deployments for a ser…

> something Java, C and other languages failed at before Go was introduced. Java's concurrency solutions are just as good, if not better than golang's. Pair that with libraries such as RxJava and you're definitely ahead. I don't see what golang has to offer in that area that the JVM doesn't

Sounds believable, but at the time we were stuck at 1.6 and had a significant drop in traffic due to JSSE and non-existing support of "modern" TLS Cipher Suites and TLS extensions (we even had problems with SNI, years after introduction)...

We were using C because epoll made it possible for us to compete, but the Java reactivex stuff were lagging behind.

Re: Go 1.11 got me to stop ignoring Go

#66
post #65
post #64

Earlier quoted context omitted.

> something Java, C and other languages failed at before Go was introduced. Java's concurrency solutions are just as good, if not better than golang's. Pair that with libraries such as RxJava and you're definitely ahead. I don't see what golang has to offer in that area that the JVM doesn't

Sounds believable, but at the time we were stuck at 1.6 and had a significant drop in traffic due to JSSE and non-existing support of "modern" TLS Cipher Suites and TLS extensions (we even had problems with SNI, years after introduction)... We were using C because epoll made it possible for us to compete, but the Java reactivex stuff were lagging behind.

Moving to a completely different language and platform was easier than moving from Java 6 to Java 8? Why were you stuck on 6 otherwise?

Re: Go 1.11 got me to stop ignoring Go

#67
post #52

Having introduced Golang in a business environment in 2014 and having seen the language solve real problems at that time, at scale, I feel that if your own reason to not use Go is GOPATH... Either Go does not solve any real problems for your use case, or your reasons to use Go is misaligned. GOPATH is really not a problem, but efficient concurrency is. Go made the company I worked for go from 20 deployments for a ser…

The problem was never GOPATH itself, but the fact that the restriction made it impossible to manage versions and dependencies in a sane way.

Re: Go 1.11 got me to stop ignoring Go

#69
post #65
post #64

Earlier quoted context omitted.

> something Java, C and other languages failed at before Go was introduced. Java's concurrency solutions are just as good, if not better than golang's. Pair that with libraries such as RxJava and you're definitely ahead. I don't see what golang has to offer in that area that the JVM doesn't

Sounds believable, but at the time we were stuck at 1.6 and had a significant drop in traffic due to JSSE and non-existing support of "modern" TLS Cipher Suites and TLS extensions (we even had problems with SNI, years after introduction)... We were using C because epoll made it possible for us to compete, but the Java reactivex stuff were lagging behind.

Go may very well have been through best fit for you. However, saying that Java's problem was that you couldn't upgrade from 1.6 yo 1.8 but you could introduce a completely different language doesn't make much sense to me.

Re: Go 1.11 got me to stop ignoring Go

#70
post #64
post #52

Having introduced Golang in a business environment in 2014 and having seen the language solve real problems at that time, at scale, I feel that if your own reason to not use Go is GOPATH... Either Go does not solve any real problems for your use case, or your reasons to use Go is misaligned. GOPATH is really not a problem, but efficient concurrency is. Go made the company I worked for go from 20 deployments for a ser…

> something Java, C and other languages failed at before Go was introduced. Java's concurrency solutions are just as good, if not better than golang's. Pair that with libraries such as RxJava and you're definitely ahead. I don't see what golang has to offer in that area that the JVM doesn't

You don't have to deal with the jvm for one thing. Java for another.

Both of those things are selling points for me.

Post reply on HN