Perl 6
Perl 6 Language Design Tablet: Revision 19
"Overview"[Perl 6 Tablets] - _Chapter:_ "0:Intr"[Perl 6 Intro Tablet], "1:Hist"[Perl 6 History Tablet], *"2:Design"[Perl 6 Language Design Tablet]*, "3:Var"[Perl 6 Variable Tablet], "4:Op"[Perl 6 Operator Tablet], "5:IO"[Perl 6 IO Tablet], "6:{}"[Perl 6 Block Tablet], "7:Sub"[Perl 6 Subroutine Tablet], "8:OOP"[Perl 6 OOP Tablet], "9:Rx"[Perl 6 Regex Tablet] - _Appendices:_ "A:Index"[Perl 6 Index Tablet], "B:Tables"[Perl 6 Lookup Tablet], "C:Best of"[Best Of Perl 6 Tablet], "D:Delta"[Perl 6 Delta Tablet], "E:Links"[Perl 6 Links Tablet]

----

{toc: }

"Larry Wall"<http://www.wall.org/~larry/>_: You should not take this picture to mean that linguistics is the opposite of common sense. But ehm, there are many computer scientists, who have complained that it should be more like engineering and less like an art. And I disagree. But thats oukay._

^^ Main Goal

Enjoy Life and *enjoy the freedom expressing yourself*. Which means: support you as much as possible and not to force you in any way. Perl 6 likes to be, even better than Perl 5, your humble servant for translating your thoughts into binary code (if possible).

^^ Strategy

Every style and level of expertise has to be supported and even more difficult: all of them have to play together well. The default often imitates a natural language (i.e. english). Strategies and concepts for this are coined in several often repeated terms.

^^ Terms

^^^ TIMTOWTDI

The everlasting slogan:"There is more then one way to do it.", meaning: your way is valid too. Only be aware of logical consequences.

^^^ All your paradigms belong to us

We learn/take/adapt from every source possible to offer the best of all breeds. And you should be able to keep your style when switching to Perl. Some of the paradigmes are structured, object oriented, aspect oriented, functional, design by contract, declarative and logical.

^^^ Buzzword compliant

This term is an extention to the last one. Not only every programming paradigm but also every technique or neat trick loudly markeded out there as "must have" "in the [%DATE%]", should be available in Perl 6 (or at least be possible) as long there is productive value in it. "named parameters", "lvalue subroutines", "parametrizable subclasses" or "hygienic macros" are just a few.

^^^ Keep easy things easy and hard possible

Beside TIMTOWTDI, the other ancient slogan. Even if nearly every cool idea is crammed into Perl 6 we don't loose track of the simple basics like read a file (with slurp and lines simpler than default P5) or print to the command line (got with say also simpler in most cases). Rule of thumb: if you can think of an concept as trivial, than it should be. And if you can think of a computable solution, it should be at last doable in Perl.

^^^ Huffman coding

That's a refinement of the last rule. It means that all the common, often used things have short straightforward names. The more verbose indicate less used, harder to grasp concepts or things that overwrite the default rules ("weird things should look weird"). It also implies that the defaults are leaning toward what a beginner/non-perl 5-programmer might expect ("hide the fancy stuff").

^^^ Waterbed theory of liguistic complexity

One step deeper

^^^ Topicalizer

^^^ Second system syndrome

^^ Trends

^^^ Less Unix Centric

Perl 1 was a child of the Unix world, borrowing a lot of folklore and words. As Perl 6 had to regularize the Regex and reform some other part, this heritage has become less visible.

^^^ Simple English

In Perl 5 we had my, our, use, require, bless, can, ISA (is a), chop and also of course if, else, goto and all the loops. Perl 6 adds given, when, take, WHERE, HOW, WHO and lot more everyday english which should make it easy to read.

^^^ Functional Programming

High order functions, currying, you name it. All that goodies are there, as Perl 6 aimes to an full support of functional programming.

----

"Overview"[Perl 6 Tablets] - _Chapter:_ "0:Intr"[Perl 6 Intro Tablet], "1:Hist"[Perl 6 History Tablet], *"2:Design"[Perl 6 Language Design Tablet]*, "3:Var"[Perl 6 Variable Tablet], "4:Op"[Perl 6 Operator Tablet], "5:IO"[Perl 6 IO Tablet], "6:{}"[Perl 6 Block Tablet], "7:Sub"[Perl 6 Subroutine Tablet], "8:OOP"[Perl 6 OOP Tablet], "9:Rx"[Perl 6 Regex Tablet] - _Appendices:_ "A:Index"[Perl 6 Index Tablet], "B:Tables"[Perl 6 Lookup Tablet], "C:Best of"[Best Of Perl 6 Tablet], "D:Delta"[Perl 6 Delta Tablet], "E:Links"[Perl 6 Links Tablet]


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.

Tag: 

Suggestions: