Earlier quoted context omitted.
For small companies, variance can be good. For large companies, avoiding surprises is everything. So they cram a bunch of processes to make everyone a B player. That’s great if you’re naturally a C player, and can be less work if you’re a B+ player who wants to coast. But it’s hell hell if you’re an A player who is now working with handcuffs, and getting paid the same as the C player.
^^ This!
I want off Mr. Golang’s Wild Ride (2020)
421–430 of 477 posts
Re: I want off Mr. Golang’s Wild Ride (2020)
#422Earlier quoted context omitted.
For small companies, variance can be good. For large companies, avoiding surprises is everything. So they cram a bunch of processes to make everyone a B player. That’s great if you’re naturally a C player, and can be less work if you’re a B+ player who wants to coast. But it’s hell hell if you’re an A player who is now working with handcuffs, and getting paid the same as the C player.
Can you consider yourself an A player if you think yourself too good to work with B / C players in a language that, as you say, handcuffs you? I mean it frees you up mentally to think about the bigger problems, beyond the bit of code you're working on right now. In the end, the person writing the code is just a cog in the machine. You can try and pretend you're an Important cog by being Very Clever and using very sma…
I mean, I hate to break it to you, but everyone is a cog in the machine. The person running the company is a cog in the machine. The person running the country is a cog in the machine.
And, more than that, there's no hierarchy, there's no order. A person may go their entire lives working as a cleaner, looking up at the person running the company, and that person may look up at the pension fund that owns their company, which fund in turn exists to invest the pension of the cleaner. The world is a graph, not a tree.
In the context of the dynamical chaos that we call the world, some people like to take pride in their craft. I think that's OK.
Re: I want off Mr. Golang’s Wild Ride (2020)
#423Earlier quoted context omitted.
I disagree - if its a template that is commonly used, someone only has to dissect it once. Regardless, what exactly is tricky to disect or falacious about this template? The rebbutal is basically: * go is trying to optimize for different things * go makes no secret that its trying to optimize for different things * some people like the things that go optimizes for (and some people don't). * [with an implied] if you i…
You're too optimistic about defusing tricky BS. And I was deliberately avoiding making a claim about the article, only about the idea that the existence of a template to "dismiss" your argument implies anything about your argument. It does not.
When i claim that failing to address a criticism that is so common it has a template form and thus should easily have been anticipated, makes for a bad argument, i mean in the first sense not the second. To be clear, by a template i mean a template response that people believe in good faith - like what was used in this discussion. I don't mean a template for making an ad hominem attack or something bad faith along those lines. But ultimately if there is some "tricky bullshit" that is commonly believed in good faith by the audience, then yes an argument that doesn't defuse it is a bad argument.
Re: I want off Mr. Golang’s Wild Ride (2020)
#424Earlier quoted context omitted.
It sounds like you enjoy Go. That is great. I am referring to TFA/post which sounds similar to many experiences with Go. Of course all languages have pros and cons. I am referring to the specific situation where people are expecting a modern language and ecosystem heavily influenced by its user community. Go is not such a language. People should have different expectations. > The history of language design is the his…
> I am referring to TFA/post which sounds similar to many experiences with Go. Lots of people have bad experiences with Java, C++, Rust, Python, or JavaScript. I've had bad experiences with all of those languages, as well as bad experiences with Go. I don't think you've managed to articulate what makes Go different. I'm not saying you should use Go. I will say this: it sounds like you have opinions about Go, and I ca…
I just can't make sense of your argument. You say Go has learned some lesson from Java's checked exceptions, because ... errors are return values. What does that have to do with checked exceptions? Do you mean to contrast it with exceptions themselves? It certainly seems a complete non sequitur in relation to the (type) checking of exceptions. If your point is the "exceptions vs values" argument, then that's certainly one that's been hashed out at length, but I fail to see how picking one approach - of the two only approaches that any language can pick, both of which countless languages have used - is evidence of some kind of deep thought and originality.
Re: I want off Mr. Golang’s Wild Ride (2020)
#425Everything is a question of tradeoffs. I have to deal with cross-platform Go code on a small project at work. The requirements are modest and the Windows file system code is mostly for developer testing. The production system is Linux. Yes, it's sometimes not pretty and Go was clearly designed for Posix style file systems. We chose Go is that it is fairly high level, it gets the job done, and we don't have to worry a…
Engineering is the art of compromise. The compromises I make to work in Go are easily paid off in what Go allows me to do and for the amount of effort it requires. Language wars are silly.
Re: I want off Mr. Golang’s Wild Ride (2020)
#426Earlier quoted context omitted.
Java worse than Go in many regards, and many successful business seem to continue using it. Probably the marginal cost of one unhappy Scala magician leaving a company is far lower than the cost of writing all software in Scala, to keep Scala type magicians happy. Substitute "Scala" with any language that has high joy/freedom.
Tell me you don't know modern Java without telling me you don't know modern Java.
Re: I want off Mr. Golang’s Wild Ride (2020)
#427Earlier quoted context omitted.
I'm not fond of this framing, which suggests that go is for bad programmers and rust is for good programmers. If Go makes it easier for bad programmers to write decent code, it also makes it easier for good programmers. Good programmers aren't good because they're insanely clever and whip up brilliant combinations of abstractions. They're good because they write maintainable, understandable, simple, and effective cod…
> I'm not fond of this framing, which suggests that go is for bad programmers and rust is for good programmers. Right, go is for inexperienced programmers. > The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language b…
I am an extraordinarily experienced programmer, and I vastly prefer Go to Rust.
Re: I want off Mr. Golang’s Wild Ride (2020)
#428Earlier quoted context omitted.
> The Go default implementation also uses split stacks or something for its goroutines This has not been true since Go 1.2, back in late 2013.
The fact remains that you need a separate implementation (cgo) if you want to do FFI. It might be something else goroutine-related that blocks FFI in the default Go implementation, but the issue is still there either way.
Re: I want off Mr. Golang’s Wild Ride (2020)
#429Earlier quoted context omitted.
Agreed. This was the only nit I was inclined to pick as well. I have a lot of fun writing Go, because it gets out of my way .
I just can't stand taking three lines to unpack a value from a map or to return if error. Why can't I just say `return if err := somefunc(); err != nil` It's mega frustrating on top of the lack of generics and other abstractions. And now that generics are coming about, I'm sure it will take forever until my current project can use them. My current project is in the k8s ecosystem which due to the lack of generics, imp…
Re: I want off Mr. Golang’s Wild Ride (2020)
#430Earlier quoted context omitted.
Well, if you don't know the structure of a resource ahead of time but know that it has a status.ready, I would think that would be a candidate for a generic? I haven't explored that much yet, but in retrospect I might even be able to convert all objects to a struct that has only status.ready without generics. I've only been in the ecosystem 6 months, but yeah larger abstractions are difficult too. I'm not a fan of th…
Go's interfaces work fine for this case (see below), and Go's generics wouldn't help you (generic constraints operate on methods, not fields). type Resource interface { Status() Status } type Status interface { Ready() bool } > I'm not a fan of the lack of sub-classing. I like writing a base class and concrete one, and it's quite difficult in Go unless you want to make everything an interface. I've written a lot of P…
type Resource interface {
Status() Status
}
type Status interface {
Ready() bool
}
This is better expressed as type Statuser interface { Status() Status }
type Readyer interface { Ready() bool }