Live data from Hacker News

We have used too many levels of abstractions

unixsheikh.com

51–60 of 564 posts

Re: We have used too many levels of abstractions

#51

This is an insightful article, although I don't necessarily agree with the view that "everyone" needs to know everything from first principles to be good at their job. Talking about abstractions, during my past month, I was reading nand2tetris, and it's a compelling experience if you understand the exercise you are doing, which is not about building a computer from first principles; it's much more than that. It makes…

> ...ask a musician if they are really in the weeds of why the instrument is producing music (the physics behind it!). They are probably aware that it's vibrating air, but, in general, they won't know the theory behind it.

A big difference is that, unlike computing, their instrument probably won't stop working because of some subtle change to physics introduced by a seemingly-unrelated change made to the universe by some other party in the musical instrument / air / molecules / atoms / quarks "stack". Theirs is a world with some assurance of stability.

Ours is a field built upon shifting sands. Knowing what the foundations are that the edifice you've constructed sits upon allows you to affect repairs when it crumbles unexpectedly.

Re: We have used too many levels of abstractions

#52
post #39

> Question everything. Especially things that don't make any sense to you. Don't just assume that someone else knows better - that's how you quickly turn into a blind follower. That’s what I do by default since I was a kid, and I can tell you the social pressure not to is significant. I recall an interview I did once, and one reason I failed it was "questioning everything". It didn’t even felt like it, I was just ask…

Questioning everything also gets you stuck in bed asking why the sky is a different shade of blue. Others might have accepted the unknown and ate breakfast.

My approach is to just question everything "else" where there is a chance I might be able to do something about it. This is why I'm not popular because I don't have much interesting trivia for party conversations. But I already have come to terms with that. This doesn't help with staying up late though.

Re: We have used too many levels of abstractions

#53

I feel like if I was alive and working 60 years ago I would have been saying the same thing about mechanics, construction, and analog electronics. But really it doesn't matter for most jobs. Knowing how things work underneath is needed if you are forming your own business and products from the ground up, it is only slightly useful if you are working for somebody else, and as time goes on what monetary value there is…

Sure most people don't need to understand this stuff.

But the problem today is that very few people, in tech not just the general public, understand the low level stuff, especially among new people entering the field.

Furthermore software abstractions tend to be far more leaky than abstractions in the physical world you mention. And when they leak you need someone who understands what's going on under the hood.

Actually I don't think this knowledge is most important for people forming their own businesses at all - they have many other problems to sort out. But I think it absolutely is valuable working for someone else. These people are the "goto guys" and, ultimately, a "technical insurance policy" for the companies they work for.

A company producing tech products without at least a few people on staff who can dig into and fix almost anything is in a difficult position ultimately.

Re: We have used too many levels of abstractions

#54

This is an insightful article, although I don't necessarily agree with the view that "everyone" needs to know everything from first principles to be good at their job. Talking about abstractions, during my past month, I was reading nand2tetris, and it's a compelling experience if you understand the exercise you are doing, which is not about building a computer from first principles; it's much more than that. It makes…

> ...ask a musician if they are really in the weeds of why the instrument is producing music (the physics behind it!). They are probably aware that it's vibrating air, but, in general, they won't know the theory behind it. A big difference is that, unlike computing, their instrument probably won't stop working because of some subtle change to physics introduced by a seemingly-unrelated change made to the universe by…

Musical instruments can and do break for unknown reasons and it's exactly as reasonable to expect musicians to crack out their machine tools to fix them as it is to expect a javascript dev to fix a kernel bug.

Computers are a relatively new invention. There are still people around from the times when knowing the entire stack from top to bottom was not just valuable but necessary. They worked during periods when abstractions were far leakier than they are today and far less reliable but also far simpler.

Some of those people have persisted with the attitude that knowing the stack top to bottom is still necessary as the complexity of those stacks have grown in complexity geometrically. This does not signify wisdom, only age.

Re: We have used too many levels of abstractions

#55

Earlier quoted context omitted.

There will always be hyper-nerds and just super smart people who will study all of the low level stuff. Granted, they will be vastly outnumbered by high level programmers.

That's what I mean by "precious few". I am continuously hiring new people, mostly senior devs and tech leads. Maybe one in a hundred has any understanding of what virtual memory is. Or why one process can't access memory of another process and, if you really want it, how to set it up. Two decades ago that was common knowledge. It went away just as the knowledge of how networking works. Currently, if they try to open…

The thing is as someone who twenty plus years ago was able to write the webserver at socket level and so on, if you handed me a keyboard today I have forgotten all the context, the skills - they have pages out of my brain and now have redis and javascript and hadoop.

Re: We have used too many levels of abstractions

#56

Earlier quoted context omitted.

There will always be hyper-nerds and just super smart people who will study all of the low level stuff. Granted, they will be vastly outnumbered by high level programmers.

That's what I mean by "precious few". I am continuously hiring new people, mostly senior devs and tech leads. Maybe one in a hundred has any understanding of what virtual memory is. Or why one process can't access memory of another process and, if you really want it, how to set it up. Two decades ago that was common knowledge. It went away just as the knowledge of how networking works. Currently, if they try to open…

Im from the new breed. I'd like to know all that but, where do I get the money? It's not like I can spend so much time tinkering without producing.

If at least was able to purchease a home I wouldnt have this pressure.

I guess in the US is different because people have higher salaries.

You have to have the time/resources to dive that deep. Or maybe it's your job, line some of the folks in a local company that work in hard problems.

But even they are not that well payed.

Re: We have used too many levels of abstractions

#57
Hard disagree.

If that's the case building a house, farming, and everything in life if an abstraction of blind leading the blind.

The reason we are so great is because we could stand on the shoulders of the giants who came before.

This is especially true if software. I don't need not understand assembly to get my business tested and in front of users.

To me this is the same argument that the genetic older generation uses to complain about a younger generation. They'll destroy themselves if they don't do it like I did.

Change is here. Adapt and learn like you used to. Do that and you'll be fine.

Re: We have used too many levels of abstractions

#58
Yes and no, abstractions dumbed down things for common users. But there are and will always be a set of power users who get into the details. Power users are the ones who abstract in the first place and abstraction is not a one time process. Abstraction keeps evolving too, hence there are going to be power users who know the capabilities and support in the evolution. This is any how stream works let alone software. There is no need for everyone to be a power user.

Re: We have used too many levels of abstractions

#59
Meh. Unless something very unexpected happens, human programmers aren't going to be a thing anymore, starting in a not-too-far future. And programming AIs will neither have trouble understanding all those layers of abstraction, nor will they add additional ones, since their main purpose is to help limited human minds cope with the inherent complexity of problem domains.

So the only way the mounting complexity of software could create a "bleak future" would be if it somehow prevents us from bootstrapping those programming AIs, and I doubt that will be the case.

Re: We have used too many levels of abstractions

#60

What else can you do but look at files and code to figure out problems? And why use a monospace font for prose? I agree otherwise though, it can bite you in the arse if you don’t understand the layers of abstraction you’re dealing with. It’s the reason I sort of don’t like browser-based stuff. We already have a full OS stack for doing stuff, why add another on top of it?

> And why use a monospace font for prose?

Honestly, I liked it. The font defaulted to Consolas on my Windows machine and it was both readable and not too distracting, oddly enjoyable.

Post reply on HN