Live data from Hacker News

We have used too many levels of abstractions

unixsheikh.com

461–470 of 564 posts

Re: We have used too many levels of abstractions

#461

Earlier quoted context omitted.

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.

And cab drivers must still understand automobile manufacturing?

Re: We have used too many levels of abstractions

#462

Earlier quoted context omitted.

The Co-pilot of Air France 447 could fit that description. He went to fly highly automated Airbus planes as soon as possible, which means only 250 hours on different types. He didn't had a proper understanding of how stalls worked, since Airbus automation makes it almost impossible to stall the plane, unless something goes horribly wrong and it reverts to manual law, which is what happened in that flight. When the ca…

Sure, but that was an exceptional situation, not some sort of systemic problem. It’s also relatively easy to guard against in future.

well but it is very difficult to guard against all exceptional situation requiring some basic aviation skills. i think the point made is that you can fix leaks one by one, which takes a very long time, or you can know the abstraction layer below.

fixing one leak and assuming there isn’t any other is not the right strategy, is my point.

Re: We have used too many levels of abstractions

#463

The other thing is that we've adopted the wrong abstractions on many occasions. Today, in the software industry, we have an arrogant mono-culture which believes that we're at the end of history and have figured it all out... But in fact, I believe we've gone down the wrong path with many more recent tech. I feel like everything was moving on the right direction until around 2014... Then it's like progress started goi…

Most likely, your framework Is productive for you not because it’s the best framework available, but because you wrote it and know the ins and outs of it and it matches up to how you think. This isn’t too day it’s not likely better than other frameworks in at least some ways, but familiarity begets expertise which begets productivity. Many experts in drywall installation before drywall screws were popularized swear t…

> Many experts in drywall installation before drywall screws were popularized swear that screws are slower and worse.

Screws are superior as an end product. Old houses will tell you that with the amount of creaking and slop that builds up with nails.

But there are videos floating around about the expertise of some old nail drywall experts. Holy smokes it could be fast. They are probably right about the speed.

Re: We have used too many levels of abstractions

#464
post #452

Earlier quoted context omitted.

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.

> Most are overpaid API monkeys. I think that's a highly dismissive and ignorant view of what software development, as a value-creation endeavor, actually is. The responsibility of a software engineer is not mapping high-level constructs to low-level details. The responsibility of a software development engineer is to implement systems that meets the business requirements, and operate on those systems at the abstract…

The only one purpose of software is: automation. The degree to which a software developer strives towards that one purpose determines their employer’s return on investment completely irrespective of the business requirements. Unnecessary abstractions exist not to simplify any return on investment but to ease candidate selection from amongst a pool of otherwise unqualified or incapable candidates.

Re: We have used too many levels of abstractions

#465

The other thing is that we've adopted the wrong abstractions on many occasions. Today, in the software industry, we have an arrogant mono-culture which believes that we're at the end of history and have figured it all out... But in fact, I believe we've gone down the wrong path with many more recent tech. I feel like everything was moving on the right direction until around 2014... Then it's like progress started goi…

Most likely, your framework Is productive for you not because it’s the best framework available, but because you wrote it and know the ins and outs of it and it matches up to how you think. This isn’t too day it’s not likely better than other frameworks in at least some ways, but familiarity begets expertise which begets productivity. Many experts in drywall installation before drywall screws were popularized swear t…

And the ability to focus on just aspects that are relevant. That simplifies the problem immensely.

I look at the current situation of UIs in Rust, every one of which is unappealing, and think I could build my own. The basic structure and paradigm is so simple! Then, I think... Unicode support. Right-to-left text display. Affordance for text readers.

All very important, but things I could ignore for myself, but not in a publicly shared library. And... ugh. Either I would have to spend years figuring that stuff out, or pull in a number of other libraries which adds layers of abstraction and complication. So I fire up Civ 6 instead.

Re: We have used too many levels of abstractions

#466

Earlier quoted context omitted.

I don’t understand how front end devs can get so far without learning how to use the developer tool console now standard in every major browser. How can one not learn about a POST vs GET when things like request caching and back button complications are a reality? I hit these issues as a senior backend dev fumbling around with front end so many years ago so I have a hard time understanding how that isn’t even close t…

Too much trial and error and throwing everything they know at it until it gets close enough to the desired look. I have one co-worker that has taken off after I showed him how to use dev tools and another that's still trying to guess their way through the problem after showing them how to use dev tools.

I’ll never forget the time a network engineer escalated a ticket of his to me on the infrastructure side (think L4+ support) that a developer threw his way saying that his web pages were loading really slowly and that this was a high priority, high urgency project. I asked how they came to the conclusion that it was something related to the cloud infrastructure rather than something else? They said the developer didn’t really know besides to ask “network people.” So I get on a webex with the parties where even a VP is on there because his product launch is on the hook and then I ask the developer to open developer tools to which he responded “what’s that?” I think I had to mute myself for a bit while I screamed for a while that this was what qualified one to be a senior front end engineer at the company. So I stepped through and got the network transfer chart and pinpointed that all traffic was coming through quickly except there was a big initial delay while doing DNS look-ups that was super slow to get the first byte. The network engineer on the call was stunned that such a thing existed and thanked me for saving him a ton of grief because he got a LOT of ticket like this one.

This wasn’t in like 2010 when Firebug was just coming out and people still used Firefox as a rule, this was like 2015 when dev tools was in every shipping browser approved for corporate use by a technology laggard company.

So the moral of the story is just blame DNS first.

Re: We have used too many levels of abstractions

#467
post #48

In other words, cargo cult programming. I wrote about this two years ago [1] and received only polarised responses that either agreed with the point wholeheartedly, or attacked me viciously for gatekeeping. I wish there was a better way to cure this disease without triggering the professional immune systems of engineers who are highly vested in their favourite technologies. [1] https://medium.com/the-engineering-mana…

I read your blog post in order to understand why you might be getting negative reactions. You are coming across off as combative and arrogant. It feels like you are quizzing people on details in order to show you know more than them.

Re: We have used too many levels of abstractions

#468
post #457
post #412

Earlier quoted context omitted.

Tell that to the passengers of those 737 MAX flights where the pilots did not know how to disable the failing AoA correction... I wouldn't bet that most pilots know more about how the planes they fly work than software devs know about their computers. For one, most planes today rely heavily on computers. Do they teach electronics in "aviation"?

As I understand it, the 737 MAX issue was not because the pilots didn't know how their plane worked, but because they were lied to about a feature that was installed to try to reduce costs. Had they been told it was there, no the outcomes could well have been different.

Not sure I understand your point. I read "it's not that they did not know how to disable the feature, it's just that they were not told how to disable the feature".

Or are you saying that they knew, but somehow did not do it?

Re: We have used too many levels of abstractions

#469
post #457
post #412

Earlier quoted context omitted.

Tell that to the passengers of those 737 MAX flights where the pilots did not know how to disable the failing AoA correction... I wouldn't bet that most pilots know more about how the planes they fly work than software devs know about their computers. For one, most planes today rely heavily on computers. Do they teach electronics in "aviation"?

As I understand it, the 737 MAX issue was not because the pilots didn't know how their plane worked, but because they were lied to about a feature that was installed to try to reduce costs. Had they been told it was there, no the outcomes could well have been different.

Although the pilots cannot be blamed for not understanding the undocumented controls of the 737, one (multiple?) incident(s) were mitigated due to very experienced pilots understanding the fundamentals of the plane. Think of the pilot knowledge as a second line of defense, against an incident that should have never happened (again - not the pilots fault, but the additional knowledge helped).

I recommend reading “Flying Blind” for more detailed accounts of the precursor lion air flight that almost crashed.

Re: We have used too many levels of abstractions

#470
post #139

> Power steering is yet another level of abstraction that further improves the driving experience. I am a pretty firm believer that antilock brakes are a bad abstraction that might cause fewer accidents, but often more dangerous accidents than they prevent. They avoid a class of accident caused by the brake’s locking limiting your ability to steer. They cause a whole class of accidents where you hit things at a highe…

Even a racing driver can't beat ABS in a controlled setting.[1] Imagine a regular driver trying to brake in an emergency situation.

[1] https://youtu.be/ERE9EtOWZMU?si=s35N-IzuyPLuEoKD

Post reply on HN