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).
-
-
Speed is one dimension of understanding that's lacking; the picture of speed in programmers' heads is 2-4 orders of magnitude too slow. It's easy to see and understand this, which is why I brought it up. But it's not the only dimension of missing understanding.
Show this thread -
To make the speed point again, for an attempt at clarity: Programmers have a picture of their computer, in their minds, that they use to figure out what to do. For 99.9%+, that picture is inaccurate: the imagined computer is 100x-1000x slower than the real computer.
Show this thread -
This will result in software that's too slow, obviously. But it also affects what one thinks is possible, what one dares to imagine to do. That is the more important part. Humans are very example-based, and if our examples are wrong, where they lead us will be wrong too.
Show this thread
End of conversation
New conversation -
-
-
This is because most programmers do not care what a computer is. You want to know the real reason slow high level languages are so popular? Because it lets people think in more human terms instead of thinking like a machine, which *feels* slow b/c it's frustrating.
-
The mentality of programmers has shifted b/c of the mass adoption of programming. Your average programmer's ideal computer is one where they can just visualize and feel in their mind the kind of 'thing' they want to create and have the machine make it real.
-
Think "Create a new object" "Give it the topology I'm visualizing" "Move it over here? Nah, over there is better." Every time they have to worry about stack vs heap, pointers, or cache fragmentation they get mad b/c it doesn't feel relevant to the goal.
End of conversation
New conversation -
-
-
I would say that we are on the edge of a reality where programmers don't really know not only what computers are but even what programming should be. What do you think about this?
- 1 more reply
New conversation -
-
-
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
is there some books or articles or blog than tell us what computers really are? thank you for some suggestion.
-
A computer is a thing that exploits the relationship between binary math and boolean logic. When numbers are expressed in binary, mathematical operations on them can be reduced to boolean operations. Boolean logic can be manifested as physical device. That's pretty much it.
-
Search for terms like *binary adder* or *binary subtractor* to see examples. Once you have machines for these operations, you add a switchboard that lets you do one after the other. The input to the switch is called an instruction.
-
And to complete this model: The math machines take input, and put their output into registers. The registers hold one number each, and persist between operations. So you can for example add whats in register A1 to what is in register B1. B1 now contains the sum.
-
Now read the wikipedia article on assembly languge: https://en.wikipedia.org/wiki/Assembly_language … and Bob's your uncle.
End of conversation
New conversation -
-
-
"rat-holing"..."yeah we know"... way to be civil
Thanks. Twitter will use this to make your timeline better. UndoUndo
-
-
-
'the elements of computing systems' is a great book and sort of helps fight this problem
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.