Only a tiny minority of professional programmers have a clear picture in their minds of how fast modern computers are. 99.9% have next to no idea. How does this affect software that is even conceived? (Ignoring, for a moment, what is actually built, which we know is very slow).
-
-
By the same logic rockets wouldn’t work because people can’t walk fast enough on their hands. Sounds like TED talk fluffery
-
If you try to design rockets, and the imagined rocket in your head is 1000x off the capabilities of a real rocket, you probably ain't getting to orbit. I am not sure where walking-on-hands comes from.
-
You’re using singularity level fluff talk to inflate the basic concept that the better you understand a system the better you can work with it.
-
Are you a programmer?
-
If you are a programmer and you think that what I am saying is "singularity-level fluff talk", then I am afraid you are exhibiting exactly the problem I am talking about. This isn't singularity-level anything, it is objective reality today.
-
The only reason it would sound like "singularity-level fluff talk" is if indeed your picture of a computer is way slower than what they actually are, such that 1000x greater performance sounds like some far-future singularity thing. It's not. It's what we would get if we
-
cleaned up our act on current-day, existing, computers.
- 4 more replies
New conversation -
-
-
I suppose underestimating CPU speed relative to, say, network speed or RAM speed also must lead to some design patterns that make software slow and bad, e.g. using a client/server model to communicate between different parts of the same program.
-
Totally.
End of conversation
New conversation -
-
-
I agree that a lot of modern software is too slow, but I don't follow the chain from "mental model of computer is slower than real computer" to "software built for that mental model runs slowly." It feels more obvious to me that it would run faster. Can you explain that step?
-
To write fast software you need to understand what slows down the computer and cater the software to avoid that. Or take advantage of features that require some opt in. If these things don’t exist in your mental model you can’t do either.
-
This is even more true of some languages that try to abstract over some of the more finicky details. For example even if a scripting language like JavaScript is JIT compiled to native code it still necessitates doing some dumb things because of the language design.
-
Which is why things like typed arrays leak in and efforts to produce JS the JIT compiler can optimise are created (asm.js) But your average JS programmer isn’t doing these things and their world view is disparate to that required to make things fast.
-
Gotcha, that all makes sense. If that’s what JB had in mind also, I think I was misinterpreting his tweets in an overly reductive way, where the “slow mental models” were *just* slow but otherwise right, rather than “wrong/incomplete and therefore slow”.
End of conversation
New conversation -
-
-
This is worse than people think. For instance watch this presentation from
@incomputable : https://www.youtube.com/watch?v=zxwKAX7p8GE … I've done my fair share of compiler work, so I know how the computer work better than most, and yet I'm not ashamed to say I have no idea what's going on here.Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
Shouldn't underestimating the computers speed lead to "overoptimized" software instead of too slow software?
-
Only if you recognize that it *could* be faster.
End of conversation
New conversation -
-
-
The biggest issue facing software today is the overly complex, poorly documented, or hard to use correctly leaky abstraction layers stacked atop one another. This IS fixable, but nobody WANTS to...
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
I think it's telling that I, as someone who loves responsiveness and fast programs, still finds instantaneous response times to feel -weird-, just because of how rare they are.
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.