Extreme Perl6 advocacy from founder of comp.lang.ruby Usenet newsgroup.

C

Conrad Schneiker

Note: This is the stripped plain text version of the much more readable
HTML article I've put on my home page at (www.AthenaLab.com). Enjoy.
:)

Perl6 - The Next "World's Greatest Programming Super-Language"?

Preface: I want to call your attention to an exceptionally fascinating
software development, while indulging in some entertaining and far-out
end-of-the-year speculation concerning Perl6. (I'm also hoping that
this note will help increase the likelihood of this speculation coming
true.) It will be interesting to check back a decade from now. (This
was last updated on Sunday, 12-18-2005. Apart from fixing typos, I'm
planning to leave this version "as is", and not "debug" it
further. I'll collect any updates and subsequently-discovered errors
in the Related and Other Links section.) FYI, I am the founder of the
comp.lang.ruby Usenet newsgroup. (Even though our paths have diverged,
I still think Ruby is a wonderful language, I still admire Matz and the
exceptionally newbie-friendly, helpful, well-mannered, and innovative
Ruby community, and I still wish them all continuing great success.
Indeed, I expect this development to substantially help Ruby and other
productively-innovative languages, over the long run.)

Even if you don't know about Perl, don't like Perl, or don't use
Perl, this is still important "good news".

(Here's why in a nutshell: The Perl6 virtual machine (aka
"Parrot") is building in the infrastructure needed to practically
support a wide range of other languages, including Ruby, Python, Tcl,
and of course Perl5, to name a few. This means that all languages that
target Parrot can have access to Perl's gigantic and well-organized
module archives (and vice versa)-to the great mutual benefit of their
users, and their users' clients).

I regard Perl6 as a (very much more) "humanized" and "mega
industrial strength" repackaging of the greatest and most powerful
features of Lisp (the predominant 20th century programming language for
artificial intelligence research and development), and which further
incorporates great ideas from Ruby, Python, and other practical and
innovative programming languages. Perl6 is a comprehensive redesign of
Perl5-many serious defects have been fixed, and some fixes involve
extremely powerful generalizations. For example, unlike Perl5's
clever but kludged-on "roll your own" object system, Perl6
elegantly incorporates multiple state-of-the-art object paradigms, some
powerful functional programming mechanisms, optional strict type
declarations, enhanced "good old fashioned" procedural programming
support, and it gives you the capability to morph it practically beyond
belief (to meet unanticipated future needs). For another example,
Perl5's flagship "regular expression engine" has become Perl6's
"rules engine", which allows sophisticated on-the-fly rule-based
grammar specification for generalized pattern parsing, recognition, and
transformation-and it's not limited to processing strings. Perl6
will be able to access Perl5's huge collection of CPAN (Comprehensive
Perl Archive Network) modules, and will able to compile Perl5 programs.

Given that Perl5 is often likened to a "Swiss Army
chainsaw"-Perl6 is comparable to a "Swiss Army T2 Terminator with
a full set of surgeon's tools, a fast laptop gene sequencer and
synthesizer, a fully automated laptop machine shop, and a
multi-kilowatt plasma torch" (but at your command, of course). Perl6
is far from perfect, and it seems to be getting almost as big as (but
not as clunky as) C++. But Perl6 is still a fantastic system
overall-a new class of (operating system-like) super-language as it
were-that in effect integrally incorporates and systematizes many
tremendously-improved versions of the software construction tools from
the "GNU-part" of "GNU/Linux" (and their BSD and UNIX
counterparts). Perl6 also seems to be (moderately) successfully
realizing the design goal of letting you get by with only learning
small subsets of the language as needed, so you can still "do simple
things simply" and easily. (It's the old "getting the camel's
nose in the tent" trick. :) Overall, the Perl6 design team seems to
have made enough generally-important and good-to-great pragmatic
tradeoffs to reach a historically new level of software "critical
mass".

Despite getting off to an agonizingly slow and very rocky start, I
think that it is still just barely possible for Perl6 to eventually
become as predominant for programming language users (although most
commonly as a secondary language) as English is for human language
users (partly as a widespread second language). What about Chinese?
Good question. For purposes of this analogical comparison, far more
Chinese speakers are learning English as a second language than vice
versa, and some dialects of Chinese are distinct languages for many
practical purposes. Incidentally, Perl6 will be able to support Chinese
language Perl6 programming by virtue of its Unicode support and
compile-time customization capabilities. Perl6 is insanely
flexible-but that includes the flexibility to enforce desired
conventions as well.

If I was appointed to distribute a few million dollars in grants for
generally improving the world (with a focus on boosting the rate of
scientific and technological progress), by way of diversification I'd
definitely spend one of those millions on jumpstarting Perl6. (Hint!
Hint! :)

If I'm even half-way correct about Perl6's prospects, then this has
some incredibly important scientific, technological, and economic
implications. There will be many "semi-awesome" software systems
and projects involving large scale collaborative and distributed
systems, both open source and commercial. Perl6 and C6PAN should also
emerge as the most common language for very advanced automation
systems, sophisticated robotics, and artificial intelligence
programming systems. These prospects seems far-fetched and
highly-speculative even to me, and there's a lot that could still go
wrong (again!) before the first production version of Perl6 appears.
However, I haven't seen anything nearly as interesting in the
computer programming language realm since I learned to program
extremely elementary Lisp using punched cards. (I'm excluding some
great but relatively more hardware/economics related advances such as
terminals, PCs, and the awesome web.) So I'm taking a huge chance and
sticking my neck way, way out on this one-in the (possibly vain) hope
that, many years from now, I'll be able to say "I told you so"
(first, and publicly). Meanwhile, please see the Perl6 section in
Related and Other Links for some handy links to help you get started
checking out current developments.

Best Regards,
Conrad Schneiker
 
C

Conrad Schneiker

Upon sending the preceding post, many em dashes got translated into "-"
(hyphens) rather than into "--" (long dashes). The preceding text will
be more intelligible if you keep that unfortunate glitch in mind. I
somehow missed that in the preview (if indeed it showed). Sorry about
that.

Best regards,
Conrad Schneiker
 
I

Iain Chalmers

Matt Silberstein said:
This seems as good a place as any to ask this: what, if any, is the
best guess as to when perl6 will be released?

I think the "official" answer is "when it's done".

I think the "usual" answer is "at least two years", and thats been
current for maybe 3 or 4 years now.

Whether there's a "useful" answer... I dunno...

big
 
M

Matt Silberstein

T

Tassilo v. Parseval

Also sprach Matt Silberstein:
It is useful, it means I can ignore perl6 for any rational decision
making.

What you can do already now is play around with pugs which is a Perl6
prototype written in Haskell. I've never used it myself yet but I heard
it's quite cool and already supports many of those features you praised
in your posting.

Tassilo
 
M

Matt Silberstein

Also sprach Matt Silberstein:


What you can do already now is play around with pugs which is a Perl6
prototype written in Haskell. I've never used it myself yet but I heard
it's quite cool and already supports many of those features you praised
in your posting.

I think you confused me with someone else. And I am more interested
these days in what I can use now, not what I can learn for some far
future. If something is going to be released in 2 (or 2+) years I
don't need to play with it now or think about it. I can learn and use
another language or two while waiting.

--
Matt Silberstein

Do something today about the Darfur Genocide

http://www.beawitness.org
http://www.darfurgenocide.org
http://www.savedarfur.org

"Darfur: A Genocide We can Stop"
 
C

Conrad Schneiker

I think the "official" answer is "when it's done".

That's correct.
I think the "usual" answer is "at least two years", and thats been
current for maybe 3 or 4 years now.

More or less correct as well -- however things have changed
*dramatically* for the better this year. With the advent of Pugs
early this year plus major Parrot releases later on, the pace of
development has picked up considerably, which in turn is attracting
more resources. If (and that's a *huge* "if" at present) things
continue to go well, and if they continue to snowball, my current
*wild* guess is 1-2 years. (I'm hoping that helping to spread the word
about this may help a bit. I'm hoping you'll also help do that.)

By the way, the extremely convenient download available from the pxperl
site mentioned below made it *easy* for this (MS Win XP) user to do his
first "Hello World!" Perl6 program. After years of waiting, it seemed
like a minor miracle.

Future question (hint!, hint!): "And how long have you been programming
in Perl6?" There are only a few more Perl6 programming days left in
2005. :)

Here are some pointers to Perl6 news and developments:

* (http://planetsix.perl.org/) -- Aggregator of blogs of some key
developers of Perl6, including the weekly Perl6 summaries (that are no
longer being posted to perl.com).
* (http://dev.perl.org/perl6/) -- Links to design documents.
* (http://pxperl.com/?pxperl) -- Convenient bundle of stuff for MS
Windows that includes routinely-updated early implementations of Perl6
(Pugs).
* (http://dev.perl.org/perl6/faq.html) -- Perl6 FAQ
* (http://dev.perl.org/perl6/people.html) -- Who's Who in Perl 6,
Parrot, & Pugs
* Google search and Google (news)Groups search on "Perl6" will turn
up lots more information.

Google groups (Note: if you post to these groups, you should do so from
the corresponding mailing lists to insure that your post is seen by
other subscribers. Check the instructions at the of the weekly Perl6
summaries for details.):

* perl.perl6.internals
* perl.perl6.language
* perl.perl6.announce
* perl.perl6.compiler

Best regards,
Conrad Schneiker

((What follows is just a copy of my original post, with the hyphen/em
dash conversion done manually to circumvent the previous posting
glitch.))

Perl6 -- The Next "World's Greatest Programming Super-Language"?

Preface: I want to call your attention to an exceptionally fascinating
software development, while indulging in some entertaining and far-out
end-of-the-year speculation concerning Perl6. (I'm also hoping that
this note will help increase the likelihood of this speculation coming
true.) It will be interesting to check back a decade from now. (This
was last updated on Sunday, 12-18-2005. Apart from fixing typos, I'm
planning to leave this version "as is", and not "debug" it
further. I'll collect any updates and subsequently-discovered errors
in the Related and Other Links section.) FYI, I am the founder of the
comp.lang.ruby Usenet newsgroup. (Even though our paths have diverged,
I still think Ruby is a wonderful language, I still admire Matz and the
exceptionally newbie-friendly, helpful, well-mannered, and innovative
Ruby community, and I still wish them all continuing great success.
Indeed, I expect this development to substantially help Ruby and other
productively-innovative languages, over the long run.)

Even if you don't know about Perl, don't like Perl, or don't use
Perl, this is still important "good news".

(Here's why in a nutshell: The Perl6 virtual machine (aka
"Parrot") is building in the infrastructure needed to practically
support a wide range of other languages, including Ruby, Python, Tcl,
and of course Perl5, to name a few. This means that all languages that
target Parrot can have access to Perl's gigantic and well-organized
module archives (and vice versa)--to the great mutual benefit of their
users, and their users' clients).

I regard Perl6 as a (very much more) "humanized" and "mega
industrial strength" repackaging of the greatest and most powerful
features of Lisp (the predominant 20th century programming language for
artificial intelligence research and development), and which further
incorporates great ideas from Ruby, Python, and other practical and
innovative programming languages. Perl6 is a comprehensive redesign of
Perl5--many serious defects have been fixed, and some fixes involve
extremely powerful generalizations. For example, unlike Perl5's
clever but kludged-on "roll your own" object system, Perl6
elegantly incorporates multiple state-of-the-art object paradigms, some
powerful functional programming mechanisms, optional strict type
declarations, enhanced "good old fashioned" procedural programming
support, and it gives you the capability to morph it practically beyond
belief (to meet unanticipated future needs). For another example,
Perl5's flagship "regular expression engine" has become Perl6's
"rules engine", which allows sophisticated on-the-fly rule-based
grammar specification for generalized pattern parsing, recognition, and
transformation--and it's not limited to processing strings. Perl6
will be able to access Perl5's huge collection of CPAN (Comprehensive
Perl Archive Network) modules, and will able to compile Perl5 programs.

Given that Perl5 is often likened to a "Swiss Army chainsaw"--Perl6
is comparable to a "Swiss Army T2 Terminator with a full set of
surgeon's tools, a fast laptop gene sequencer and synthesizer, a
fully automated laptop machine shop, and a multi-kilowatt plasma
torch" (but at your command, of course). Perl6 is far from perfect,
and it seems to be getting almost as big as (but not as clunky as) C++.
But Perl6 is still a fantastic system overall--a new class of
(operating system-like) super-language as it were--that in effect
integrally incorporates and systematizes many tremendously-improved
versions of the software construction tools from the "GNU-part" of
"GNU/Linux" (and their BSD and UNIX counterparts). Perl6 also seems
to be (moderately) successfully realizing the design goal of letting
you get by with only learning small subsets of the language as needed,
so you can still "do simple things simply" and easily. (It's the
old "getting the camel's nose in the tent" trick. :) Overall,
the Perl6 design team seems to have made enough generally-important and
good-to-great pragmatic tradeoffs to reach a historically new level of
software "critical mass".

Despite getting off to an agonizingly slow and very rocky start, I
think that it is still just barely possible for Perl6 to eventually
become as predominant for programming language users (although most
commonly as a secondary language) as English is for human language
users (partly as a widespread second language). What about Chinese?
Good question. For purposes of this analogical comparison, far more
Chinese speakers are learning English as a second language than vice
versa, and some dialects of Chinese are distinct languages for many
practical purposes. Incidentally, Perl6 will be able to support Chinese
language Perl6 programming by virtue of its Unicode support and
compile-time customization capabilities. Perl6 is insanely
flexible--but that includes the flexibility to enforce desired
conventions as well.

If I was appointed to distribute a few million dollars in grants for
generally improving the world (with a focus on boosting the rate of
scientific and technological progress), by way of diversification I'd
definitely spend one of those millions on jumpstarting Perl6. (Hint!
Hint! :)

If I'm even half-way correct about Perl6's prospects, then this has
some incredibly important scientific, technological, and economic
implications. There will be many "semi-awesome" software systems
and projects involving large scale collaborative and distributed
systems, both open source and commercial. Perl6 and C6PAN should also
emerge as the most common language for very advanced automation
systems, sophisticated robotics, and artificial intelligence
programming systems. These prospects seems far-fetched and
highly-speculative even to me, and there's a lot that could still go
wrong (again!) before the first production version of Perl6 appears.
However, I haven't seen anything nearly as interesting in the
computer programming language realm since I learned to program
extremely elementary Lisp using punched cards. (I'm excluding some
great but relatively more hardware/economics related advances such as
terminals, PCs, and the awesome web.) So I'm taking a huge chance and
sticking my neck way, way out on this one--in the (possibly vain) hope
that, many years from now, I'll be able to say "I told you so"
(first, and publicly). Meanwhile, please see the Perl6 section in
Related and Other Links for some handy links to help you get started
checking out current developments.

((The much more readable original version of above text, with full
formatting, is on the home page of (www.AthenaLab.com).))
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,045
Latest member
DRCM

Latest Threads

Top