4 ms·
> This feels like a false comparison to me. When you write ASM you pretty much know what it's going to do. This is because it's an excellent layer of abstracti
by stouset 9y ago
> This feels like a false comparison to me. When you write ASM you pretty much know what it's going to do.
This is because it's an excellent layer of abstraction on top of the machine code which is interpreted by the abstraction of microcode which sends it to the abstraction of a physical processor that's itself just an abstraction on top of transistors that themselves are an abstraction around manipulating voltages on a complex network of circuits.
Nobody bats an eye at these levels of abstraction. And they're not perfect! Modern CPUs have hundreds of errata. Skylake's alone is almost 40 pages long, at 3-4 per page.
But you take them for granted because they're several layers lower than what you have to deal with on a regular basis.
Even your example of adding two registers required compiling through an assembler, scheduling execution by a time-sharing operating system that fakes the concept of running hundreds of parallel processes by rapidly looping through running processes, and on and on and on.
We are awash in a sea of abstractions more deep and complex than even a dozen of the world's best engineers put together could hope to fully understand. And yet people earnestly defend language design decisions that prevent a single function from comparing two values of any arbitrary numeric type as being too complex, when issues like that are less than a hundredth of a hundredth of a hundredth of a percent of the complexity that are modern computers.
- Veedrac 9y agoElectronics Weekly says[1] > “The M0 is a third of the size of the M3 in its minimal configuration,” ARM CPU product manager Dr Dominic Pajak told EW – 12,000 against 43,000 gates. That same page is 2.8MB compressed, the half of which is Javascript decompresses to 2.6MB. Yes, a big OoO core has a lot more to throw around, but the vast majority is spent on tricks to make things go faster. The layers are thinner than you expect, and they're built that way on purpose. The hardware below assembly is a far smaller jump than the browser in the sky. [1]: https://www.electronicsweekly.com/news/products/micros/arms-cortex-m0-processor-how-it-works-2009-03/ https://www.electronicsweekly.com/news/products/micros/arms-...
- stouset 9y agoOver two-thirds of that is ad-related code. The HTML, CSS, and basic Javascript needed to run the site appears to be on the order of < 250KiB. Images obviously bump that number higher. You are not arguing against abstraction. You're arguing against the user-hostile influence of advertising on delivery of content on the web.
- Veedrac 9y agoAnd you think adblockers have a legitimate reason for their codebase to be 3x the size of DOOM? If all this abstraction from the low level C code of DOOM to the high level Javascript-on-the-browser bought us anything, you'd think the abstract one that is solving an easier problem would take less code, not more.
- Veedrac 9y agos/adblockers/adverts and trackers