> I've appended to the end of this message the Chomsky interview where he
> talks about Microsoft.
Independent of the interesting interview, a quote from Chomsky's
'Aspects of the Theory of Syntax' which for some odd reason happened
to be within arms reach even though I haven't thought of it in 10 years.
In the chapter 'Toward a Theory of Performance':
"There seems to be little reason to question the traditional view
that investigation of performance will proceed only so far as
understanding of underlying competence permits. Furthermore,
recent work on performance seems to give new support to this
assumption. [...] To my knowledge, the only concrete results [...]
have come from studies of performance models that incorporate
generative grammars of specific kinds -- that is, from studies
that have been based on assumptions about underlying competence.
In particular, there are some suggestive observations concerning
limitations on performance imposed by organization of memory
and bounds on memory, and concerning the exploitation of grammatical
devices to form deviant sentences of various types."
What does all this mean? In Performance Theory, it would seem that
the more well-formed grammar of Java will eventually allow itself
to be more optimized for performance than the deviant structures you
can build with C, or the JVM versus the 8+ million SLOC of NT.
I happened to see John Gage talk at the the 1995 DARPA Software
Technology & Information Systems Symposium on the history of programming
languages about Java and Performance. He concurred. There will
be a point where Java code can actually execute faster than anything
humanly possible to write in C due to hardware and software
optimizations. Remember the RISC tradeoff? I think he
estimated it would take about 3 years. To try and remember
a quote from Bob Balzer, "In software, we often over-estimate
what can be done in 3 years and under-estimate what can be done in 10".
I wonder if this inflection point will pass by without notice.
If you are a real-time programmer, the only thing you care about
is how fast all paths through your code can return before the
control cycle clocks out. I've seen some windows NT programs,
it's near impossible to determine what all the paths are, much
less automate path coverage and predict how long each would take
under certain conditions.
Anyways, just more random associations.