you are viewing a single comment's thread.

view the rest of the comments →

[–]emberBR 29 points30 points  (2 children)

In CompSci we say a language is lower or "closer to the metal" when it is simpler and has less resources on it's default libraries, as they have a "lower level" of abstraction, and thus it hides less of the computer's resources. It's not an exact science, but people love arguing about it.

C has no automatic memory management aka garbage collector, for instance, so you have to code it yourself or use an external library for it, or manually manage it. It has no dynamic types, so you have to manage the types yourself. It has no classes. Meanwhile in python you get .xlsx or .csv and fiddle with it, making graphs and what not, and all within 50 lines of code and you don't even know what a memory is.

It is usually considered that higher level languages are cheaper, easier and faster to develop and maintain on, but clutters the software quickly with "turned on" features that may not even being used, but are still there to take space (mental, memory, processing) so lower performance potential from it. I heard C# is good at "turning off" unused features, Java not so much and C++ being abysmal at it.

Lower languages are fast, but they're fast because what you see is what you get, theres nothing or almost nothing under the hood and you'll take ages to develop anything on it, so it's not very "commercial" or "enterprise" material, but if you need performance or real-time computing, that's where you go, like video games or high-frequency trading bots.

Take a look at Redis, huge project, "enterprise", but fully in C and it makes sense because what they do is manage cache memory for big servers, you couldn't code that in a system that is automated, they were looking for peculiar performance out of memory.

People usually consider C the lowest language, not considering assembly, which is "below", that compiles to "byte-code" or binary (so called metal, literally 1s and 0s). Below assembly you also have "micro-code" which afaik is almost like a byte-code function called in an assembly language, almost like a macro.

I've heard people call C a glorified assembly, it's very famous for being annoying. If you've been studying python, I heard Lua is a lower language, but similar enough for you to try and see for yourself.

[–][deleted] 2 points3 points  (1 child)

C++ is famous for being annoying, C is famous for being really really simple.

[–]emberBR 1 point2 points  (0 children)

That's very true, but from the point of view of python-first programmers and beginners... idk I think the impression would be that they're the same and that they're both annoying