Perl 6
Perl 6 Prospectus: Revision 8

Under construction by Conrad Schneiker. Please feel free to contribute. Especially needed: diagramatic illustrations.

The Prospects and Implications of Perl 6 + CPAN6

This page explains why Perl 6 + CPAN6 are incredibly important, and why you should support them (even if you never plan to use them).

Executive Summary

Overview of the extended Perl 6 ecosystem

Perl 6, the most pragmatically-powerful general-purpose scriptable programming language

CPAN6, the new programming "Library of Alexandra"

Runtime platforms

The Parrot dynamic languge VM, for keeping up with Moore's Law parallelism and more

Javascript (on all major browsers)

Implications of Perl 6 + CPAN6 + Parrot

Commercial programming implications

Academic implications for teaching programming and computer science

Economic implications

Science and technology implications

Stuff to be organized....

Cut and pasted from the web.

Alan Perlis' epigram #19: "A language that doesn't affect the way you think about programming, is not worth knowing."

Lisp is fantastic versatile, by means of ingenious recourse to a very “symbolically sterile” syntax that is perceptually “greatly under Huffmanized”. A symbolically “more normal” syntax helps give you a feeling of what's idiomatic versus what's weird.

Vocabulary: slurpy

The 20/80 language.

If you're a language junkie, you've probably noticed that Perl 6 supports just about every feature in just about every other dynamic language in widespread use, if you remove the surface syntax.



Quick and exploratory programming.

Somewhat analogous to natural languages, Perl 6 allows meaningful and upwards-compatible levels of “baby talk”, “child talk”, “adolescent talk”, “adult talk”, and “expert talk”.

Perl 6 is defined as anything that passes the official Perl 6 test suite (versus any specific implementation). Perl 6 is defined primarily by its desired semantics, not by accidents of implementation history (as sometimes inadvertently happened with earlier versions of Perl).

Perl 6 should be malleable enough that it can evolve into the imaginary perfect language, Perl 7. This Darwinian imperative implies support for multiple syntaxes above and multiple platforms below.

Perl will continue to be a multiparadigmatic, context-sensitive language. We are not turning Perl into any other existing language.

Perl 6 will support 2-way migration, and allows you to mix Perl 5 and Perl 6 code (with granularity at the block and module levels).

To naturally support “industrial-strength” and “enterprise-class” scaling, Perl 6 code is strict by default (but provides a non-strict option, which is handy for quickie scripting and so on).

It must be possible to write policy metamodules (for example, “best practices” requirements) that invoke other modules on the user's behalf.

If you want to treat everything as objects in Perl 6, Perl will help you do that. If you don't want to treat everything as objects, Perl will help you with that viewpoint as well.

Operators are just functions with funny names and syntax.

“Languages, libraries, platforms, and tools that scale down to small projects have advantages as well, particularly for encouraging energetic and dedicated novices to teach themselves how to use a technology.”

A final important type of scalability is from novice to experienced practitioner. How well does the ecosystem encourage people to become productive and to develop good taste in using the language’s idioms, patterns, and strengths effectively?

Scalability depends on what you need to do now and expect to do in the future.

project management scalability

Several operators have been given new names to increase clarity and better Huffman-code the language

Upload Files

Click "Browse" to find the file you want to upload. When you click "Upload file" your file will be uploaded and added to the list of attachments for this page.

Maximum file size: 50MB

File Name Author Date Uploaded Size

Save Page As

Enter a meaningful and distinctive title for your page.

Page Title:

Tip: You'll be able to find this page later by using the title you choose.

Page Already Exists

There is already a page named XXX. Would you like to:

Save with a different name:

Save the page with the name "XXX"

Append your text to the bottom of the existing page named: "XXX"

Upload Files

Click "Browse" to find the file you want to upload. When you click "Add file" this file will be added to the list of attachments for this page, and uploaded when you save the page.

Add Tags

Enter a tag and click "Add tag". The tag will be saved when you save the page.