Re: Have we reached the asymptotic plateau of innovation in programming language design?

George Neuner <gneuner2@comcast.net>
Thu, 08 Mar 2012 17:41:58 -0500

          From comp.compilers

Related articles
Have we reached the asymptotic plateau of innovation in programming la rui.maciel@gmail.com (Rui Maciel) (2012-03-07)
Re: Have we reached the asymptotic plateau of innovation in programmin Pidgeot18@verizon.invalid (Joshua Cranmer) (2012-03-08)
Have we reached the asymptotic plateau of innovation in programming la slkpg3@gmail.com (SLK Systems) (2012-03-08)
Re: Have we reached the asymptotic plateau of innovation in programmin derek@_NOSPAM_knosof.co.uk (Derek M. Jones) (2012-03-08)
Re: Have we reached the asymptotic plateau of innovation in programmin gneuner2@comcast.net (George Neuner) (2012-03-08)
Re: Have we reached the asymptotic plateau of innovation in programmin ian@airs.com (Ian Lance Taylor) (2012-03-08)
Re: Have we reached the asymptotic plateau of innovation in programmin cameron.mcinally@nyu.edu (Cameron McInally) (2012-03-08)
Re: Have we reached the asymptotic plateau of innovation in programmin slkpg3@gmail.com (SLK Systems) (2012-03-09)
Re: Have we reached the asymptotic plateau of innovation in programmin mikedunlavey44@gmail.com (Michael Dunlavey) (2012-03-09)
Re: Have we reached the asymptotic plateau of innovation in programmin derek@_NOSPAM_knosof.co.uk (Derek M. Jones) (2012-03-10)
Re: Have we reached the asymptotic plateau of innovation in programmin cr88192@hotmail.com (BGB) (2012-03-09)
[43 later articles]
| List of all articles for this month |
From: George Neuner <gneuner2@comcast.net>
Newsgroups: comp.compilers
Date: Thu, 08 Mar 2012 17:41:58 -0500
Organization: A noiseless patient Spider
References: 12-03-012
Keywords: design, history
Posted-Date: 08 Mar 2012 19:25:06 EST

On Wed, 07 Mar 2012 13:52:47 +0000, Rui Maciel <rui.maciel@gmail.com>
wrote:


>... there appears to be no correlation
>between the success of a programming language and its emergence in the form
>of someone's doctoral or post-doctoral work. This bothers me a lot, as an
>academic. It appears that deep thoughts, consistency, rigor and all other
>things we value as scientists aren't that important for mass adoption of
>programming languages.


Theoretical nicety and $3 will get you a cup of coffee. What matters
to adoption is utility and timing. Something that comes along at the
right time, works well enough and fills a void for enough people will
succeed.


A lot of thought went into clean design for Scheme, ML and Haskell ...
but they have few adherents. Common Lisp, though it certainly has
theoretical underpinnings, is a mishmash of features borrowed from
previous languages - other Lisps, Algol, and even from Scheme. Common
Lisp has more users than Scheme, ML and Haskell combined.


In a number of ways Pascal was more powerfully expressive than C. But
Pascal had initial misfeatures that made it harder to use effectively
and, because it was envisioned originally for teaching, it omitted
some features that limited the scope of programs that could be
written. Subsequent extensions corrected many of the problems, and
new languages came along based upon Pascal that were superior to C in
nearly every way ... but too many people already had decided that C
was good enough.




>one striking commonality in all modern programming languages, especially
>the popular ones, is how little innovation there is in them!


Innovation in what sense?


It's true that no shocking new programming paradigm has come along
recently. That is to be expected. Despite some cultural differences,
humans all are wired similarly and tend to think about problems in
(combinations of) a relatively small number of ways. The existing
paradigms already address ways in which humans are known to be capable
of thinking (and even some ways they aren't - e.g., ANN).


A language that forces an unnatural way of thinking on the programmer
is not likely to be adopted. Many people have a hard time adjusting
to thinking in different ways. Witness that nearly all of the popular
languages are serially procedural. That implies heavily that the
majority of people think - or at least prefer to think - in that way.




>- So one pertinent question is: given that not much seems to have emerged
>since 1979 (that's 30+ years!), is there still anything to innovate in
>programming languages?


More expressive static type systems and better type inferencing would
be appreciated.


Something still is needed to better take advantage of parallelism.
Serial processing speeds ares not expected to improve in the near
future, and CSP (ala Hoare) at its current macro level of use has
reached it's limits. It's extremely difficult for a programmer to
identify all, or even most, of the parallelism potential in an
application and take advantage of it using existing CSP mechanisms.


There already are programming paradigms that better expose
parallelism, but we are lacking implementations that take advantage of
them. And some paradigms are difficult to use directly: e.g.,
dataflow, like continuation passing, often requires thinking about
inverted execution paths.




> Or have we reached the asymptotic plateau of
>innovation in this area?


Programming language design is not a single area - it encompasses
politics, logic, semantics, linguistics, mathematics, and even physics
because hardware ultimately decides what can be programmed and how.




>So, what are your views on this subject?


CREATE VIEW mine AS
SELECT opinion FROM me;




>Rui Maciel
>[Personally, I'd say there's been precious little new in programming
>languages since Simula gave us OOP in the late 1960s. In your responses,
>please remember this is comp.compilers, not comp.semicolon-placement.flame.
>-John]


I'd have to disagree with that. Declarative programming, though it
existed earlier (just as OO concepts existed prior to Simula), arose
as a paradigm in the 70's popularized by the introduction of Prolog.


As always, your semicolon placement may vary.
George


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.