5 ms·
It is a systems language. The competitors are c, c++, go, and D. Within Microsoft it's just c and c++. Competition with Java is irrelevant, c# already occup
by sjs1234 13y ago
It is a systems language. The competitors are c, c++, go, and D. Within Microsoft it's just c and c++. Competition with Java is irrelevant, c# already occupies that space. Microsoft has enough need and scale that a systems language that picks up internal use is justified. The use case is making platforms, not crossing them.
- catnaroek 13y agoGo, a systems language? I would not be so sure. Stop-the-world garbage collection and dynamically typed interfaces seem like a poor fit for this niche.
- sjs1234 13y agoAck ... I'm largely ignorant of the details of go other than its original positioning. Do the semantics of go constrain gc implementation in such a way that it precludes low latency? Or is it just not a focus of the implementors?
- catnaroek 13y agoAlthough Go has channels for civilized communication between goroutines, the language does not have a native notion of what data is owned by which goroutine, which pretty much forces garbage collection to stop the whole world. This, together with pervasive mutability, means that communication using channels is merely a convention that can easily be circumvented.
- Sssnake 13y ago>I'm largely ignorant of the details of go other than its original positioning It is a faster python with a very primitive type system tacked on. I don't know how they ended up there from their original idea of a systems language, but they did.
- catnaroek 13y ago> It is a faster python with a very primitive type system tacked on. And concurrency primitives in the core language. (In a properly designed language, these could have been made part of the standard library, though.) And worse error-handling facilities than the original Python.