5 ms·
It's not trying to fix Go, it's trying to be a new programming language. It just happens to compile to Go, and allows Go interop.
by throwaway127482 2y ago
It's not trying to fix Go, it's trying to be a new programming language. It just happens to compile to Go, and allows Go interop.
- pjmlp 2y agoWhich is a way to use Go, while not using Go. Hence better invest into ecosytems that value language design PhDs....
- nine_k 2y agoNo, it's a way of writing a better language while using Go libraries extensively. The same way Kotlin is a way of writing a better language while using Java libraries extensively.
- pjmlp 2y agoThe difference is that JVM community welcomes languages PhD folks. There is even the JVM Languages Summit. Unthinkable in Go ecosystem.
- nine_k 2y agoMaybe because Go is not a VM?
- pjmlp 2y agoJava compiles to native code for two decades now, it has always been a matter of how much one was willing to pay for a commercial JDK. “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 but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.” -- Rob Pike
- nine_k 2y ago> our programmers are Googlers ... They’re not capable of understanding a brilliant language Sounds pretty damning, I'd say. This of course illustrates why Go is called "systems PHP". > how much one was willing to pay for a commercial JDK. I strongly prefer open-source tools at the base of my stack. Not as much because of the money but more because of the level of trust. Things should be inspectable.
- neonsunset 2y agoThat's what .NET is for (both C# and F#) - it has no private implementations (Unity does not count :P). Much more competent compiler too and smaller native binaries. Something you could confidently use in production.
- skinkestek 2y agoThen you have to deal with: - .Net devs (they are almost as annoying as us Java/Kotlin devs) - a language and ecosystem that consistently sacrifice backwards compatibility (contrary to us who have features sacrificed for backwards compatibility at every single step) - you have to live without the JVM ecosystem (on this I have no self deprecating comment, C# is a better language, but the ecosystem, from libraries to build system to IDEs is something I always miss when I work in .Net.)
- neonsunset 2y ago“Contrary to us”? I can’t agree with this attitude. .NET maintains excellent backwards compatibility, C# and F# even more so. The changes either affect frameworks and libraries, which you can often update independently or are easily addressed. Most projects since .NET 5 only ever had to bump the target version and rebuild to move forward (notable exception: in .NET 6 ASP.NET Core introduced simplified API for application setup which required changes). Neither JVM nor Go have the degree of low-level capabilities .NET provides first-class support for. And F# integrates in an easier way into existing C# solutions than Kotlin does into Java ones. It is the GC-based Rust alternative many are looking for but are overlooking due to bias from the past.
- riwsky 2y agoAre we just ignoring when they invited Philip “Featherweight Java” Wadler to help them design Go generics? https://arxiv.org/abs/2005.11710 https://arxiv.org/abs/2005.11710 Or that Robert Griesemer literally is a language PhD, whose thesis was supervised by a little fellow by the name of “Niklaus Wirth”? https://www.research-collection.ethz.ch/handle/20.500.11850/141363?show=full https://www.research-collection.ethz.ch/handle/20.500.11850/...
- pjmlp 2y agoNo, but that isn't what Rob Pike meant, that was the Go design team accepting they alone weren't capable to implement generics in Go, without help from those PhD folks.