3 ms·
Explain this. I'm not disagreeing or challenging you. This is interesting and I'd be curious to hear more. What happens at the gate level that makes language-le
by michaelochurch 13y ago
Explain this. I'm not disagreeing or challenging you. This is interesting and I'd be curious to hear more. What happens at the gate level that makes language-level concerns less interesting?
To me, I think that low-level and high-level computing are fundamentally different in terms of their concerns. You can get multiplier-type effects with successes at the low level (if you're really expert) and that's what pushes Moore's Law, innovations in GPU technology, etc. However, making computers useful to other people (including programmers who, working day-to-day, can't possibly understand all the moving parts) involves an entirely separate set of concerns.
What I think is "just window dressing" is a lot of the business mediocrity that gets dressed up as "scaling" or actual computer science (to the ignorant). The Business tends to overvalue parochial, shallow, and not very transferrable knowledge while undervaluing genuine computer science (much less mathematics). But there is junk at the low (make some mediocre product built with shitty technology 10% faster) and high (business bikeshedding) levels of abstraction.
- gpcz 13y agoWhat I believe low-level computing teaches you is that fundamental computation hasn't changed (architectural or system-level) for decades. We've had Lisp (and its associated software improvements) since the late 50s, protected memory and multitasking since the late 60s (OS/360), virtualization and security since the early 70s (VM/CMS, Bell–LaPadula Model), GUIs/networking since at least the mid-70s (Xerox PARC), and formal computer security models since the mid-80s (Rainbow series). In the last few decades we've seen some dramatic improvements in semiconductor miniaturization, a couple architectural improvements (just off the top of my head, ASLR, W^X, and the Pentium's RISC-to-CISC design, though there are some others), and then mostly a lot of integration (computer+phone, computer+car, computer+plane, etc) and software craftsmanship based on principles developed decades ago. I'm not knocking craftsmanship (we all pay the bills practicing it), but due to design decisions made decades ago (such as the security nightmare that is Von Neumann architecture) we base software quality on how few mistakes individual artisans make rather than design systems that prevent artisans from making mistakes.
- michaelochurch 13y agoThanks. That's an excellent reply. What alternatives to the Von Neumann architecture would you want to see, and what are the major differences? Why do you think VN machines "won", given their deficiencies?
- gpcz 13y agoThere are two major competitors to the Von Neumann architecture, and then a few speculative ones. The most popular one is Harvard architecture, where code and data are in separate memories (improves security and performance, but makes loading code difficult). Most modern processors operate like a Harvard architecture machine when they are running directly from cache, but they act like Von Neumann machines when they have access to RAM. This means that they get some of the performance benefits, but you need hacky things like W^X to get (partially) the security benefits. The other one is dataflow architecture, which involves representing programs as a digraph where nodes represent instructions. Data flows through edges from one instruction to the next non-deterministically. This was popular research material in the late 70s and early 80s, but there were efficiency concerns. IBM (and Von Neumann) also dabbled with making computers that resembled neural networks, but VN passed away before he could dedicate a lot of time to it. AFAIK IBM's neural computer is still in research phase. I'd say Von Neumann machines "won" for a few reasons. First, Von Neumann consulted for IBM in the department that developed their first commercially-sold computers, so he got a lot of creative control. Second, as Hennessey and Patterson wrote in Computer Architecture: A Quantitative Approach, advocates of Von Neumann computers regarded HA machines as reactionary, implying there was even some religion back then. Third, Von Neumann architecture machines are significantly easier to load programs into. My guess is that a combination of business/political concerns on IBM's part in the 50s and 60s combined with momentum and switching costs is the main reason VN machines continue to win.