4 ms·
I always thought it was because both languages were (at least at some point) referred to and advertised as 'systems languages', which naturally invited comparis
by austinz 12y ago
I always thought it was because both languages were (at least at some point) referred to and advertised as 'systems languages', which naturally invited comparisons. However, 'systems' meant different things for each language.
For Go, 'systems' as in the sense of software running on servers providing services to user applications.
For Rust, 'systems' as in the sense of (http://en.wikipedia.org/wiki/System_programming_language http://en.wikipedia.org/wiki/System_programming_language) - software such as OSes, device drivers, etc.
Just for fun, Swift is advertised as a systems language as well. In its defense, it does have facilities for bypassing the preferred way of managing memory (ARC) and working with memory directly.
- krenoten 12y agoThis has indeed encouraged much comparison: there is simply a large overlap in the communities that may be inclined to use either. There was a discussion between the authors of C++, Rust, D, and Go in which the topic of what a "systems programming language" even is is brought into question. Rob Pike, speaking on Go's behalf, mentioned that while "systems programming" was originally advertised as a goal of Go, it has since been dropped from the list, due to the expectations that others have when they read that compared to the intent of the drivers of the language. Here's a video of that talk, if you're curious: http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2014/Panel-Systems-Programming-Languages-in-2014-and-Beyond http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2014/Pan...
- mseepgood 12y agoFunny, according to Alexandrescu's definition it is a "systems programming language", after all. Go's memory allocator, garbage collector and runtime are written in Go itself.
- FeeTinesAMady 12y agoI think that if Python can be considered a "systems" language according to somebody's definition, that definition is pretty flawed.
- NateDad 12y agoThe point is that what constitutes a "system" is not well defined and/or there are multiple conflicting definitions. I was sad to see rust billing itself as a systems language so prominently, given that it doesn't really mean anything.
- pcwalton 12y agoIt's a simple term that, in Rust's case, encompasses all of "bare metal; zero-cost abstractions; no runtime; all language primitives map to simple hardware instructions". I don't see any better word for it. Do you?
- NateDad 12y agoThat sounds like most of what people mean when they say a low level language, though I admit that the term comes with its own baggage about the simplicity of the language (which doesn't apply to rust). I guess I think the sentence you wrote above is just a lot more clear than calling it a systems language and hoping people know what you mean.