Live data from Hacker News

Go: Ten years and climbing

commandcenter.blogspot.com

161–170 of 193 posts

Re: Go: Ten years and climbing

#161
post #147

Not a Go programmer myself but I am very grateful for Go. Some of the best software I use everyday uses Go - rclone, gitlab, gogs, gosu, docker to name a few.

> gitlab is written in Ruby.

Gitlab's reverse proxy is written in go - https://gitlab.com/gitlab-org/gitlab-workhorse

Re: Go: Ten years and climbing

#162
post #125

Earlier quoted context omitted.

Then I am curious about what makes RLS or the alike so hard to onboard? Common IDE features like reliable and responsive "jump to definition", "Find all references" and "Renaming symbols" are 90% of all I would ask for. Do Rust devs have less attention to the area?

Those three things already work in the RLS. And more: https://www.ncameron.org/blog/what-the-rls-can-do/

Is there an editor that supports jump to definition for macros?

Re: Go: Ten years and climbing

#163
post #112
post #97

For a language that's been around for 10 years Golang's adoption rate is still pretty low. Searching Indeed.co.uk's API by job title there are currently 25 Golang jobs in London compared with 29 Perl, 188 Ruby and 511 Python. For the UK as a whole it's 34 Golang, 57 Perl, 276 Ruby and 821 Python. Golang has a long way to go yet IMHO.

Your stats seem to be wrong. https://www.indeed.co.uk/jobs?q=golang&l=London%2C+London returns 194 Go jobs for London area

I specified in the parent post searching by job title and also via their API which removes a large number of duplicates. These 2 constraints give a clearer picture IMHO.

Re: Go: Ten years and climbing

#164
post #128

I love Golang, but I'll just comment on that: > It's worth stating that the language is called Go; "golang" comes from the web site address (go.com was already a Disney web site) but is not the proper name of the language.) You already have a hugely popular game called Go (WeiQi/Baiduk). It just adds confusion to queries to call the language Go instead of Golang. Even the #go channel on freenode has a disclaimer that…

To be fair many simple names are overloaded. Amazon, Rust, C, Python, ... even football. It's normal.

Don't forget Java, Pascal, Ada, Lisp, Algol, Basic, Ruby, Awk...

By this metric, the best programming languages are Perl and Fortran.

Re: Go: Ten years and climbing

#165
post #148

Earlier quoted context omitted.

This is a bad comparison. Core philosophy of Perl is to empower programmers with more than one way to do it. Core philosophy of Go is your coworkers are too stupid to be allowed to have nice things.

Seems like the core philosophy of Go is the end result of Python's "there's one way to do it". The "Go's design and users are dumb" meme needs to die. It's not even a constructive criticism. It's dishonest, insulting, and it's too bad grown adults and professionals can't see beyond it.

I'm not saying Go's design is dumb, it's obviously successful at what it set out to do.

I'm not trying to be dishonest or insulting. I've described the philosophy of the language in exactly those terms to Go users, in person, and gotten nods of "Yes, that's right, that's why it works."

I think it's more dishonest to claim that the language designers didn't intentionally limit the language to less than the state of the art as of 30 years ago, on purpose, because of concerns about the mental capacity of users. They themselves admit as much.

Re: Go: Ten years and climbing

#166
post #42

I love Go for the concurrency and awesome cross platform support, but my biggest complaint about Go is still the forced GOPATH. I know this is super nitpicky, but I like to keep work and personal code completely separate and changing GOPATHs is very frustrating. With the introduction of `vendor` and software like glide and dep tool, you no longer have to store your sources in `$GOPATH/src`. Since dep/glide are also r…

How frustrating is it to change GOPATH? In each GOPATH, create a file called "source" or something, and put the following in it:

  export GOPATH=/home/ubercow/project2/
Or even:

  export GOPATH=`pwd`
When it's time to work on your project just say

  . source
This seems like an INCREDIBLY minor step to take. It's certainly no worse than using pyenv.

Re: Go: Ten years and climbing

#167

Earlier quoted context omitted.

Those three things already work in the RLS. And more: https://www.ncameron.org/blog/what-the-rls-can-do/

Is there an editor that supports jump to definition for macros?

I don't know. I have a hunch that lots of macros still will be better with the new macro system, but we'll see.

Anyway, regardless, there's certainly more work to do! And it's being actively developed quite heavily. For example, it will be on stable Rust very soon.

Re: Go: Ten years and climbing

#168

Earlier quoted context omitted.

Completely separate = dont allow dependencies between or one is base and second auguments and depends on base or dont allow changes to one of them? How would your ideal system look like? What is your use case? Sidenote if it helps there is a default gopath location if its not defined: https://golang.org/doc/go1.8#gopath

My ideal system is: clone a repo, run `go restore` to fetch dependencies and then `go build` to spit out a binary or `go run` to quickly start the main function. Nothing from outside the repo can effect that build. Likewise anything inside the repo can’t effect the outside. Compartmentalizing each project makes builds more reproducible and more obvious. If anyone else clones the same repo and runs the same commands,…

We actually do this at work; our repository is a full GOPATH layout with subdirectories for src/, test/, doc/, etc. We vendor our dependencies. To build, we have scripts at the top-level that compile all of our components (we ship a whole suite of tools in a single repo), run go vet, run tests, etc. The user never needs to set GOPATH. It's not a perfect system, but we've been using it for 3+ years without too much trouble.

Re: Go: Ten years and climbing

#169

Earlier quoted context omitted.

Yes, go is a replacement for Java. Google couldn't rely forever on sun forever (see the later acquisition by Oracle and lawsuits with Google). Big companies want to own their main tools. It's also to separate itself from the Java crowd, which has a rather poor image to a lot of people that google wants to attract.

Go happens to be a pretty nice replacement for Java in some targeted circumstances , but that is not why Go exists. Go's charter was to address deficiencies of Google's C++ programming environment, not its Java programming environment. As it happens, outside of (perhaps) Google, C++ serverside development is so rare that Go's strengths aren't very compelling to C++ developers. That Go didn't evolve in the direction i…

C++ is addressed by switching to Java. Use Java when you can and C++ when there is no other option.

Java didn't cut it for Google because see my previous post.

Re: Go: Ten years and climbing

#170
post #148

Earlier quoted context omitted.

This is a bad comparison. Core philosophy of Perl is to empower programmers with more than one way to do it. Core philosophy of Go is your coworkers are too stupid to be allowed to have nice things.

Seems like the core philosophy of Go is the end result of Python's "there's one way to do it". The "Go's design and users are dumb" meme needs to die. It's not even a constructive criticism. It's dishonest, insulting, and it's too bad grown adults and professionals can't see beyond it.

That meme isn't going to die because one of the creators of Go himself said it was created for dumb users (sorry, Googlers "who can't handle a brilliant language"). There wasn't any constructive criticism coming out of the Go team towards these other languages, rather, they were simply "too complex" in a general sense.

The creators have also strongly resisted adding features others consider basic for a decade now, with a variety of nonsensical justifications.

It's a stretch to even claim Go was designed at all. From the very blog post this thread is about, we find this statement:

Russ discovered—that's the right word—that the generality of Go's methods meant that a function could have methods, leading to the http.HandlerFunc idea, which was an unexpected result for all of us.

Go is not exactly a complicated language to begin with, yet the designers "discovered" things about it whilst building it.

Go gets a lot of criticism because it's an empirically very poor language and its designers routinely say absurd things that invite ridicule, like "Go is the language of the cloud" or "We have invented a GC for the next 20 years" or "Go was designed for interns and students who can't handle brilliant languages".

Post reply on HN