4 ms·
Humans are immensely good at concurrent thought, and really bad at sequential thought. Consider driving. Your brain is processing millions of things in an out-
by clord 17y ago
Humans are immensely good at concurrent thought, and really bad at sequential thought.
Consider driving. Your brain is processing millions of things in an out-of-order manner, and producing continuous motions in your hands and feet that guide the car so perfectly that few would be surprised to hear of someone driving for a lifetime without a major accident.
Same deal with many concurrent activities, like having a conversation, or playing sports, or listening to music, writing, thinking about the future, or fixing the fridge. In every case, we set our massively parallel architecture on many problems simultaneously, and then integrate a solution in real time without deadlocks or timeouts.
Humans have a corresponding weakness for sequential thought. We find it very hard to write a piece of sequential software that lasts more than a week without crashing hard or suffering from a major design flaw. We need to be taught for decades in the most advanced institutions to think sequentially and logically. Only the most elite of us ever manage to produce something that others would actually pay for, and even then we may solve a different problem for people than the one we set out to solve. (Think of startups like twitter that find that the market likes them, but for completely different reason than what they thought.)
Then we try to make people trained in sequential thought solve parallel problems, and they come up with steamy piles of tangled mess, full of deadlocks, races, and side-effects.
Our DEFAULT state is concurrent thought. We've all been trained to think otherwise, by our computers, languages, and education. We're hard on the poor folks who were carefully trained as sequentialists when they fail to make a parallel problem easy.
I work on a compiler for sequential source at a major corp by day, but my personal long-term goal is to create a compiler for a language that can form the kernel for a new school of thought separate from the sequentialists and their half-measures towards solving this problem. As hardware evolves, it will only become more like our own brains, and less like calculators and simple programmable machines.
- jacquesm 17y agoI see what you're getting at but I would call that unconscious thought. There is a great deal of that going on. When you learn something it is conscious. Every bit of the activity that you are learning is new and requires lots of hard work. But at some points you have 'mastered' the skill, and you can do it 'without thinking', which is really just another way of saying that your unconscious has enough information to do the thinking without direction. For instance, most of the people reading this are probably good typists (to me that's a part of 'hacking', the sound a typewriter keyboard would make when you 'hack' out a piece of text). All of us had to learn that skill at some point, one conscious and slow stroke at the time. But right now I'm typing this just a little slower than I can think it, or maybe even faster in spurts, depending on how frequently I've used those patterns. If I tried to consciously think of every letter that I'm typing immediately I slow down to a crawl. So we're good at parallel thought, no doubt about that, we multitask like we're made for it. But we have but one state of consciousness and we can not fork that even for the simplest of tasks. Take chess players that can play on many boards. That's as close to human 'multitasking' as you can get when making a computer analogy. The state of each board is the thread of execution, the consciousness is doing 'multiple-instruction-single-data' across each board. On a 'task switch' (move to another player) the state gets reloaded and another move is produced. If you could consciously think multiple threads then it should be much easier to play on many boards at the same time. I wonder how well octopuses would perform at that task...