From: | torbenm@diku.dk (Torben Ęgidius Mogensen) |
Newsgroups: | comp.compilers |
Date: | Wed, 14 Mar 2012 09:51:31 +0100 |
Organization: | SunSITE.dk - Supporting Open source |
References: | 12-03-012 12-03-013 |
Keywords: | history, debug |
Posted-Date: | 14 Mar 2012 22:13:07 EDT |
Joshua Cranmer <Pidgeot18@verizon.invalid> 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
Return to the
comp.compilers page.
Search the
comp.compilers archives again.