4 ms·
Please point to when Go has broken backwards compatibility.
by badrequest 3y ago
Please point to when Go has broken backwards compatibility.
- kaba0 3y agoThat’s not my point. Smart men learn from the mistakes of others.
- nzoschke 3y agoObviously different perspectives in this thread. Robert Griesemer, Rob Pike, and Ken Thompson are objectively smart men and pioneers and have learned from lots of mistakes both they and the industry made. Go embodied a lot of those learnings out of the gate. If the bar is to be perfect out of the gate that’s impossible and I can’t think of any language that could pretend to be so. Go was very good out of the gate and has slowly but surely evolved to be great.
- tonyhb 3y agoJava only just got green threads (goroutines), 11 years after Go 1.0 was introduced. CSP had been around for yonks. Nothing is perfect to begin with, and I think you could probably be a bit kinder to Golang here.
- nayuki 3y ago> Green threads were briefly available in Java between 1997 and 2000. -- https://en.wikipedia.org/wiki/Green_thread https://en.wikipedia.org/wiki/Green_thread Also see https://stackoverflow.com/questions/5713142/green-threads-vs-non-green-threads https://stackoverflow.com/questions/5713142/green-threads-vs... , https://docs.oracle.com/cd/E19455-01/806-3461/6jck06gqe/index.html https://docs.oracle.com/cd/E19455-01/806-3461/6jck06gqe/inde... .
- tonyhb 3y agoI did mean virtual threads, thanks! :facepalm:
- Cthulhu_ 3y agoThat's the embodiment of Go though; they didn't rush to implement generics because they didn't want to repeat Java's mistakes (just have a look at http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypeParameters.html http://www.angelikalanger.com/GenericsFAQ/FAQSections/TypePa...). They took their time with a module / dependency system to avoid the mistakes that NodeJS made. Every decision in Go is deliberate. Sure, it may not be perfect, or as elegant as other languages, but it's consistent and predictable.
- kaba0 3y agoWhat is java’s mistake, a tutorial file?
- foldr 3y agoGenerics made Java’s type system unsound due to an unanticipated edge case. The Go team got a bunch of top-class type theorists (e.g. Phil Wadler) to make sure that Go’s generics implementation doesn’t introduce a similar problem.
- kaba0 3y agoAFAIK, it is no longer unsound, and even that was just an academically interesting property - had zero real life impact.
- foldr 3y ago>AFAIK, it is no longer unsound Reference for this? >just an academically interesting property - had zero real life impact. Only because Java runs on the JVM, which preserves enough type information that an exception will be thrown if you try to treat a list of String as a list of Integer. In a language that compiles to native code with full type erasure, that could give rise to serious security problems. You can just imagine what Go critics would be saying on HN if Go's generics implementation allowed that kind of thing to happen!
- 3y ago