perlmeditation
FoxtrotUniform
<p>So thanks to [Ovid] ([id://170938|here]) and [Tilly]
([id://76871|here]), I've been reading a lot of
[http://www.paulgraham.com/|Paul Graham]'s Lisp advocacy.
In one [http://www.paulgraham.com/icad.html|article], he
claims that, among other things, all languages approach
Lisp. (I'm not particularly strong on the theory, but
IIRC lambda calculus is Turing-equivalent, so he's
<i>de dicto</i> correct for any Turing-complete language.
But that's not my point.) He talks about how Perl features
many Lisp-isms, and how Python is steadily progressing
towards apotheosis as Yet Another Lisp Dialect.</p>
<p>Graham's basic, unspoken axiom is that Lisp is the One
True Way. Well, we've heard that one before. "Structured
Languages are the One True Way." "Object-Oriented
Programming is the One True Way." "AI is the One True Way."
Yeah, yeah, yeah.</p>
<p>Myself, I suspect that in twenty years, most of the
programming will be done by the language, and that most of
the time we'll be writing [http://www.cs.unh.edu/ccc/archive/constraints/archive/byte.html|Constraint Logic programs].
I'm guessing that our programming environment in a couple
of decades will be an optimizing compiler writ large, that
can look at a constraint-based description of a problem,
determine the best approach, and write (and execute) code to
solve it. Sure, a lot of the interesting work will be done
at a much lower level, but for most business problems, CLP
will be the way to go. (I also think that regexes will be
the preferred way to express those constraints.) Who cares
what I think? Predicting the future is almost universally
a futile exercise.</p>
<p>My copy of <i>High Performance Computing, Second
Edition</i> cites an anonymous quote:</p>
<blockquote>"I don't know what language they will be using
to program high performance computers 10 years from now, but
we do know it will be called FORTRAN."</blockquote>
<p>I can do one better than that:</p>
<blockquote>"I don't know what language we'll be using to
solve ubiquitous, practical problems 20 years from know, but
I do know it will be called Perl."</blockquote>
<p>Why? Because Perl borrows shamelessly and ruthlessly the
idioms and techniques of other languages and of emergent
styles of programming, and makes them work together. If CLP
really <i>is</i> the way to go, we'll have a Logic::CLP
module for Perl 6 and CLP builtins in Perl 7. If a totally
different model of computation appears, we'll have that
within a couple of releases.</p>
<p>Perl, and its developers, concentrate on making it easy
to solve real problems. Stylistic elegance, mathematical
brilliance, <i>Byte</i>-headlining buzzwords and, when
necessary, programming tradition all take a back seat to
that goal.</p>
<p>Perl isn't the One True Way because it's Perl, Perl is
as close as we've ever come to the One True Way because it
incorporates most of the other, reasonably successful, One
True Ways. And instead of sitting back and dogmatically
defending its current form, Perl seeks out and assimilates
<i>more</i> techniques. Currying. Hyper operators.
Anonymous classes (IMHO, the one thing that Java got so very
<i>right</i>). Firm typing. More explicit declarations.
If it works, we'll take it.</p>
<p><i>In hoc lingua vinces</i></p>
<p><tt>-- <br>
The hell with <a HREF="/index.pl?node=paco">paco</a>, vote for <a HREF="/index.pl?node=Erudil">Erudil</a>!<br>
/msg me if you downvote this node, please.<br>
:wq</tt></p>