Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!news-out.readnews.com!news-xxxfer.readnews.com!news.misty.com!news.iecc.com!nerds-end From: torbenm@diku.dk (Torben Ægidius Mogensen) Newsgroups: comp.compilers Subject: Re: Have we reached the asymptotic plateau of innovation in programming language design? Date: Wed, 14 Mar 2012 09:51:31 +0100 Organization: SunSITE.dk - Supporting Open source Lines: 59 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <12-03-038@comp.compilers> References: <12-03-012@comp.compilers> <12-03-013@comp.compilers> NNTP-Posting-Host: news.iecc.com X-Trace: leila.iecc.com 1331777587 325 64.57.183.58 (15 Mar 2012 02:13:07 GMT) X-Complaints-To: abuse@iecc.com NNTP-Posting-Date: Thu, 15 Mar 2012 02:13:07 +0000 (UTC) Keywords: history, debug Posted-Date: 14 Mar 2012 22:13:07 EDT 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:505 Joshua Cranmer writes: > I think what is need for mass adoption is the following: > 1. Robust implementations that are comparable in speed and power to what > exists. The success of languages like Ruby and Perl have shown that this is not a requirement. Both languages (at the time they caught on) had shoddy compilers that generated horribly slow code. They still haven't escaped this completely, though the situation is improved. > 2. Intuitive syntax to programmers. This probably explains why APL never > caught on :-) Saying that APL never caught on i wrong: It was one of the ten most used languages for a long time, and it is still used in many places. Additionally, it has influenced the design of many later languages (though these have tended to use ASCII syntax). But with the increasing use of UNICODE, non-ASCII syntax might well see a renaissance. As for what intuitive syntax means, this is debatable. You seem to mean "familiar", which certainly applies to why C-like syntax was used for Java -- the syntax was chosen to be familiar to programmers who had used C. Later C# used the same syntax to be familiar to Java programmers. But intuitive syntax can also mean consistent, unambiguous and without arbitrary restrictions, which certainly does not apply to C-style syntax. In a way, APL syntax is very intuitive: Operators are single characters, so you dont have problems parsing things like a+++b, where it is not clear where one operator ends and the next begins, evaluation order is consistent and there are few special cases. > 3. Ability to interface with existing code. This is, I agree, important. But with standardised multilingual protocols like Thrift, this is fairly easy to add afterwards. > 4. Proof that the code can solve real problems. If you can give people a > fully-featured web browser in language X, you're probably going to be > able to build more adoption than if the largest program is a calculator. That, on the other hand, is rarely important. What is more important is if the language is used as the standard language in a system that many people care about. C rode on the popularity of UNIX, Ruby on the popularity of Rails, and so on. Getting pushed by a major industry player is also important. This is how PL/I, Java and C# became popular. If, say, Apple decided that the way to program iOS in the future would be in a variant of Prolog, this variant would certainly become popular. A language can also gain adoption if it is used for teaching at a large number of institutions. You can argue that is how Pascal, ML, Scheme and Haskell gained adoption. While they are known mainly as teaching languages, all have a nontrivial industrial adoption, mainly in places that were started by academics and who mainly hire academics as programmers. Torben