Created 8/21/00
See the article about the 10 Physics Questions of the Century. As many know, 100 years ago Hilbert layed out 23 great unsolved problems of mathematics. These drove many a thought....
What might be the 10 great software questions of this century? Ahhhhhh, what an inspiring question! :-) Here's my meek try:
1. Software engineering keeps discovering "deeper" abstractions, that once understood, advance the field. Is there a "deepest" layer we cannot go beyond? What is it?
2. Software has continually lagged behind hardware in things like cost curve, ease of use and standardization. What discoveries would it take for software to surpass hardware, or what is the reason this is impossible?
3. Software is still an art, not engineering. It's so intractable we are essentially living in the dark ages, like before Copernican Theory (the planets revolve around the sun), before Einstein's theories of relativity and before Euclidean Geometry. Is there a collection of software theory that will suddenly turn art into science?
4. Will software/hardware be able to eventually pass the Turing Test, or will this require a biotech approach?
5. Will software itself disappear, replaced or absorbed by other fields that we know not yet of?
6. Why is software development so hard to learn? Is there some catalyst or approach that would fundamentally change this?
For example there might be 5 new words to add to the English language. These would be taught at a young age. Programming languages and tools would use these words/concepts, making the transistion to thinking about programming nearly no transition at all. The entire population could program....
7. No software language has survived indefinitely, other than 1's and 0's. Will there eventually be one that does, much like English seems to be doing?
8. Are there software particles more fundamental than objects?
9. Is it possible to create a language and IDE which rejects any attempts to insert defects, and is productive?
10. Will it become possible to prove any system has no defects?
Bonus questions:
11. Currently computerdom can be physically partitioned into hardware and data. Will any additional top level partition(s) be added? For example, what if some self-evolving programs need to never be turned off. Would this be a new partition?
12. Are 1's and 0's the optimum base digital data standard? For example, why not four values, like DNA?
13. Will something like "graylean" augment boolean? A graylean can have three values - true, false and somewhere in the middle (black, white and gray). This is not the same as true, false or null, because null means the boolean itself is undefined.
Mature societies, such as China, have long approached issues as black, white or gray, unlike the West which sees issues mostly in black and white. For example a tourist's parked car was hit by a Chinese driven car. The trial came up. The judge found the tourist to be 10% responsible. The tourist was outraged, and asked, "Why? How could I have possibly been responsible?" The judge replied, "That's easy. If you hadn't have been here this wouldn't have happened." (true story)
Paul Reavis comments: I would submit that this one has already been answered.
This is essentially a description of fuzzy logic, so the answer is
"yes". Fuzzy logic is already in use (mostly in hardware and embedded
devices, for example japanese washing machines that put the "right"
amount of detergent in the water depending on the amount, type, and
dirtiness of your clothes). Fuzzy logic works on fuzzy values, which you
can think of as percentages of truth.It's fascinating stuff, and there's already a fair amount of science and
math backing it up.14. Will the three rules of solid (what's the proper term?) programming - sequence, decision and loop - be replaced by a whole new approach, perhaps allowing a whole new language generation? What is it?
15. Two or more engineers will never arrive at the same identical solution to anything but a trivial software problem. Why? Will we discover ways to make software problem solving 100% convergent? What are they?