Live data from Hacker News

Why Go is my favorite programming language

michael.stapelberg.de

81–90 of 256 posts

Re: Why Go is my favorite programming language

#81

I love Go! It houses us and puts food in our mouths. It also powers our side projects. Go is awesome!

Well, cocaine does that too for some families, so "houses us and puts food in our mouths" is hardly an argument.

Especially since one can pay the bills even easier with more popular languages (e.g. Javascript, Java, C#) with more job postings, so that's not a particular argument in favor of Go.

Re: Why Go is my favorite programming language

#82
post #6

Earlier quoted context omitted.

Maybe they* live inside the O? Confusing.

She =) But thanks for your sexist assumptions! They're awesome!

Sexist or just "statistically likely"?

And aren't assumptions the very thing one has to base on statistics?

Re: Why Go is my favorite programming language

#83
post #16

Earlier quoted context omitted.

Did you just assume personhood? You might be responding to a Markov chain for all we know.

Are you saying Markov chains can't be sexist?

Seeing that they are mere algorithms, yes. Being X implies intention. At best they can accidentally put out something sexist as a result of their input.

Re: Why Go is my favorite programming language

#84

I really dislike Go as a language, it has very few means of abstraction and it feels depressing that people think you have to throw out decades of PLT research to achieve perceived clarity like this. That said, these reasons are almost all linked to tooling, which is something that I have to admit Go gets right, but they're not intrinsically linked to the language itself and its feature minimalism. I wish there were…

Google doesn't invest heavily in Go. It almost certainly invests more in JS, Python, Java, and C++. I think the difference is philosophical--Go doesn't pretend that every obscure edge case deserves equal support to the main case, and so its tooling is much simpler.

Re: Why Go is my favorite programming language

#85
post #78

Earlier quoted context omitted.

Safe as in nil not even being equal to nil any more, I know I'll sleep better.

nil is always equal to nil. You might be confusing it with comparing a nil pointer to a pointer to a nil pointer, which are not equal.

I don't care what we call it, it's still confusing as hell.

Re: Why Go is my favorite programming language

#86
post #23

If I were to build a list of the reasons I use go, it wouldn't be terribly different than this one. But interestingly, while I program go every day, I sort of hate it as a language. You'll note this list doesn't actually have much to do with the language per se, the only point directly related to that is that go has a short list of reserved words (which is true of most languages). So for future language designers (or…

> But interestingly, while I program go every day, I sort of hate it as a language. I have the exact same feeling. There's a lot wrong with Go, but it makes up for its problems by having very nice tooling (though of course there's problems with that too).

After having coded tens of thousands of lines in Golang for 4 years, there are a list of probably hundreds of grievances I have about the language itself. The problem is that they're generally outweighed by the simplicity, consistency, and clarity of the language. Is the error system terrible? Obviously. Lack of abstract data types? Awful. Is Rust one thousand fold safer and more syntactically powerful by comparison? Sure.

But the fact is, in a world where we as developers often are learning and working in a new language every year or two, time-to-productivity and proficiency in a given language is one of the most important, if not the most important, metrics for a language. And Golang knocks this out of the park with its obvious syntax and great tooling. You can bring in a new junior programmer onto your Golang stack and have then turning out useful pull requests in a week or two, which I can't say for languages like Rust.

I _hate_ much of Golang's engineering, but for collaborative programming I think anyone would agree that it's a highly productive language.

Re: Why Go is my favorite programming language

#87

The "easy to learn" argument is getting old. If the cognitive load never decreases, that's one thing, but initial ramp-up time shouldn't be a large determining factor. The MVC pattern, ADTs, functional programming, and so many other useful concepts were foreign at first, but have a substantial impact on how you think and work. With the exception of channels, Go doesn't add much when compared to other languages. Maybe…

Huge success of mongodb was due to "easy to learn" advertisement, paired with getting shit done and rewrite later agile trend, and web scale.

Is this a positive or negative example?

Re: Why Go is my favorite programming language

#88
post #80
post #75

Earlier quoted context omitted.

> There is no complex project or package tooling to learn either. Question, how do you handle dependencies without them ending up checked in in your git? I’ve had no success yet with go and dependencies, there’s no simple way like in the Java world to just define a list of dependencies and have the built tool automatically fetch them in some dotfolder, and take care of the rest, is there?

Use dep, which they're planning to add to the official tools like 'go get'. Then add your vendor directory to your gitignore, and you're done.

I don’t want a vendor directory in the first place, how do I avoid that? I want it to just automatically do its stuff just like maven/gradle/sbt work, and not deal with any damn dependencies. I want it to automatically set the dependency path, and handle incremental compiles.

If people claim it has so much better tooling than Java, then I expect at least it to work as well as Java’s tooling.

Re: Why Go is my favorite programming language

#89

I really dislike Go as a language, it has very few means of abstraction and it feels depressing that people think you have to throw out decades of PLT research to achieve perceived clarity like this. That said, these reasons are almost all linked to tooling, which is something that I have to admit Go gets right, but they're not intrinsically linked to the language itself and its feature minimalism. I wish there were…

Ultimately, programmers fall in a bell curve. Most languages which benefit extensively from that research target people on the right of that bell curve. Go, with its lack of complicated mechanics targets the middle of the bell curve. I don't have the luxury of working exclusively with people on the far right of the bell curve, so I'll end up picking Go with its simplicity for most projects. I can be assured that almo…

> Go, with its lack of complicated mechanics targets the middle of the bell curve.

No, it targets the less experienced - interns, as the language creators said.

Re: Why Go is my favorite programming language

#90

Earlier quoted context omitted.

It matters for large teams and when you got hundreds of languages to choose from. I am sure Haskell is great but after a couple of weeks studying it I realize I don't have time for something I don't know if will pay off or not. In contrast with Go you can see benefits almost immediatly

Two weeks is a tiny investment to properly evaluate a language. Haskell is tripping you up because you're likely new to proper FP and very strongly typed languages. Pushing past two weeks, even if you don't use it, will make you a better developer, and the next FP or strongly typed language will come more easily.

You probably mean statically typed, not strongly typed. The distinction is clarified in "What To Know Before Debating Type Systems":

https://cdsmith.wordpress.com/2011/01/09/an-old-article-i-wr...

Post reply on HN