I'm joining OP's web haters club, if he starts one.
I'm joining OP's web haters club, if he starts one.
Every time I hear a programmer condescend towards other programmers for using a higher level language, I also die a little bit inside.
How is javascript not the "metal" of the web? It's a core part of the modern web experience upon which many libraries and frameworks have been built.
I don't understand why that analogy is bad and is worthy of your condescension.
Are you just being condescending to the entire web paradigm in general?
A language interpreted at runtime, by an application that runs inside an operating system (which may or may not be virtualized) that boots into protected mode. Let me get this straight, you're ostensibly describing this as being "bare metal"?
Have you ever heard the terms "kernel mode" or "ring zero"?
Oh wait, you qualified it as "the 'metal' of the web"... so it's an "analogy". Sorry to be pedantic, but when people say "bare metal" in the context of platform virtualiztion, "bare metal" literally means just that. The executable code is compiled into binary that directly correlates to the copper wires (and etched semi-conductors, or perhaps even vacuum tubes) of the specific, real, tangible machine intended to execute the code. JavaScript is nothing like this.
Maybe the packets and datagrams of transmission protocols are the "bare metal of the web", but JavaScript most certainly is not.
Check out the Communication Systems OSI Model.
http://en.wikipedia.org/wiki/OSI_model
I'd contend that nothing above Layer 4 could be considered analogous to "bare metal".
You do realize it's been a while time since the ostensible instruction set and corresponding assembly language of most modern CPUs translated directly to the bare metal execution model of the machine. http://en.wikipedia.org/wiki/X86#Current_implementations Even on RISCier architectures, virtual memory, deep instruction pipelining, super-scaler dispatch, branch prediction, multi-layer caching, inter-core cache coherency, etc. introduce a huge amount of abstraction between the instruction you write and the actual execution on "bare metal".
On current chips, x86 machine code is as much a virtual machine as java byte-code. It's abstractions all the way down, you just pick different levels for different classes of work and "bare metal" is now just a label for one below where you landed.
I understand what you're trying to say, but this is way off base. x86 instructions may not align exactly a processor's primitive operations, but that doesn't mean abstraction makes x86 similar to the JVM, at least not anymore than it is similar to a Bible printed on papyrus. But nobody cares if ancient Hebrew is just as much a virtual machine as Java, so stfu.
"Sometimes writing markdown feels like working on the bare metalloid"
But! IN THEORY You could still construct a processor out of electromagnetic relays (springs, contacts, leads and solenoids only), if perhaps your goal was to never exceed 100 Hz.
(...at first I was going to point out http://www.bigmessowires.com but it turns out that beyond the wire wrap connections, he's still using modern semi-conductor packages)