3 ms·
Try almost 30 years in electrical engineering. I know exactly what those layers of abstraction are used for. Why so many? Jobs making layers of abstraction. B
by vernrVingingIt 10mo ago
Try almost 30 years in electrical engineering.
I know exactly what those layers of abstraction are used for. Why so many? Jobs making layers of abstraction.
But all of them are dev friendly means of modeling memory states for the CPU to watch and transform just so. They can all be compressed into a generic and generalized set of mathematical functions ridding ourselves of the various parser rules to manage each bespoke syntax inherent to each DSL, layers of framework.
- nkohari 10mo ago> I know exactly what those layers of abstraction are used for. Why so many? Jobs making layers of abstraction. This is a perfect example of Chesterson's Fence. Is it true that there are too many levels of abstraction, that YAML configuration files are a pain in the ass, and so on? Yes. But it's because this stuff was created organically, by thousands of people, over decades of time, and it isn't feasible to just start over from first principles. I don't know enough about electrical engineering to speak to it (funny how that works!) but I'm sure there are plenty of cases in EE that just come down to "that's how it's been done forever".
- vernrVingingIt 10mo agoWell starting over from first principles is exactly what the chip design and manufacture industry is doing. We also cannot afford, in non-finance terms, to burn all the resources on conservation of the existing software mess. Automation is making it pretty easy to generalize all the abstraction into math automatically to inform how to evolve the manufacturing process. Using American principles against Americans, it would run afoul of American free speech and agency ideals to dictate chip makers only engage in speech and agency that benefits software engineers. Was in the room 25 years ago being instructed to help offshore hardware manufacturing as it was realized keeping such knowledge and informed workers domestic posed an existential threat to copyright cartels and media censorship interests. It's a long term goal that was set aside during the ZIRP era as everyone was happy making money hand over fist. Guess you all should have paid more attention to politics than believe since it only exists as a socialized theory it isn't real and can safely be ignored. Americans make up a small portion of the 8 billion humans, and software engineers are an even smaller percent of the population. Other nations have rebuilt since the US bombed them to hell. They're not beholden to kowtow to a minority of the overall population. Would recommend you set aside thinking in abstract philosophy puzzles and relate to world via its real physical properties.
- nec4b 10mo ago>> Well starting over from first principles is exactly what the chip design and manufacture industry is doing. No, there are thousands of hardware libraries (HDLs, IP cores, Standard cell libs) which chip designers use. Hardly anyone builds chips from first principles. They are using same layers of abstractions as software does.
- vernrVingingIt 10mo agoI meant they aren't sticking with obligation to software history. Of course they have not dumped their own methods.
- kridsdale3 10mo agoOkay. Go write an operating system and suite of apps with global memory and no protections. Why are we wasting so much time on abstractions like processes and objects? Just let let everyone read and write from the giant turing machine.
- jjmarr 10mo agoEmbedded systems that EEs code for are like this. I have to explicitly opt into processes and objects in Keil RTX. I also get to control memory layout. Abstraction layers are terrible when you need to understand 100% of the code at all times. Doesn't mean they're not useful. Heck, the language for just implementing mathematical rules about system behaviour into code exists. It's called Matlab Simulink.
- nec4b 10mo agoYou are comparing a personal computer with a general purpose OS running 100s of processes and 1000s threads with a small micro-controller with a single process compiled together with an OS running at most a couple of threads. My PC has 100s of apps that need to coexist on the same hardware at the same time, your micro-controller only runs 1 designated app for eternity.
- vernrVingingIt 10mo agoSure. The hang up here is SWEs belief those abstractions must be stored as some syntax they know; C, Python, RoR, Linux, Elixir... whatever. There is zero obligation to capture the concept of memory safety in traditional software notation. If it was possible to look inside the hardware at runtime no one is going to see Rust syntax. At runtime it's more appropriate to think of it as geometric functions redrawing electrical state geometrically to avoid collisions. And that's where future chip and system state management are headed. Away from arbitrary syntax constructs with computational expensive parsing rules of the past towards a more efficient geometric functions abstraction embedded in the machine.
- 10mo ago