Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Maybe because there was one of the original creators of C behind Go, and Pike is a de facto old school Unix guy? Many people, myself included, thought we'd get C but a little more modern and secure.

I don't get your comparison. Go is much lower level than Haskell, even with a GC.



> 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.


I think we have a different definition of high-level.

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.


I don’t know how objective your definition can be. Is Brainfuck high or low-level? It is quite similar to how a very primitive CPU operates, yet it is quite far from the actual CPU.

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)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: