Alan,

> I certainly appreciate your contributions to the list, and it
> is good to have active software engineers who are interested in
> what we do, but you seem to be saying that this whole discussion
> is futile - language design is completely irrelevant when put
> in the context of actual software engineering.

I think you have over-extrapolated from Ruven's comments.

Programming language design is important but it is effectively a second
order effect.  Ruven was saying that Java was not as appropriate as C++
etc. for their task as their were some technical issues to do with the
ORB and also the staff re-skilling problem.  This sounds like a fair
decision to me, particularly since the comment "re-evaluate Java later"
appeared.

The real question that arises for me is not stated in one sentence
but...

Good programmers can work with any programming language but some
programming languages are easier to work with and appeal more to
programmers than others.  Why?  This is clearly a psychological issue. 
This interrelates to the technical competance of the language.  Is there
a relationship between efficacy of the language and comprehensibility of
programs written in that language?

Hopefully experiments are no longer working with undergraduates who
study Pascal :-)

> 1. New programming languages get designed from time to time, whether we
> like it or not.

Moreover, it is essential that this continue so that system development
evolves.

> 2. We can either a) design those languages without any understanding
> of the cognitive requirements of the user; or b) try to take the
> cognitive requirements of the user into account (of course, along with many
> other considerations of computer science and software engineering).

Lanugages are usually "designed" out of whim and prejudice on the part
of the desiners.  Things like "Is this LALR(1)" are usually important
questions.  Explicit cognitive issues are never taken into account
because they appear not to be codifiable so that they can be taken into
account.  Is it possible to codify good comprehensibility criteria?

> 3. For those people who prefer to take the option 2b), the PPIG
> community exists to help them with understanding relevant research
> and design principles.

But they need to be codified so that they can appear easily in the
computer science curriculum otherwise they will never be useful in
programming language design.

> 4. Once the language is finished, we can a) throw it over the fence
> to the users, then move on the next project; or b) evaluate the
> success of the new language through observation and measurement.

4a is invariably the case.  4b may keep a few peopl in jobs but is
unlikley to be really effective unles it affects take up in some way. 
Language get taken up either because they appeal to a mass programming
audience (C, C++ and Java had some of this) or because they get mandated
in some way by organizations (Bliss-32, Ada, etc).  It is apparently
never anything to do with technical issues that make a language popular.

> 5. For those people who prefer to take the option 4b), the PPIG
> community exists to publish results, and help to develop
> appropriate evaluation methods.

I must re-emphasize that no amount of good science will help unless it
gets turned into a form that computer science undergraduates can be
indoctinated with so that later on they use such results (consciously or
otherwise) when they get into positions of influence.  This doesn't
necessarily mean management, this means where they can select amongst
programming languages either as managers or simply de facto by using
them.

Java succeeded by careful marketting, Python has yet to succeed but has
a large user base just waiting to exert influence.  Perl (which has to
be the most write only language ever invented) was forced into
prominence despite its complete lack of comprehensibility by the Web and
CGI scripts as much as because it can do things that were difficult
using awk.

Russel.

========================================================================

Prof Russel Winder              Professor of Computing Science
                                Editor-in-Chief, Object Oriented Systems
                                Series Editor, Practitioner Series
Head of Department
Department of Computer Science  Phone: +44 20 7848 2679
King's College London           Fax:   +44 20 7848 2851/+44 20 7848 2913
Strand, London WC2R 2LS                [EMAIL PROTECTED]
UK                                http://www.dcs.kcl.ac.uk/staff/russel/

Reply via email to