This is an outlier. The Go team and community never endorsed that. In fact, their position has always been the opposite. To give just one example, see [1].
I think it’s pretty clear this post was a response to the clear dogma within the community.
> But we need help from everyone. Remember that none of the decisions in Go are infallible; they’re just our best attempts at the time we made them, not wisdom received on stone tablets.
“Done properly from the beginning” means explaining why a particular feature is either included or not. In this sense, Go is done properly from the beginning. It would be wrong to add every popular feature uncritically.
"They are likely the two most difficult parts of any design for parametric polymorphism. In retrospect, we were biased too much by experience with C++ without concepts and Java generics. We would have been well-served to spend more time with CLU and C++ concepts earlier."
It is sufficient to actually care about history of programming languages design, acknowledge the paths trailed before since FORTRAN came up in 1958, no need for omnisciency.
What’s the correction? The two claims are not in conflict. Saying “we don’t expect to ever add X” is not equivalent to “we never wanted to add X.” It simply means that they didn’t think it would happen, which can coexist with an underlying willingness to consider it if a suitable approach appeared.
Clearly we don’t need this feature. Just because the Go team decides to implement a feature doesn’t imply that they must think that the language needs the feature. You’re searching for contradictions where none exist.
Most programming language features are not strictly needed. They’re just quality of life improvements that are on balance a good addition to the language.
Sure, but if you take that view, everything above assembly is a QOL improvement and we really don't need anything. That definition is pretty useless though.
Now there's a surprise. I've generally been very disillusioned with Go after they absolutely stonewalled everybody on uint128 (and continue to do so) for absolutely no reason (and ignoring that it would make many things in the language easier to express).
Like IPv6 addresses, UUIDs, the list goes on. Does it mean anything that Go themselves had to invent a custom uint128 type in the standard library because they didn't want to add it to the language? There's a very long list of instances of them stonewalling it here: https://github.com/golang/go/issues/9455
I agree with their reasoning, you don’t typically do math with a UUID, 128 bit cryptographic hashes are insecure and outdated anyway, and IPv6 is kinda valid but rare and still doable with slices.
“Curly braces” reads like “the braces—curly ones.” Pointedly emphatic when you want to stress a particular aspect of a thing, much like “rational animals” instead of “humans.”
Logic is identification of that which exists. Thus, a proposition either does correspond to reality or doesn’t at all. There is no partial semi-truths: the moment a concept or proposition ceases to describe reality, it becomes false.
Contexts don’t change much. They are merely implicit knowledge, subject to the same binary standard. They don’t change the truth, only applicability.
Mentioning Gödel here is not just cliche, it’s irrelevant. Gödel is about artificial formal deductive systems. They are not a claim to exclusive philosophy.
“The law of non contradiction exists”. Even Aristotle couldn’t “prove it” exists yet logic uses it all the time. I hardly think logic is about what exists but rather a tool, born out of interlocution.
Aristotle indeed couldn’t prove it, that is, to derive it as a conclusion step by step from the evidence of the senses. His reasons for this are sound: 1) an attempt to do so has to rely on PNC already, and 2) we can’t assume infinite regress.
Asking a proof of PNC would imply proving non-contradiction by some means that assumes that contradictions do exist.
PNC doesn’t need a proof; it needs validation: a process of establishing an idea’s relationship to reality, whether through deductive reasoning, inductive reasoning, or sense perception.
> logic is [not] about what exists but rather a tool
If logic describes something that is not real, then our ideas and even institutions are detached from reality, and so some people claim a right to secede from “established truths” and place anyone who disagrees outside the circle of rational dialogue. That would be a harmless academic issue if the last two centuries weren’t a living record of that detachment playing out in politics, ideology, and culture.
I agree that lying should be illegal, but “domination” is vague. One could argue (and I would agree) that there’s nothing wrong with dominance if it comes down to just offering a superior product.
And why should the cross-market context be treated differently?
I think that it's wrong to assume that vi is the only route to deep muscle memory. Heavy mouse users develop blindingly fast Fitts’ Law targeting. And if you need essential simplicity, they have far fewer commands.
Bill Joy, the original author of vi, saw the vi commands as a problem, not a solution [1]:
The fundamental problem with vi is that it doesn't have a mouse and therefore you've got all these commands. In some sense, its backwards from the kind of thing you'd get from a mouse-oriented thing.
> Heavy mouse users develop blindingly fast Fitts’ Law targeting. And if you need essential simplicity, they have far fewer commands.
Even if you remember the general placement of things? You still have to consciously track where the pointer is and when it will be on target. I was better with old applications where everything was accessible, bit in this era of low density interface and deep navigation, it’s not great.
The Acme editor is a great example on how to use the mouse. Every click results in an action. And a customizable interface so that you can have what you need at the ready.
The plan 9 interface has evolved quite a bit, but it's largely invisible in screenshots. The differences are in things like triple click behavior, jumps to insertion points, effective use of mouse cursor warping, chording.
grep’s design is surprisingly winning, exceeding expectations to this day.
reply