Newsgroups: comp.lang.prolog
Path: cantaloupe.srv.cs.cmu.edu!das-news.harvard.edu!news2.near.net!MathWorks.Com!europa.eng.gtefsd.com!howland.reston.ans.net!cs.utexas.edu!uunet!EU.net!julienas!news.fnet.fr!ilog!puget
From: puget@corvisart.ilog.fr (Jean-Francois Puget)
Subject: Re: are there any Prolog JOBS out there?
Message-ID: <1994Sep1.093109.5498@ilog.fr>
Sender: puget@corvisart (Jean-Francois Puget)
Nntp-Posting-Host: corvisart
Organization: ILOG S.A., France
References: <94237.220253U54294@uicvm.uic.edu> <PEREIRA.94Aug26225314@alta.research.att.com>
Date: Thu, 1 Sep 94 09:31:09 GMT
Lines: 53

In article <PEREIRA.94Aug26225314@alta.research.att.com>, pereira@alta.research.att.com (Fernando Pereira) writes:
|> In article <94237.220253U54294@uicvm.uic.edu> <U54294@uicvm.uic.edu> writes:
|> > I'm afraid that the point of re-implementation in C has been missed  here.
...
|> > wiil not be thousands of C-drones churning out code. It will instead be
|> > thousands of programs (not programmers!) churning out code.
|> Thousands of programs *already* churn out code. They are called
|> compilers. That may have caused hardship to those whose specialty was
|> machine-language programming (as opposed to programming in general),
|> but it's certainly been a boon to programmers as a whole. Moving to
|> higher-level programming languages will not change this equation
|> essentially. As higher-level languages mask the complications of
|> actual computers, programmers can concentrate of coping with the
|> complexity of the task and of the environment, allowing more complex
|> problems to be tackled. In other words, as languages and programming
|> environments help programmers make programmers more productive
|> (measured in terms of machine instructions delivered), the number and
|> complexity of tasks attempted grow to match the increased
|> productivity. But more complex tasks require more knowledge of the
|> task, as opposed to knowledge of the tool.
|> 

Another point has been missed I think. A language can be improved by raising 
its level of abstraction, or by a better environment. However, a language 
can also be enhanced by the availability of predefined libraries that free 
the programmer from some low level tasks. 

C++ being well suited for the developpment of libraries, the number of such
libraries is rapidly expanding. Your can find libraries for garbage collection,
basic data structures such as lists, sets, and so on, but also quite complex 
libraries for mathematical programming, graphics and GUI, constraint 
programming, production rules programming and distributed computing.
These libraries are available from different sources, including academic
sites and commercial software publishers (I work in such a company).

The developpment of a C++ application in an industrial context thus looks 
more and more like building an assembly of such predefined libraries.
This is a high level task that mainly deals with design. Libraries providers 
constantly increase the level of abstraction of their libraries. Thus the 
C++ programmer can concentrate on the task complexity, and not on 
implementation details.

On the contrary, the use of "low level" features of C++ is mandatory for
the library developpers.

A last word: this library argument also explains the recent commercial
success of SmallTalk.

-- 
  Jean-Francois Puget		 net : puget@ilog.fr
  ILOG S.A.
  2 Avenue Gallieni - BP 85	 tel : (33 1) 46 63 66 66
  94253 Gentilly Cedex FRANCE	 fax : (33 1) 46 63 15 82
