Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re^3: v5, a reimplementation of P5 (was Re^5: A "Perl-7" that I could actually USE right now)

by chromatic (Archbishop)
on Jul 02, 2013 at 01:15 UTC ( #1041938=note: print w/replies, xml ) Need Help??

in reply to Re^2: v5, a reimplementation of P5 (was Re^5: A "Perl-7" that I could actually USE right now)
in thread A "Perl-7" that I could actually USE right now

I thought and still think that v5 perfectly matches those words.

No XS means no DBI and no DateTime. No XS also means no POSIX, no Fcntl, no Data::Dumper, no Storable, no Encode, no List::Util, and no Socket, to name a few core modules.

I don't know what kind of software you write, but without those modules most of the stuff I've written won't even load, let alone run, including some one-liners.

I'm sure it's a fun experiment for the author, but I could only write toy programs with it. I think I am not so alone in this.

I will not be ruled by the fear that chromatic's P6 wounds might still not have healed...

I shouldn't have to keep telling #perl6 this, but I recommend you spend a lot less time caring about how you imagine I might feel and more time understanding the technical concerns of people you're trying to market to.

  • Comment on Re^3: v5, a reimplementation of P5 (was Re^5: A "Perl-7" that I could actually USE right now)

Replies are listed 'Best First'.
Re^4: v5, a reimplementation of P5 (was Re^5: A "Perl-7" that I could actually USE right now)
by snoopy (Curate) on Jul 07, 2013 at 21:32 UTC
    Over on Backcompat is holding us back! you state:
    "Breaking XS would be awful, but it's probably necessary for the kinds of internal changes that produce either dramatic speed gains or allow further experiments on the CPAN. Unfortunately, it breaks most of the CPAN."
    And Stevan Little replies:
    "Actually the XS problem is easily fixed (for some definition of easy). Stop exposing the Perl guts via a macro layer and provide a real API (aka - level of indirection). Of course, then you need to convert all XS modules over to use it, but with a sensible deprecation cycle (of like 2+ years) that should be do-able (not to mention that it will shake out all the old crusty XS modules that no one maintains or cares about)."
    It could be that Moe and Perl6 are hitting similar issues with Perl5 integration/compatibility and they may have a common resolution.

      Yes, they may eventually solve the XS problem. They don't now, and to my knowledge neither has a credible solution to do so. Anyone who suggests otherwise—anyone who suggests that Moe or v5 is useful and usable in the same way that Perl 5 is now—is spreading misinformation.

      To be fair to Moe, no one has ever suggested that it is a worthwhile replacement for Perl 5.

        a worthwhile replacement for Perl 5.

        I still don't get all this endeavour to re-write P5 in P6. P5 is perfectly embeddable.

        Just embed perl5xx.dll/.so into the P6 compiler and provide:

        1. P6 built-in(s) to access p5 subroutines:

          Say something like:

          use P5 qw[ LWP::Simple ]; ... my $url :String = <...some P6 source>; my $content = p5call( "LWP::Simple::get( $url )" );
        2. P6 proxies for P5 objects:


          use P5 qw[ DBI DBD::Pg ]; ... my $dbi = P5Object( "DBI->connect( $dataSource, $userName, $userAuth, +\%attrs" ); ); my $sth = $dbi->prepare( 'SOME SQL HERE' ); ...

        Full compatibility at a stroke, and full P5 performance (within the p5 code), and a small hit through the thunking layer.

        How hard could it be to write the thunking layer? (It's gotta be easier than recreating P5 + XS + everything else.)

        I effectively do exactly this in my 15-line Perl5 REPL.

        With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.
Re^4: v5, a reimplementation of P5 (was Re^5: A "Perl-7" that I could actually USE right now)
by raiph (Deacon) on Jul 02, 2013 at 04:03 UTC
    Yes, my understanding is also that XS support is vitally important for the vast majority of legacy and contemporary uses of P5, even one-liners.

    The future is very hard to predict, but I'd guess that this general picture is likely to continue for the next decade. That said, I think v5 on Android, and custom v5 slangs, eg one making multicore processing convenient, might start to shift things.

    The P6 strategy has long been to support multiple bridges between P5 and P6, including both v5 and a libperl+XS bridge. See my recent Perl 6 <-> Perl 5 bridges PerlMonks comment for a few more details.

    I agree with your emphasis on technical concerns and that's generally my focus.

    However, we're all irrational creatures at heart and that seems to be particularly relevant in your case. Your continual disparagement of Larry Wall and those working with him ("I'm sure it's a fun experiment for the author") and what I see as wilful twisting of the P6 viewpoint (everywhere I've ever looked in the 13 years of the P6 project, the importance of CPAN and XS has been explicitly consistently recognized) suggests to me that you are either angry or contemptuous or both. I don't want anyone to be constantly angry or contemptuous about anything and especially not when it's directed towards Larry Wall and folk working for the betterment of Perl. So I spend time imagining about how you might feel so I might find a way to avoid triggering you. If there is not some underlying wound, please, please imagine how Larry Wall feels when you're considering what to write.

      Thanks for the lecture.

      (I'm not the only person who stopped contributing. A healthier project, I believe, would try to figure out why that is.)

      I spent nine years of my volunteer time working on various parts of P6 and Parrot, and I spent most of that time doing the unfun things that no one else really wanted to do, like fixing segfaults, plugging memory leaks, profiling performance problems, and even fixing performance problems. I did all of that because I wanted to use Perl 6 for real work.

      When Rakudo Star finally came out, it wasn't usable for real work. I had a list of specific technical limitations (and none of them were "it's too slow" or "it only runs on Parrot"). To this day, Rakudo has addressed none of them. The last time I tried to explain them to #perl6, no one even wanted to hear them. That's fine; I eventually realize when no one cares about what I care about.

      Volunteers will do what volunteers will do (though I'm not sure you can entirely characterize someone who's taking grant money from TPF as a volunteer), but to my mind their efforts still have not produced the useful and usable subset of Perl 6 they promised three years ago. The last time I cared to look, they were still chasing rainbows instead of writing documentation or making sure their installer works or keeping community-contributed modules passing tests. It's nice that they're having fun. I'm sure they have only the best intentions, but real artists ship.

      Many other people could have done what I did, but if you take away the couple of thousand commits I checked in or the design changes I helped to produce over the several thousand hours I spent on it all, P6 wouldn't look like it does today. If, in your eyes, even that doesn't earn me the right to criticize a project that still hasn't released anything that I can use productively today, then that's your problem—not mine.

      Now go ahead, whine that my negativity is discouraging potential contributors—because you're so certain that that must be the real problem.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (5)
As of 2020-09-21 13:09 GMT
Find Nodes?
    Voting Booth?
    If at first I donít succeed, I Ö

    Results (126 votes). Check out past polls.