Hacker News new | ask | show | jobs
by TheSamFischer 19 days ago
Abstractions are convenience. They’re not free, there is a cost to any work you ask the computer to do. Just staying at the surface level and never understanding what’s under the top level is why software is slow and bloated today. You’re supposed to move beyond the abstraction, understand what you need underneath and use what you really want to do the task.

No wonder we boot up entire browser engines to write simple text editors. But hey, we gotta be first to market to get that VC money, right?

1 comments

I disagree.

Abstractions are not a convenience, they're a cognitive necessity, compressing large aspects of the problem space into easy to not think about blocks, allowing humans, with their limited working memory, to reason about larger problems. The only reason a seasoned developer can think at a high/system level is because of the abstractions/compressions they've formed in their heads.

Technology exists to make it so we don't have to think about/put time into low level things, so we can do more interesting things instead. Not thinking about banal things is the foundation of progress.

AI seems to be the give us an abstraction I've been waiting for: a method to write code at the level of libraries , with libraries working with/adapting to other libraries.

There are plenty of people who understand the stack and ship actually fast software. This might be a skill issue that you’re choosing to frame as a “best practice”, because you do not want to put in the work.

Our end users are who should benefit. You’re the pilot in the seat who doesn’t know what the throttle is and you’re telling the passenger it’s the plane’s fault it’s slow.

> that you’re choosing to frame as a “best practice”,

I don't follow.

> because you do not want to put in the work.

Yes, just as nobody wants to type opcodes, or write their own http clients, or etc. It's why most of us use higher level languages. Leave the solved things solved, and work on actually interesting/new things! That doesn't mean not understanding, it just means not wasting time on the same boilerplate/code duplicated by millions of developers.

If you think software performance is a solved problem today, there is nothing more I have to say.

Consumer software is slower than ever. And only getting worse.

Please reread this comment thread. I never spoke to software performance being solved.
> just as nobody wants to type opcodes, or write their own http clients

This is how you get faster software. You literally look “into” the code, see why stuff is slow, remove the extra work in the library that you do not need, and now your software has a faster server.

Abstractions make software “easy” to build. We’re not looking for done easily, we’re looking for done well.