[TYPES] Grand Challenge Problems?
Robert M. Fuhrer
rfuhrer at watson.ibm.com
Mon Jan 18 12:19:09 EST 2010
I think that the PL community has been giving inadequate attention to a
critical aspect of its work for too long: that of defining a reliable
empirical
process or theoretical model for assessing the effectiveness of a given
nugget of language design.
It seems striking that many of the programming languages in mainstream
use today fare poorly when viewed rigorously from perspectives such as
safety, modularity, or maintainability. I think that's a sign that the
models
we use to evaluate languages fail to capture one or more critical real-
world
aspects of what makes a language design good (or practical?).
Such a model could help identify designs that, say, introduce a feature
intended to improve program safety, but in so doing require developers
to engage in reasoning even more subtle than that of the original
problem.
Note I'm *not* saying that mainstream acceptance implies a good design.
I *am* saying that if a language's "theoretical superiority" was
*obvious*
to practitioners (and not only to language design experts), then the
mainstream would *ultimately* adopt it, given enough time for economics
to catch up. I don't see that happening -- I see a rift where apparently
better designs fail to be adopted, even after decades. In short, I
strongly
suspect something deeper is going on.
If "obvious superiority implies ultimate adoption" is wrong in the
domain
of programming languages (it clearly doesn't always work elsewhere),
then the "goodness" model doesn't also predict adoption. That's ok - a
"goodness" model is still valuable to us as scientists. We just need a
different one to predict market acceptance (which is also valuable).
So, my PL Grand Challenge: come up with a *much* more principled
approach to evaluating programming language designs.
[... now donning flame-retardant outerwear ...]
--
Cheers,
- Bob
-------------------------------------------------
Robert M. Fuhrer
Research Staff Member
Programming Technologies Dept.
IBM T.J. Watson Research Center
IMP Project Lead (http://www.eclipse.org/imp)
X10: Productivity for High-Performance Parallel Programming (http://x10-lang.org
)
More information about the Types-list
mailing list