Earlier quoted context omitted.
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…
We have used too many levels of abstractions
231–240 of 564 posts
Re: We have used too many levels of abstractions
#232I 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…
Re: We have used too many levels of abstractions
#233I 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…
Unless you're two hundred years old, you joined the development of this technology in the middle. There was already decades of progress in electronics and telecommunications theory and engineering that everything you listed was built on top of. Your predecessors likely thought it was all newfangled abstractions that obscured more fundamental knowledge, and your successors will think the same about whatever world they…
However, if I am using an abstraction like an ORM without understanding what is happening with the database under the hood, or why it's getting slow all of a sudden, it is bound to bite me in the ass.
I shudder to think of how much money and energy the world is burning every second just because of this one alone.
Re: We have used too many levels of abstractions
#234I 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 still be people at e.g faang/semiconductor companies
that do this stuff day2day and even push advances in those areas and have already created solid training materials for younger employees
If you're worried that this knowledge will disappear, then feel free to write it up in form of tutorials.
Re: We have used too many levels of abstractions
#235Earlier 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…
I once worked with a back-end dev who didn't know what RAM was. He knew C# and ASP.NET but couldn't point to RAM on a motherboard or explain what it really did. About all he could describe it as was "temporary storage". Their lack of basic knowledge of how computers work really showed in the crap code they wrote. It was no wonder it was their code that ate up all the RAM on the server because they never put much thou…
No wonder a lot of modern software is terrible.
Re: We have used too many levels of abstractions
#236I find the modern Vue, React etc. stacks absolutely insufferably complex and prone to breaking in 1000 places each time you upgrade some package, or change som random thing in the already stupidly complex "Tooling/Build" chains people are setting up by default.
And it's because no one, not even experts in the field seem to understand 5% the stuff that is contained in these monster codebases.
I found myself using 90% of my time on this setup and tooling, and i'm pretty sure most devs do not need these.
I'm wondering if i can somehow pivot into making only these elegant products for customers. Have anyone done this as a solo dev, contracting or in an agency? Maybe make a "frameworkless" agency? Will hopefully save my sanity and my career.
I find the code much easier to read, the codebase is way smaller, and the app's can do the same thing. You can always pull a library here and there if needed.
Also coding and putting together a project is suddenly fun again, and it seems most languages; CSS, JS etc. are now so mature you can do almost anything with them without the bloat.
And as a bonus you actually have time to understand the different underlying concepts like back in the day instead of using weeks in the issue trackers and playing tetris with dependencies.
Re: We have used too many levels of abstractions
#237Re: We have used too many levels of abstractions
#238This design is sort-of working under plain sailing conditions (lots of available resources, booming markets, peaceful cooperation). But it is very non-resilient under stress (subdued expectations, broken promises, resource scarcity, hostility and strife).
Remember the pandemic? It was painful lesson and we like to forget pain. But it was an instance of our abstractions failing at a global and systemic level. Broken supply chains, panic, implosion. Thankfully it wasn't the worst kind of negative development but it shows that in the way we design essential pieces of the economy we are basically simply ignoring entirely plausible scenarios.
Now, how are we to respond to this momentous challenge? We can't go back to some low-tech autarky. People cannot build and program their own silicon from ground up (though it would be really cool to be able to do it at least as a proof-of-concept).
The gist of the right approach seems to me is to make sure that abstractions are tethered. If you need dozens of pieces to be in place to deliver something, the combinatorial possibilities of some of them not being available grows exponentially. If you need the latest and most expensive gear to operate this means the long tail of humanity is left behind.
Another analogy might be the drastically different structures you can build out of carbon atoms. You can have graphite layers that peel off at the slightest pressure or you can have diamonds that are the hardest of them all. The difference is the more connected nature of the diamond lattice. The different abstractions should be really fitting together very tightly with strong bonds.
Don't be like graphite, be like diamond :-)
Re: We have used too many levels of abstractions
#239As a 15+ years webdev my recent projects in the front-end are almost pure "vanilla JS" (Just JS) + Html, and CSS with only Petite Vue / Alpine on top. I find the modern Vue, React etc. stacks absolutely insufferably complex and prone to breaking in 1000 places each time you upgrade some package, or change som random thing in the already stupidly complex "Tooling/Build" chains people are setting up by default. And it'…
Re: We have used too many levels of abstractions
#240> 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.