Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!border3.nntp.dca.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!news.iecc.com!nerds-end From: George Neuner Newsgroups: comp.compilers Subject: Re: Have we reached the asymptotic plateau of innovation in programming language design? Date: Thu, 08 Mar 2012 17:41:58 -0500 Organization: A noiseless patient Spider Lines: 97 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <12-03-016@comp.compilers> References: <12-03-012@comp.compilers> NNTP-Posting-Host: news.iecc.com X-Trace: leila.iecc.com 1331252706 82020 64.57.183.58 (9 Mar 2012 00:25:06 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Fri, 9 Mar 2012 00:25:06 +0000 (UTC) Keywords: design, history Posted-Date: 08 Mar 2012 19:25:06 EST X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:483 On Wed, 07 Mar 2012 13:52:47 +0000, Rui Maciel 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