I'm being tongue in cheek here, please do not read too much into this.
I'm being tongue in cheek here, please do not read too much into this.
I think he'd just prefer to keep using C but I could be wrong. It feels like he is definitely married to C. If there was another language I felt he would adopt, it would of been Go had Go not adopted a GC.
You can learn the standard libraries of both and 10 years later they still are mostly the same. It is pretty commendable.
I don't get your comparison. Go is much lower level than Haskell, even with a GC.
No, it isn’t. Can you actually show me anything that would imply that? Haskell can use pointers/FFI, etc. just fine. They are on the exact same level, the same way as countless other languages including C# and D.
To me it's not language features, but which "abstraction level" you operate in, and how far removed it is from how a CPU actually works. In Go or C, it's for loops and manual type conversions, in C# you have stuff like Linq, in Haskell you operate on monads and functors. So, compared to all of those, Haskell is much higher level than C# or C. I'd say even higher than Erlang, which doesn't have pointers.
Imagine an assembler language with a GC. If such an abomination existed, I would consider it to be lower level than C, because you're still closer to the machine, even if memory allocation is done for you.
A more objective definition could be what is available to the programmer to control. Here, assembly is on the lowest level, C/C++/Rust on a higher one (with the difference in them being expressivity), and Js, Java, Haskell being even higher. In theory, you can do everything in a lower level language than what is possible in a higher level one, so you get an easy Litmus test to decide (and thus C++ and Rust are actually lower level than C, because they have language-level simd support)
Yeah, Linus doesn't like C++ because of the abstractions and complexity, which Rust doesn't save us from. He'd rather have a less secure but simpler (and more widespread) language. That said, it's great of him to stay open minded and opening the doors to Rust in the mainline tree.
Performance/reliability issues caused by programmers can be found and rectified. Performance issues caused by compilers may not be replicable even between builds.