[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Industry versus academia

On Saturday 22 February 2003 23:38, Michael Vanier (by way of Michael 
Schuerig) wrote:

> > From: Michael Schuerig <schuerig@acm.org>
> > Date: Sat, 22 Feb 2003 13:10:59 +0100
> >
> > On Friday 21 February 2003 23:53, Michael Vanier wrote:
> > > To choose an example: let's say that someone invents a
> > > programming language Foo that has the property that programs in
> > > Foo can be automatically verified for correctness before use
> > > (this is of course a long-standing holy grail of the programming
> > > languages field, but never mind).  Let's say that programming in
> > > Foo requires abstruse knowledge of...
> >
> > Hm... wouldn't it be even cooler if this mythological language
> > could be used by average programmers to the same effect?
> Sure.  But the point is, if my example were real (which it isn't),
> then whether average programmers could/would use this language is
> irrelevant, because the ONLY way to get the job done would be to use
> a language like Foo, abstruse or not.  This is pretty commonplace in
> science.  If you want to build a television set, you have to know a
> lot about electronics, which I could characterize as fairly abstruse
> knowledge.  If you want to work in cryptography, you have to know a
> lot of abstruse mathematics.  The situation is different in
> programming, but my question is: what if it weren't?  How would that
> affect the PL landscape and the questions we're discussing?

For one thing, the situation is not different. As you said yourself in 
another article, there are some extremely good programmers who 
nevertheless preferably use comparatively retarded languages -- and 
achieve excellent results.

I think your Gedankenexperiment breaks down under the weight of 
Turing-equivalence. Tentatively, I'd say that more advanced languages 
provide only a gradual advantage, not an in-principle one. Or, from a 
slightly different angle, a programmer who would be able to handle the 
delicate intricacies of a very advanced language would probably be able 
to achieve similar results in a lesser language. The choice of language 
is a matter of convenience and taste.

What it comes down to, is that for certain tasks you need experts. The 
tools are secondary, given they are above some threshold. For all their 
shortcomings, C++ and Java seem to be good enough.

> I guess my point was that I find it interesting that so many of the
> conceptual advances in programming languages that we discuss on this
>  list seem to be useful mainly for making certain kinds of programs
>  easier to write (for programmers who understand the new
> abstractions) rather than making it possible to write programs that
> would have been intractably difficult to write without them.  Maybe
> this is just a consequence of Turing completeness -- I don't know a
> rigorous definition of "intractably difficult".

As I said above, I doubt it that problem tractability depends on choice 
of language. To my mind, this overestimates the importance of 
programming languages.

You gave the example of creating provably correct software for air 
traffic control. I'm wondering, how large a part of the endeavour is 
taken by coding? Where are errors most likely? In the implementation? 
Or rather in the specification? If it's the latter, no programming 
language is going to help.

Another problem I see with an experts-only language is that there are 
too few experts around. This could mean, that while use of that 
language would hugely boost the performance of a few select experts, 
they would nevertheless lag behind the combined productivity of legions 
of average programmers with average languages. Presumably, even in air 
traffic control software, not every single module requires guru-level 
expertise. Too bad, if the language enforces such a requirement. So, I 
consider it very desirable, that a language that allows experts to fly 
is at the same time friendly to novice and average (but hopefully 
advancing) programmers.


Michael Schuerig                 Not only does lightning not strike
mailto:schuerig@acm.org          twice, it usually doesn't strike once.
http://www.schuerig.de/michael/  --Salman Rushdie, "Fury"