Live data from Hacker News

We have used too many levels of abstractions

unixsheikh.com

321–330 of 564 posts

Re: We have used too many levels of abstractions

#321
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…

You asked good questions in that article. It's unfortunate, and I can't help but wonder if we've lost something essential because of how uncommon it is for people to be proud of their abilities, proud of their work, proud of their accomplishments.

In a nutshell, I think people who truly enjoy the satisfaction of doing a thing well are spending more time, generally, trying to truly understand things than those who just want to do their job and be done with it.

But what does that curiosity get us? I can't help but think of this fortune(6), and wonder how many non-curious people would even get it:

    A novice was trying to fix a broken Lisp machine by turning the power
    off and on.  Knight, seeing what the student was doing spoke sternly:
    "You can not fix a machine by just power-cycling it with no
    understanding of what is going wrong."  Knight turned the machine off
    and on.  The machine worked.

Re: We have used too many levels of abstractions

#322

Earlier quoted context omitted.

Not quite the same, but I remember sending emails via telnet. I showed that to a younger dev who was somewhat blown away by the fact it wasn't via some REST API.

When I was at Fog Creek, we still had that as an interview question (with googling allowed). It was a good judge of how most folks approached something they used but didn’t necessarily understand. If the applicant already knew how to do it, that was a different signal as well.

Think ChatGPT would be allowed nowadays? It’d be my source for something so esoteric. I haven’t bothered to learn mail protocols because any message you send will be marked as spam unless it’s from a major provider.

Re: We have used too many levels of abstractions

#323

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…

There will be an increasingly important history component in comp sci., software engineering, infosec, and associated fields. I think this is a place where the IT field has done a bad job and, as a result, we've had unbelievable amounts of "wheel reinvention". I'd love to hear from somebody with experience in scientific or other disciplines and IT who could contrast their fields with ours. I only know that I have had…

A friend of mine (who coincidentally once shared an office with Vernor Vinge...) remarked to me early in my career that CS programs do a terrible job of teaching the history of the discipline. Students end up not knowing the failures (or even the successes!) of the discipline, and so end up rediscovering old new things. Makes a lot of software and systems practice more faddish and hype-driven than it needs to be.

Re: We have used too many levels of abstractions

#324
post #206

Earlier quoted context omitted.

With all due respect, this is some elitist nonsense. Sure, a frontend dev who strictly works on that won’t know much about, say, the OS layer. But they don’t have to, it’s not part of their job in any way. There is no shortage of young people that work on areas that makes them require deep knowledge of many different layers of the stack, it is simply not necessary for every IT-related job. But one can absolutely pick…

It is not elitist to point out the flaws in modern web devs who don't know what an HTTP protocol is and the structure of an HTTP request (headers vs body etc). I interview a lot of them who cannot explain the difference between a form submitted directly vs through Ajax but they surely know how to send a POST request through node/express.

I don’t even know the difference between a form submitted through JS vs a browser. Who cares? Unless there’s a problem, there’s no reason to know such things. And I’ve written http webservers by hand.

People here have way too much confidence in their interview questions being a good signal for experience. It’s pretty wild.

Re: We have used too many levels of abstractions

#325
post #134

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…

Agreed! It reminds me of: https://github.com/alex/what-happens-when and how many of today’s CS-degree holders would barely understand any of it. As someone who has also “grown up with all the technology”, I’ve learned and experienced all that. But as a percentage of “software engineers”, there’s fewer and fewer that do every day.

Unfortunately, knowing all this won't help you get a job when the market demands an army of React devs and little else.

Under our current system, knowledge that cannot be monetized is useless. Worse than useless, in fact, because time spent learning low-level concepts is time that could be spent learning marketable skills.

The industry is effectively paying us all to forget.

Sure, learning the USB stack and differential signaling is fun, but unless my job involves implementing custom USB devices from scratch then it's pointless trivia that won't pay the bills.

Re: We have used too many levels of abstractions

#326

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…

For the last 10 years you have been adding stuff that did nothing but increase the complexity. Now you wonder why new people can't keep up with the complexity.

Re: We have used too many levels of abstractions

#327
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…

Do you know that antilock brakes slow down you faster comparing to car with locked wheels?

I think the point was that anti-lock brakes remove options and make things less safe in certain (not very uncommon) instances.

With anti-lock brakes, you're protected if you've never learned anything and you just try to put the brake pedal to the floor.

If you know how brakes work, you're worse off than if you don't have anti-lock brakes, since you can no longer properly control your brakes. In other words, we're punishing people who learn and know how to do things in order to ostensibly protect people who can't be bothered to learn.

Consider how many people drive with their headlights on, but no other lights. It's because automakers are selling "features", so it feels like we're actively encouraging people to think and pay attention less. Unfortunately, these "automatic" lights aren't truly automatic, and the value of having simple off and on states is lost because of these "features". It's actively unsafe.

Re: We have used too many levels of abstractions

#328

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…

You can actually see this with new frontend devs. They know only full SPA frameworks, they have never seen a dump of an HTTP message, headers and verbs are abstract things to them. Hell, many of them don't know you can have fully functional websites with zero JS, including payment, video, login, etc. I started to write an HTMX tutorial ( https://www.bitecode.dev/p/a-little-taste-of-htmx-part-1 ) because I noticed a l…

You can see this with a "new" ANY dev, because there are only 4 years of college and far more years are required to learn the increasingly complex technology environment.

I graduated with a Computer Engineering degree, did assembly, C, microprocessor design, computer vision, and know a good bit about lower level stuff, how memory works, how networking works, etc. All the stuff people in this thread seem to be lamenting the lack of. But I was also a shitty employee fresh out of school because I didn't know anything at all about modern software development because there was absolutely no time to learn that stuff as well.

I still had to spend a lot of time getting good before I was worth anything, just as these "new frontend devs" will, as well.

Re: We have used too many levels of abstractions

#329

Earlier quoted context omitted.

There will be an increasingly important history component in comp sci., software engineering, infosec, and associated fields. I think this is a place where the IT field has done a bad job and, as a result, we've had unbelievable amounts of "wheel reinvention". I'd love to hear from somebody with experience in scientific or other disciplines and IT who could contrast their fields with ours. I only know that I have had…

> There will be an increasingly important history component in comp sci., software engineering, infosec, and associated fields. Much as I'd like that, I disagree. The momentum has always been against that. We're members of a cult of the new, which does not value or even acknowledge the old. Which is why we keep reinventing the same solutions but with different tech stacks. This drives developer value down which drive…

> We're members of a cult of the new, which does not value or even acknowledge the old

This just isn't true. We have Heartbleed because we refuse to move off how we wrote software 30 years ago[0]. HTTP was invented in the 1980s[1]. REST in 2000[2]. TCP/IP in the 1980s[3]. Ethernet the same[4].

I'm pretty sure we acknowledge and value all of those things. Our field, depending on how you define it, is only about 70 years old. Those things are pretty old in those terms.

[0] https://queue.acm.org/detail.cfm?id=3212479

[1] https://en.wikipedia.org/wiki/HTTP

[2] https://ics.uci.edu/~fielding/pubs/dissertation/rest_arch_st...

[3] https://en.wikipedia.org/wiki/Internet_protocol_suite#Adopti...

[4] https://en.wikipedia.org/wiki/Ethernet

Re: We have used too many levels of abstractions

#330

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…

> perseverance to really understand all those things by diving into obscure, historical manuals.

You say you were lucky to be there in the beginning and that young people don't have this advantage.

Then you conflate your own luck with perseverance.

Post reply on HN