Newsgroups: comp.lang.prolog
Path: cantaloupe.srv.cs.cmu.edu!bb3.andrew.cmu.edu!nntp.sei.cmu.edu!news.cis.ohio-state.edu!math.ohio-state.edu!howland.reston.ans.net!newsfeed.internetmci.com!in2.uu.net!allegra!alice!greeley.research.att.com!user
From: pereira@research.att.com (Fernando Pereira)
Subject: Language ecology (was: Is Visual Prolog "real" Prolog?)
X-Nntp-Posting-Host: greeley.research.att.com
Message-ID: <pereira-0805962321250001@greeley.research.att.com>
Sender: usenet@research.att.com (netnews <9149-80593> 0112740)
Organization: AT&T Bell Laboratories
References: <317752DA.C2C@pdc.dk> <andrews.830314122@Turing.Stanford.EDU> <4m4ard$knq@goanna.cs.rmit.edu.au> <4mda7n$7mk@mod-serv.dfki.uni-sb.de> <4mn8jk$pje@mulga.cs.mu.OZ.AU>
Date: Thu, 9 May 1996 03:21:25 GMT
Lines: 64

In article <4mn8jk$pje@mulga.cs.mu.OZ.AU>, fjh@mundook.cs.mu.OZ.AU (Fergus
Henderson) wrote:
> [ very interesting comparison of Mercury with Prolog, followed by
>   the following (abbreviated here) questions ]
> 1.  What support does the language offer for improving program reliability?
>
> 2.  What support does the language (or implementation) offer for debugging?
> 
> 3.  What support does the language offer for program maintenance?
> 
> 4.  What support does the language offer for modularity?
> 
> 5.  What support does the language offer for programmers working in teams?
> 
> 6.  What support does the language offer for code reuse?
> 
> 7.  What support does the language offer for parallelism?
> 
> 8.  Does the language have a simple declarative semantics?
These are all good questions. But I would like to add another one:

9. How will the answers to the previous questions, the implementation, the
applications and the organizations that support it help the language find
fertile soil and prosper?

To my mind, that is the *main* question for programming language
researchers that want to see their work change the world of programming
for the better. The problem they face is simple: the ecosystem for
languages is extremely crowded, and new languages have great difficulty in
finding a vacant niche. Highly specialized languages are at risk of
finding their niche disappear or be invaded by predatory languages or
software products (cf. island species). The disturbed conditions typical
of newly settled territory (eg. the Web) are attractive to "weed"
languages such as Perl. The main component of the language ecosystem is
its carrier, the programmer. Thus the social, economic and educational
forces that affect the selection, training and employment of programmers
have great influence on the survival and prosperity of languages. In
particular, languages that demand of the majority of programmers and
organizations more up-front investment in intellectual development and new
practices are at a serious disadvantage (cf. the history of functional and
logic languages with their foundations in deep mathematical notions).
Given all this, what is our best guess for the future of new
scientifically designed languages? Will they be doomed to the same fate as
artificial human languages?

These ideas, which are just a brief sketch of something that has been
bothering me for years, are prompted too by my repeated frustration with
advanced languages as a vehicle for demanding applications such as speech
and pattern recognition and machine learning from real-world data. We
always end caving in to C or C++, not for petty reasons but because
efficiency, portability, transferability to developers and implementation
stability end up dominating the discourse when the goal is to get
something difficult done rather than demonstrating a new language. 

So, how will Mercury measure up to natural selection? Does it have a
chance? Do other modern logic-based languages have a worse or better
chance? Or is the Cambrian explosion of languages behind us and basic
successful language designs fixed for good?

-- 
Fernando Pereira
2B-441, AT&T Bell Laboratories
600 Mountain Ave, Murray Hill, NJ 07974-0636
pereira@research.att.com
