rigoletto@
Developer
C Is Not a Low-level Language
Your computer is not a fast PDP-11.
Thanks @debdrup who posted the link on IRC.
Your computer is not a fast PDP-11.
Thanks @debdrup who posted the link on IRC.
Because, something that is more logically tuned to the hardware would be able to do any process more efficiently based on the hardware's specifications.The actual question is about "serial" and "parallel" programs: most likely it is true that the modern processors are designed to perform better by executing parallel tasks. Imagine if you run just a regular single-threaded C program: why you would need all those multi-core hyper-threaded CPU with complex pipelines etc?
[BGCOLOR=transparent][/BGCOLOR][BGCOLOR=transparent]I found that C is pretty awkward (and more importantly, unsafe) when it comes to writing parallel code.[/BGCOLOR]
[BGCOLOR=transparent][/BGCOLOR][BGCOLOR=transparent]At least with the popularity of C we have a shed-load of debugging tools for parallel code.[/BGCOLOR]
[BGCOLOR=transparent][/BGCOLOR]... [BGCOLOR=transparent]Isn't that a garbage collected Java JVM frontend? I cannot see how that can map to hardware any better.[/BGCOLOR]
[BGCOLOR=transparent][/BGCOLOR][BGCOLOR=transparent]Sure, it might apparently make dealing with lots of threads pretty easy but interacting with the hardware (i.e for an OS) is not entirely possible in pure JVM (thats why JVM was itself written in C/C++).[/BGCOLOR]
[BGCOLOR=transparent][/BGCOLOR][BGCOLOR=transparent]Perhaps if we cannot correctly "wrangle" parallel programming, we should give up and look for another way to make processors faster. Perhaps this whole parallel thing is Intel's design plateauing.[/BGCOLOR]
And you'd be right. You need a number of atoms to make a component in an IC and they can't get closer than a minimum number of atoms per component. They are reaching that point and, thus, the need for more parallel operations.Perhaps this whole parallel thing is Intel's design plateauing.
I love that. I remember those, too.[BGCOLOR=transparent]In the late 90s and early 00s we had various Java CPU and Java OS, which all executed Java natively. That turned out to be a really dumb idea, and a great waste of money. But amusing.[/BGCOLOR]
Instead of scrambling around trying to find a library/framework/plugin/someone-else's-code-so-we-don't-have-to-think-for-ourselves. I think they call that software engineering. Or maybe programming.This means that we all need to get better at efficiently and correctly expressing our programs in a way that can be executed on the hardware we'll have.