Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: How to Implement Perl 6 in Ten Years

by audreyt (Hermit)
on Apr 21, 2010 at 03:16 UTC ( #835936=note: print w/ replies, xml ) Need Help??


in reply to How to Implement Perl 6 in Ten Years
in thread The current state of Perl6

Hi. This is 唐鳳, a.k.a. Audrey Tang.

For the record, I think what chromatic wrote above contains a fair and accurate assessment to Pugs.hs (Perl6-on-Haskell).

However, please note that it elided over our collective shift of focus to the Perl 5 runtime during 2006 on #perl6, which resulted in the first CPAN releases of Moose, Module::Compile, v6-alpha (now evolved into Perlito), Pugs::Compiler::Rule, etc.

So while Pugs.hs was indeed suddenly unmaintained due to my '07 hepatitis outbreak, already by '06 we have redirected our main efforts into coding Perl6-on-CPAN.

Concretely speaking, that means we took various Pugs.hs structures (Signatures, MetaObject logic, Grammar parser, etc) and coded counterparts for the Perl5 runtime.

I'm very happy with what turned out - indeed MooseX::Declare and Perl 5.12.0 went way far beyond our original vision, in a very good way.


As for Pugs.hs, the 6.2.x series has already fulfilled its goals.

In order to code the 6.28.x series (compile-time gradual typing) without unreasonable pain, it required several significant changes in the host language (Haskell).

Some of them were codified into Haskell 2010 (then known as haskell-prime), such as PatternGuards; some were implemented in GHC, such as Type Families and Quasi-Quoting.

In addition to the language changes, a better theoretical understanding of GADTs (which was deep black magic when Pugs.hs 6.2.x first used them), of OO+Functional type inference (Martin Odersky et al), of sound STM semantics and gradual typing (Jeremy Siek et al), was also essential in coding the type system of Perl 6 as originally envisioned.

Also notable was basic groundworks for 6.28.x such as Parsec Transformers, Dynamic-linkable binaries and Data Parallelism (to name a few) has gradually materialized as of early 2010, so folks who'd like to tackle type systems now have a significantly easier compilation-environment support than even a year before.


However, speaking for myself, though Haskell became sufficiently attractive to implement compile-time type analysis for Perl 6, the success of Moose and Pluggable Keywords in Perl 5.12.0 has convinced me that we can also fruitfully implement such analysis directly in Perl 6, or in Perl6-flavoured CPAN modules, which is a much more straightforward way to amass a developer ecosystem than coding it in Haskell.

As lambdamoose demonstrated, real programmers can write Perl 6 and/or Haskell in any language, particularly if that language is as polymorphically existentially recursive as Perl 5. :-)


Comment on Re: How to Implement Perl 6 in Ten Years
Re^2: How to Implement Perl 6 in Ten Years
by chromatic (Archbishop) on Apr 21, 2010 at 03:19 UTC
    However, please note that it elided over our collective shift of focus to the Perl 5 runtime during 2006 on #perl6, which resulted in the first CPAN releases of Moose, Module::Compile, v6-alpha (now evolved into Perlito), Pugs::Compiler::Rule, etc.

    Thanks for replying. I don't mean to minimize any of those projects by omission, and I apologize for not mentioning them. I'm glad to hear you consider my assessment of Pugs.hs accurate.

Re^2: How to Implement Perl 6 in Ten Years
by Anonymous Monk on Apr 21, 2010 at 05:09 UTC
    Do you have any plans of restarting the Pugs development?

      Well, The 6.2.x GitHub repository is kept alive by maintaining compatibility with latest Perl 5 and GHC releases.

      As of Pugs 6.28.x, as said in my previous reply, I think while it's attractive as a research project, I'd like to focus on more immediate developments in runtime-agnostic systems (such as Perlito), or on CPAN-interoperable layers (such as MooseX::Declare).

      All this can change if Hackage's userbase someday exceeds that of CPAN's, but I don't think it'll happen in the near future, if at all. :-)

        Thanks, Your work on Pugs provided a lot of feedback and much needed test suite for Rakudo development. And your efforts directed towards Moose et al are very much needed to keep the Perl community going forward. All in all, thanks for all the contributions you've made. All of them just add a lot of awesomeness to Perl.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://835936]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (6)
As of 2014-08-23 13:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (173 votes), past polls