Category:Perl 6: Difference between revisions
(Perl 6's typing is gradual, not weak...and it does both Nominative and Duck typing as desired...) |
mNo edit summary |
||
Line 24: | Line 24: | ||
Major new features include multiple dispatch, declarative classes, grammars, formal parameters to subroutines, type constraints on variables, lazy evaluation, junctions, meta-operators, and the ability to change Perl's syntax at will with macros and user-defined operators. |
Major new features include multiple dispatch, declarative classes, grammars, formal parameters to subroutines, type constraints on variables, lazy evaluation, junctions, meta-operators, and the ability to change Perl's syntax at will with macros and user-defined operators. |
||
There are several different implementations of Perl 6. They vary widely in design goals, degree of completeness, and current development activity. At present, the implementations closest to matching the specification are [http://www.pugscode.org/ Pugs], written in [[Haskell]], and [http://rakudo.org/ Rakudo], built on the [http://www.parrot.org Parrot] virtual machine; of these, only the latter is actively developed. There are also active efforts |
There are several different implementations of Perl 6. They vary widely in design goals, degree of completeness, and current development activity. At present, the implementations closest to matching the specification are [http://www.pugscode.org/ Pugs], written in [[Haskell]], and [http://rakudo.org/ Rakudo], built on the [http://www.parrot.org Parrot] virtual machine; of these two, only the latter is actively developed. There are also active implementation efforts on .NET and other platforms. |
||
<br clear=right><!-- Stop the category list and infobox from overlapping --> |
<br clear=right><!-- Stop the category list and infobox from overlapping --> |
Revision as of 16:01, 7 September 2010
This programming language may be used to instruct a computer to perform a task.
Official website |
---|
Garbage collected: | Yes |
---|---|
Parameter passing methods: | By reference, By value |
Type safety: | Safe, Unsafe |
Type strength: | Gradual |
Type compatibility: | Nominative, Duck |
Type checking: | Dynamic, Static |
Lang tag(s): | perl6 |
See Also: |
|
Perl 6 is the up-and-coming little sister to Perl 5. Though it resembles previous versions of Perl to no small degree, Perl 6 is substantially a new language; by design, it isn't backwards-compatible with Perl 5. In development since 2000, Perl 6 still lacks a complete implementation of its specification, the Synopses. However, the Rakudo implementation is getting close to that goal.
Damian Conway described the basic philosophy of Perl 6 as follows:
The Perl 6 design process is about keeping what works in Perl 5, fixing what doesn't, and adding what's missing. That means there will be a few fundamental changes to the language, a large number of extensions to existing features, and a handful of completely new ideas. These modifications, enhancements, and innovations will work together to make the future Perl even more insanely great -- without, we hope, making it even more greatly insane.
Major new features include multiple dispatch, declarative classes, grammars, formal parameters to subroutines, type constraints on variables, lazy evaluation, junctions, meta-operators, and the ability to change Perl's syntax at will with macros and user-defined operators.
There are several different implementations of Perl 6. They vary widely in design goals, degree of completeness, and current development activity. At present, the implementations closest to matching the specification are Pugs, written in Haskell, and Rakudo, built on the Parrot virtual machine; of these two, only the latter is actively developed. There are also active implementation efforts on .NET and other platforms.
Subcategories
This category has the following 4 subcategories, out of 4 total.
@
- Perl 6 examples needing attention (empty)
- Perl 6 Implementations (5 P)
- Perl 6 User (25 P)
P
- Perl 6 related (5 P)
- Garbage collection/Yes
- Parameter passing/By reference
- Parameter passing/By value
- Typing/Safe
- Typing/Unsafe
- Typing/Gradual
- Typing/Compatibility/Nominative, Duck
- Typing/Checking/Dynamic
- Typing/Checking/Static
- Programming Languages
- Programming paradigm/Dynamic
- Programming paradigm/Imperative
- Programming paradigm/Procedural
- Programming paradigm/Reflective
- Programming paradigm/Functional
- Programming paradigm/Object-oriented
- Programming paradigm/Generic