6 ms·
There’s a fine line between being willing to change your mind and getting the basics wrong. Go has repeatedly gotten the basics wrong.
by maccard 5mo ago
There’s a fine line between being willing to change your mind and getting the basics wrong. Go has repeatedly gotten the basics wrong.
- Jleagle 5mo agoSounds like you want this feature, and you just got it. Not sure how that's wrong. You don't add in every feature from the start.
- maccard 5mo agoI wanted it 10 years ago.
- whoiskevin 5mo agoDeclaring a highly successful language as having the basics wrong means that you are not correct about the basics that were needed.
- 9rx 5mo agoAn engineer, of course, understands that there is no such thing as "wrong", only different tradeoffs, but with the rise of "vibe coding" you don't need to be an engineer to play in the world of programming anymore.
- jeswin 5mo agoIt's a highly successful language because (1) it was backed by Google, and (2) created by Robert Griesemer, Rob Pike, and Ken Thompson. If it came out of anywhere else, it might have struggled even to hit the homepage here.
- amazingamazing 5mo agoThis logic is easily shown to not hold. Why isn't Carbon, Dart, etc. not really popular then?
- voidfunc 5mo agoIts just bitter dorks bitter their pet language with cutting edge programming abstractions didnt make it to the big leagues.
- doodpants 5mo agoI can't speak about Dart, but Carbon had just barely started development when it was first announced 4 years ago, and is currently presented as an experimental language that is not yet ready for use [0]. 0: https://github.com/carbon-language/carbon-lang#project-status https://github.com/carbon-language/carbon-lang#project-statu...
- no_wizard 5mo agoDart was relegated to effectively being Flutter. It was originally intended to supersede JavaScript but no other engine would commit to that. It failed at its initial goal and hasn’t really found a footing outside of Flutter. Carbon is by its own admittance not ready to use and I think mostly relegated to solving Google’s problems with C++ right now. Both of them didn’t ship with a standard library as robust as Go’s. One thing that made Go popular out of the gate is it is extremely good fast to build out robust HTTP services and infrastructure. This is a very common use case and they tailored Go to be a great fit for it. You can build your entire backend without a single third party module if desired using Go’s standard library and it isn’t terribly complicated to do so.
- maccard 5mo agoSomething can be highly succesful in spite of having glaring design flaws. Nobody is claiming go isn't wildly succesful, but it's _in spite_ of these issues. It was clear over a decade ago that iota, gopath, and lack of generics were massive kneecaps to the language; go changing it's mind on those things isn't progress it's just getting the fundamentals wrong. A good example of where they're kind of stuck is date formatting - it's stupid, unclear, and likely a mistake, but it's not a fundamental flaw; it's just a quirk.
- 9rx 5mo agoWhy is iota a massive kneecap to the language? It is semantically identical to enum in C and Typescript. The trouble is that Rust is older than Go and it was already confusing people into thinking enums and sum types are the same thing, so by using slightly different syntax, iota, Go avoided the whole confusion of users thinking that enums would behave like sum types instead of actual enums. Is your attempt at making a point that not having sum types is the massive flaw? Sum types are a useful construct, to be sure, but there are plenty of good languages without them. That's more on the design quirk end, realistically.
- jolux 5mo agoRust is technically older than Go, but who was actually using it when Go 1.0 came out in 2012? Rust 1.0 wasn’t until 2015.
- 9rx 5mo agoThe social landscape doesn't depend on anyone actually using it. However, 1.0 isn't a significant milestone like you suggest either. For a current example, Zig is relatively popular today despite not yet reaching 1.0.
- stouset 5mo agoDo you just forget the things you write in earlier comments? > Rust is older than Go and it was already confusing people into thinking enums and sum types are the same thing Of course the social landscape depends on people actually using it. None of the people who weren’t using Rust at the time were magically confused about enums and sum types by the mere existence of some new and experimental language. Rust barely existed at the time Go was first being developed. And given the history of Go and the notoriety of its core team for flatly ignoring prior work in programming languages, it’s extremely unlikely that Pike et al gave more than a cursory glance to what nascent Rust was doing at the time. But even if they had, to suggest that they intentionally replicated a dumb thing from C but gave it a different name to avoid users being confused by a different thing from a language that roughly nobody knew about at the time is bananas.
- boxed 5mo agoThe basics of a programming language were wrong. The basics of marketing were very right. Those are not the same.
- n6242 5mo agoBy that logic Windows would be the best operating system ever and perfect in every way, and anyone who disagrees must be wrong about how an OS should be.
- hocuspocus 5mo agoAnd Javascript and Python the best languages.
- OtomotO 5mo agocough JavaScript cough
- someone_19 5mo agoSo you mean to say that PHP5 and Js from 2007 had a well-founded design?
- ivanjermakov 5mo agohttps://en.wikipedia.org/wiki/Worse_is_better https://en.wikipedia.org/wiki/Worse_is_better
- pjmlp 5mo agoYes, all great examples of language design. PHP, Java, JavaScript, C, C++, Go
- deleted 5mo ago[deleted]