Wisdom is certainly something to take from, but embodying the limits imposed by someone as a roadblock to onself isn't the way to innovation.
Please name some examples. How often is sometimes? What is their probability of success compared to that of domain experts?
History, specifically in science and math is full of examples where people who actively sought to question the knowledge of more senior experts have made discoveries that advanced the knowledge of human-kind and have then been overlooked or ignored because they did not have the correct background. Institutions such as The Royal Society and The Geological Society where created exactly on this principle.
The idea that "you cannot question X because X is a learned man above your station" is what IMO destroys general interest in fields such as physics. You have to spend a career following the party line in the hope that one day you will be given enough rope to actually challenge anything.
How on earth would you put probability on something like that?
A. "There are examples where newcomers to a field found a novel solution that senior experts have missed."
B. "It is often the ignorant who succeeds."
B does not follow from A. Not even in mathematics where people use to say that you have to prove yourself worthwhile by the age of 25 or it won't happen.
> You have to spend a career following the party line in the hope that ...
This is a slightly different discussion but IMHO in many fields (e.g. medicine) contemporary science has little to do with genious or insight but rather is an industrial effort ... and that _often_ isn't fun.
If you'd like more, A Short History Of Everything by Bill Bryson is about 600 pages of examples.
This is one of the greatest stories ever. If it weren't true it would have to have been invented... but it is true.
PS: There are a lot of long standing math problems which people have spent vary little time trying to solve.
The relevant distinction is between coursework exercises and open problems in the field. That's a pretty big difference. When students complete their homework, they don't typically get woken up by phone calls from excited professors telling them to write their work up for publication immediately.
I can think of one:
http://www.snopes.com/college/homework/unsolvable.asp?a
Replied to my post: He was ignorant of the fact that the problems were supposed to be impossible. So he at least assumed the problem where thought to be unsolveable.
As to the gap between homework and open questions in the field, it can be fairly small in mathematics when the course is on the cutting edge. The field of Statistics was a lot more open back then, and there are still plenty of subjects where the gap between cutting edge homework and original research is fairly small.
PS: I once had a teacher suggest I write something up as original research as an undergraduate. The circumstances where a little different but less than you might think. It was a lecture where he was describing an algorithm and I said “that’s seems slow why not do X” but the same basic concept.
Once again, yet to be solved is not the same thing as assumed to be impossible. In the history of mankind nobody has solved a X^2 * (first thousand digits of PI) + (next thousand digits of PI) * X = 0. But, using modern techniques I don't think it would be that difficult. And if someone 50 years from now could find this post and decide to wast their time they might be the first person to solve a this 50 year old math problem etc.
PS: Examples of older and harder problems: http://en.wikipedia.org/wiki/Millennium_Prize_Problems note nobody is saying they are "impossible" just unsolved.
Why the hell would anyone want to program in a natural language?
Suppose you could write a kernel in such a language, and one of the instructions was:
"Load the first 5 bits at address 0x323abc into the last 5 bits after address 0x89bbca"
Now, wouldn't it be easier to say 'shuffle_bits(5, 0x232abc, 0x89bbca);' where you control precisely what 'shuffle_bits' does?
load_first_five_bits_into(0x323abc)
load_last_five_bits_into(0x89bbca)
Or if you do mappings a lot, I'm sure I saw an IP packet parser based on syntax like this: [----5----|----n----|----5----]
[0x323abc |void |0x89bbca ]natural language programming means that you, as the human, concentrate on high-level aspects while the machine fills in the blanks (stuff you don't care about).
natural language programming... it's supposed to be a dialogue, not a specification. you say a few words and the machine creates a formal representation of that. then you're free to alter the assumptions made by the machine.
you're shaping something in broad strokes. you're designing something. you don't actually code something. you get your own private code monkey, you get to talk to him, explain your design, let him do the typing, and intervene when needed. now, that code monkey could be a machine.
i guess it takes a certain mindset to accept and rely on others (also machines) to do the grunt work. i certainly don't want to be doing repetitive grunt work if i could help it. it's fun now and then, when i have the choice. it stops being fun if i have to do it.
copy the time field from cpuinfo to temp_time'
backup the low 5 bits of goodnameformemorylocation'
locA's low 5 to locb's low 5'
Seems like there are a fair number of nice representations. Context is obviously important though: in a kernel, you probably want fairly implicit ways of referring to bits.