Live data from Hacker News

We have used too many levels of abstractions

unixsheikh.com

281–290 of 564 posts

Re: We have used too many levels of abstractions

#281

One cause I've seen of this is the "college is not needed to be a coder" trend from the past few years (decade?). it is true that most of my skills were acquired after college, but there is some sort of global system understanding that you get from college (in my case computer+software+network engineering) where you can quickly narrow down potential sources of a problem, all the way down to say, the TCP/IP stack, CPU…

Given the push toward FP principles in JS, it’s become much easier to mete through library code since now we don’t have to assume some reference is getting clobbered somewhere, and we’re not monkey patching some base library. Those were the bad ol days of browser disparity and (let’s face it) IE.

Now, not all libraries are built with modern principles, but I’ve found digging through the source is not nearly as onerous as it used to be (as long as you avoid tooling like yarn PnP, which basically undermines your entire ability to inspect library code just so you can… avoid unzipping archives?)

Re: We have used too many levels of abstractions

#282

I think there is one interesting angle to this problem. I am someone who grew up with the technology, as the levels of abstractions were being added. I am now benefiting from all those accumulated decades of knowledge. As the IT / development world was changing, I had enormous privilege and comfort to learn the things at the pace they were happening. Being able to assimilate changes over long decades. Be a witness to…

I have that knowledge but don’t know how to monetize it. Kids are coming out of school with 5 YOE and making double my salary with almost 30 YOE. And they ONLY know how to do React.

Re: We have used too many levels of abstractions

#284

I think there is one interesting angle to this problem. I am someone who grew up with the technology, as the levels of abstractions were being added. I am now benefiting from all those accumulated decades of knowledge. As the IT / development world was changing, I had enormous privilege and comfort to learn the things at the pace they were happening. Being able to assimilate changes over long decades. Be a witness to…

Completely agreed.

For example, I am NOT a cloud expert, and barely a novice, by any measure. When dealing with various CloudOps/Cloud Architect/etc types, without fail, the good ones are also complete Linux gurus who would be at home architecting on-prem infrastructure as well.

Unfortunately there are a lot of "experts" who are only comfortable working in abstraction and so as soon as we have an issue that scratches below the surface, it turns into an all-hands-on-deck mayday situation, looping in other teams/experts to try and save them.

I've also seen horrific implementations by abstraction enjoyers.

Imagine a continuous integration environment of the following - k8s where one pod simply runs a forever shell script that is basically "git checkout master;git pull; sleep 300;". Then the other pod actually runs the application on top of the shared storage that the first pod writes to. This script, unsurprisingly, fails silently and hangs frequently. To debug this you need to go through some cloud auth portal and click through some web UI to then open a console in your browser (which doesn't support copy/paste).

The idiot version of doing this on-prem would be a single small VM that has a cron running every 5 minutes, which invokes your deployment script, with cron configured to email on failure. This would be simpler, more reliable (not relying on a forever script), and more supportable (it emails on fail!). And it uses like 30 year old tech that just fkn works.

Re: We have used too many levels of abstractions

#285

There was a point in the history of aviation where anyone who could fly a plane was also capable of constructing and designing one. I wonder if there were similar concerns at that time about a future where someone could be in a cockpit of a plane without truly understanding how the machine works from first principles? Today that type of concern would seem absurd, and we've gotten used to the idea that flying a plane…

The problem is that it takes a really long time until technology is so good and so reliable that you really don't need to understand it to be able to operate it. Take, for instance, the "Yes, let's all go back to coding in assembly!" line -- The thing is: For a really really long time after high-level languages had become mainstream, you really did still have to know assembly to be a programmer, even if you did most…

Pilots must still understand how planes work. That’s called aviation. Most software devs have absolutely no idea how their software platform works. Most are overpaid API monkeys.

Re: We have used too many levels of abstractions

#286

I think there is one interesting angle to this problem. I am someone who grew up with the technology, as the levels of abstractions were being added. I am now benefiting from all those accumulated decades of knowledge. As the IT / development world was changing, I had enormous privilege and comfort to learn the things at the pace they were happening. Being able to assimilate changes over long decades. Be a witness to…

Where do we draw the line though? Surely those proficient in low level programming languages don't then need to become proficient in building motherboards from scratch?

I think that, at the very least, there's a huge benefit in having a bit of understanding one abstraction down from everything you interact with. Knowing what an abstraction is abstracting, and why, goes a long way in coexisting with that abstraction. A low-level programmer doesn't need to actually build motherboards from scratch, but they'd probably benefit a lot from a bit of understanding about processor caches, registers, and bus latencies.

Re: We have used too many levels of abstractions

#287

There was a point in the history of aviation where anyone who could fly a plane was also capable of constructing and designing one. I wonder if there were similar concerns at that time about a future where someone could be in a cockpit of a plane without truly understanding how the machine works from first principles? Today that type of concern would seem absurd, and we've gotten used to the idea that flying a plane…

[deleted]

Re: We have used too many levels of abstractions

#288
post #164

Earlier quoted context omitted.

Analogue electronics design has been almost entirely replaced by digital micro-controllers to the point that finding old-school electrical engineers that can design non-digital circuits is becoming a challenge.

Is this really true? Many aspects of analogue design are still relevant imo. Actual IC design (VLSI etc) is still a purely analogue field and all digital technology is fundamentally analogue at its core.

I believe parent is referring to design at the PCBA level, where this is mostly true outside of military/government designers who lag.

The reality in that sphere is there is little reason to limit oneself to the constraint of expertise in analog circuit designs when one can achieve the same functional outcome digitally, and use those skills more broadly.

Only where component sourcing is artificially limited, or risks of digital operation sufficiently large, and where the job market will support it, does it make sense to proceed in growing in analog circuit design expertise.

Meanwhile these designs are nearly all being functionally lapped by those in general industry, which participates in all the accelerating gains of digital technologies.

Re: We have used too many levels of abstractions

#290
I’ve seen what happens many times when the abstraction fails, and people don’t understand the guts. The people who know the abstraction replace it with something based in the concrete, but without the middle layer, and which resembles the abstraction.

The abstraction becomes real.

Post reply on HN