Remix.run Logo
vernrVingingIt 4 days ago

[flagged]

rcbdev 4 days ago | parent | next [-]

This sounds like the exact kind of profound pseudo-enlightenment that one gets from psychedelics. Of course, it's all electrons in the end.

Trying to create a secure, reliable and scalable system that enables many people to work on one code base, share their code around with others and at the end of the day coordinate this dance of electrons across multiple computers, that's where all of these 'useless' layers of abstraction become absolutely necessary.

vernrVingingIt 4 days ago | parent | next [-]

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 4 days ago | parent | next [-]

> 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 4 days ago | parent [-]

Well 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 4 days ago | parent [-]

>> 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 4 days ago | parent [-]

I meant they aren't sticking with obligation to software history.

Of course they have not dumped their own methods.

kridsdale3 4 days ago | parent | prev [-]

Okay.

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.

jodrellblank 4 days ago | parent | next [-]

> "Why are we wasting so much time on abstractions like .. objects?"

Aside: earlier this year Casey Muratori did a 2.5 hour conference talk on this topic - why we are using objects in the way they are implemented in C++ et al with class hierarchies and inheritance and objects representing individual entities? "The Big OOPs: anatomy of a 35 year mistake"[1].

He traces programming history back to Stroustrup learning from Simula and Kirstan Nygaard, back to C.A.R. Hoare's paper on records, back to the Algol 68 design committee, back to Douglas T. Ross's work in the 1950's. From Ross at MIT in 1960 to Ivan Sutherland working on Sketchpad at MIT in 1963, and both chains influencing Alan Kay and Smalltalk. Where the different ideas in OOP came from, how they came together through which programming languages, who was working on what, and when, and why. It's interesting.

[1] https://www.youtube.com/watch?v=wo84LFzx5nI

igouy 3 days ago | parent [-]

The previous HN comments are interesting.

https://news.ycombinator.com/item?id=44612313

jjmarr 4 days ago | parent | prev | next [-]

Embedded 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 4 days ago | parent [-]

You 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 4 days ago | parent [-]

Sure. 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.

jcgl 4 days ago | parent | next [-]

> The hang up here is SWEs belief those abstractions must be stored as some syntax they know

What does it matter how it's "stored"? I think (hope?) that most SWEs know that that syntax and its semantic aren't how things work on the metal. Storage format of the syntax seems pretty irrelevant. And surely you're not suggesting that SWEs should be using a syntax and semantics that they...don't know.

So what's the better, non-traditional-software notation? Your conceptualization does sound genuinely intriguing.

However, it seems like it would by necessity be non-portable across architectures (or even architecture revisions). And I take it as given that portable software is a desirable thing.

baq 3 days ago | parent | prev [-]

> The hang up here is SWEs belief those abstractions must be stored as some syntax they know

Contracts need to be written down to be effectively enforced. We don’t like a he said she said in software, right?

vernrVingingIt 4 days ago | parent | prev | next [-]

Easy; endlessly big little numbers. "Endless" until the machine runs out of real memory addresses anyway.

You all really think engineers at Samsung, nVidia, etc whose job it is to generalize software into mathematical models have not considered this?

We need a layer of abstraction, not Ruby, Python, Elixir, Rails, Perl, Linux, Windows, etc, ad nauseum, ad infinitum... each with unique and computationally expensive (energy wasting) parsing, serializing and deserializing rules.

Mitigation of climate change is a general concern for the species. Specific concerns of software developers who will die someday anyway get to take a back seat for a change.

Yes AI uses a lot of electricity but so does traditional SaaS.

Traditional SaaS will eventually be replaced with more efficient automated systems. We're in a transition period.

It's computationally efficient to just use geometry[1], which given enough memory, can be shaped to avoid collisions you are concerned with.

Your only real concern is obvious self selection driven social conservatism. "Don't disrupt me ...of all people... bro!"

[1] https://iopscience.iop.org/article/10.1088/1742-6596/2987/1/...

vlowther 4 days ago | parent | prev | next [-]

DOS, early Windows, and early MacOS worked more or less exactly that way. Somehow, we all survived.

kalleboo 4 days ago | parent | next [-]

Apple nearly didn't survive until they bought a company that made an OS that didn't work that way.

baq 3 days ago | parent | prev [-]

MS Word had to be rewritten from ~scratch to get rid of a document losing crash. Yes, we survived, but at what cost?

switchbak 4 days ago | parent | prev [-]

Engineers value different things. It's why I loathe to maintain engineer-written code.

Let the downvotes commence!

repeekad 4 days ago | parent | prev | next [-]

> pseudo-enlightenment one gets from psychedelics

I like that, I’ve also heard it referred to as “unearned wisdom”

vernrVingingIt 4 days ago | parent [-]

You all really believe PhDs and principle hardware engineers at Samsung, nVidia, etc have not worked around any abstract problem you all can come up with?

We need a layer of abstraction not endless layers.

Nothing says unearned wisdom than script kiddies who intentionally had money thrown at them to reinforce belief their mastery of RoR CRUD app dev is genius beyond all comprehension. Zomg you know Linux admin? Here's $10 million dollars!

This thread is nothing but appeals to banal social conservatism. The disruptors on the verge of being the disrupted lashing out; wait, I was the job killer! Now you say my job is dead! So unfair!

Us hardware engineers been having a good laugh at SWEs easily manipulated the last 20 years by Wall Street hype of copy-paste SaaS products constantly reimplemented in the latest JS framework.

Throwing money at you all was intentional manipulation of primate biology. Juice your egos, get you to fall in line with desired agency control goals of the political and old money cohort.

switchbak 4 days ago | parent [-]

The way you make such broad assumptions and jump right into highly charged politics with nary a connection really does make me wonder about your emotional well being.

vernrVingingIt 4 days ago | parent [-]

You don't see the connection because you weren't invited to participate in numerous discussions where these connections are made explicitly via detailed analysis.

I have more to do than refresh HN all day, going for brevity here.

Your expectation others must explicitly connect all the dots for you makes me question your grasp of reality. Most people alive are going about their lives unconcerned with your existence altogether.

"Highly charged politics". Relative emotional opinion.

vernrVingingIt 4 days ago | parent | prev [-]

[dead]

iwontberude 4 days ago | parent | prev | next [-]

And here I thought people just used computers for the heat

stephen_cagle 4 days ago | parent | prev | next [-]

I honestly can't tell if you are speaking in metaphor or literally?

whattheheckheck 4 days ago | parent | prev | next [-]

What process / path do you take to get to such an enlightened state? Like books or experience or anything more about this please?

vernrVingingIt 4 days ago | parent [-]

Bachelors in electrical engineering, masters in math; elastic structures applied to modeling electrical systems.

Started career in late 90s designing boards for telecom companies network backbones.

nanomonkey 4 days ago | parent | prev [-]

There are some contradictory claims here.

Boilerplate comes when your language doesn't have affordances, you get around this with /abstraction/ which leads to DSLs (Domain Specific Languages).

Matrix math is generally done on more than raw bits provided by digital circuits. Simple things like numbers require some amount of abstraction and indirection (pointers to memory addresses that begin arrays).

My point is yes, we've gotten ourselves in a complicated tar pit, but it's not because there wasn't a simpler solution lower in the stack.