And to take this argument to it's logical (for me) conclusion:
The best setup would be to constantly re-compile the compiler, and for that matter, the kernel, too. (NOT!)
Compiling once for a given hardware set yes, but not re-compiling for every execution. I'm guessing that somewhere in the neighborhood of 50% to 90% of the compiled code WOULD NOT CHANGE from one recompile to the next, and I just don't think you'll be able to make up for that kind of wasted cycles by optimizing the rest of the code.
However, if you do, I'll be the first to write you a check!!!
Automatically optimizing just the code that gets executed most often doesn't work.
Take a simple calculator program for example. It spends most of it's cycles in a wait loop waiting for input. What's the point of optimizing a wait loop??
And that hyperbolic trig subroutine that you use 3 times a day might never get optimized; but you would fume if you had to wait 5 minutes for an answer when you needed it.
semiconductor -> transistor -> integrated circuit I agree that semi tech has been the greatest 'enabling' technology of the century. We had computers before we had semis, but it's because of semis that we can each have one. And the use of semis to make sensors and DSPs give computers something usefull to do. Imagine how poorly even a lowly phone line would work today if it weren't for semis. And modems would be non-existent, or at least as expensive as the computers themselves, so that only the military could afford them. Anybody else remember when you tried to use a credit card, your number had to be looked up in a "black-list book" that hung by the side of the cash register? And try to imagine what modern medicine would be like without current sensor technology and CPU power? The list goes on. Second place would have to go to Materials Engineering, which would include plastics, teflon, unleaded gasoline, and the post-it note. I have to make this field second since it wouldn't have evolved as far as it has without Semi technology. I haven't been able to come up with a solid third place that DOESN'T rely on the first two for it's existence.
Tech Support. (okay, two words.) The 'learning curve' of manipulating the Windows OS is quite steep (compared to command-line Unix or DOS). The developer cost for compilers reflects their cost for supporting the learning curve. The 'educational' cost for the compilers reflects the true cost of the product itself - since it is assumed an educational institution will have an internal community of experienced users to do all the hand-holding required to get through the learning curve. IMHO, of course.
Gates is a yuppie, not a geek. In my universe, geeks create stuff and think new thoughts. Yuppies consume and make money off the efforts of others. Geeks usually end up working for yuppies to put food on the table. Gates has never invented anything: **Gates didn't invent MSDOS, he bought an existing port of CPM86 and put his name on it. **Gates ported Unix to X86 and called it Xenix; and then added enough Unix features to MSDOS 2.11 to make it useable. Stuff like subdirectories, devices as file names, piping, redirection, etc.. **Gates copied the Macintosh/Xerox OS and called it Windows. Bill Gates would definately make my list of top businessmen, but he'll never even make the bottom of my list of creative types.
And to take this argument to it's logical (for me) conclusion:
The best setup would be to constantly re-compile the compiler, and for that matter, the kernel, too. (NOT!)
Compiling once for a given hardware set yes, but not re-compiling for every execution. I'm guessing that somewhere in the neighborhood of 50% to 90% of the compiled code WOULD NOT CHANGE from one recompile to the next, and I just don't think you'll be able to make up for that kind of wasted cycles by optimizing the rest of the code.
However, if you do, I'll be the first to write you a check!!!
Automatically optimizing just the code that gets executed most often doesn't work.
Take a simple calculator program for example. It spends most of it's cycles in a wait loop waiting for input. What's the point of optimizing a wait loop??
And that hyperbolic trig subroutine that you use 3 times a day might never get optimized; but you would fume if you had to wait 5 minutes for an answer when you needed it.
semiconductor -> transistor -> integrated circuit
I agree that semi tech has been the greatest 'enabling' technology of the century. We had computers before we had semis, but it's because of semis that we can each have one. And the use of semis to make sensors and DSPs give computers something usefull to do. Imagine how poorly even a lowly phone line would work today if it weren't for semis. And modems would be non-existent, or at least as expensive as the computers themselves, so that only the military could afford them. Anybody else remember when you tried to use a credit card, your number had to be looked up in a "black-list book" that hung by the side of the cash register? And try to imagine what modern medicine would be like without current sensor technology and CPU power? The list goes on.
Second place would have to go to Materials Engineering, which would include plastics, teflon, unleaded gasoline, and the post-it note. I have to make this field second since it wouldn't have evolved as far as it has without Semi technology. I haven't been able to come up with a solid third place that DOESN'T rely on the first two for it's existence.
Tech Support. (okay, two words.) The 'learning curve' of manipulating the Windows OS is quite steep (compared to command-line Unix or DOS). The developer cost for compilers reflects their cost for supporting the learning curve. The 'educational' cost for the compilers reflects the true cost of the product itself - since it is assumed an educational institution will have an internal community of experienced users to do all the hand-holding required to get through the learning curve. IMHO, of course.
Gates is a yuppie, not a geek. In my universe, geeks create stuff and think new thoughts. Yuppies consume and make money off the efforts of others. Geeks usually end up working for yuppies to put food on the table.
Gates has never invented anything:
**Gates didn't invent MSDOS, he bought an existing port of CPM86 and put his name on it.
**Gates ported Unix to X86 and called it Xenix; and then added enough Unix features to MSDOS 2.11 to make it useable. Stuff like subdirectories, devices as file names, piping, redirection, etc..
**Gates copied the Macintosh/Xerox OS and called it Windows.
Bill Gates would definately make my list of top businessmen, but he'll never even make the bottom of my list of creative types.