Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Waiting for a Product, not a Compiler

by chromatic (Archbishop)
on Nov 27, 2011 at 22:18 UTC ( #940285=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Moose - my new religion
in thread Moose - my new religion

That's not how people wait for Perl 6.

I wrote my first serious Perl 6 code in 2005, because Pugs was mature enough to run it. (Admittedly I had to hack on Pugs with copious help from Audrey to make it run, but I did it.) Then Pugs hit a wall and I couldn't run it productively any more. (It took eight hours to run the full test suite with Pugs. I think this was around February 2006.)

Around the time Rakudo became Rakudo and not languages/perl6 in Parrot, I could run that code again. Then came the Rakudo rewrites. I was hopeful that the Rakudo Star release targeted at April 2010 (which slipped to the end of July) would mark the point at which I could have that code running and keep it running with minimal work. I don't mind making minor syntax changes to meet specification changes now and then (it was pretty standard and straightforward OO code with a little bit of multiple dispatch, after all), but the point of usability I wanted was the point at which I didn't have to pay the upgrade tax with every new compiler release just to keep working code working. (The program was effectively finished; it didn't need further development.)

Then came the Rakudo rewrites. I can't even describe this history effectively; I know Rakudo's gone through PGE and NQP and NQP-rx and NQP-ng and now nom, and I know I have them in the wrong order and I don't remember which of those occurred before Rakudo Star 2010.07. In a way, that doesn't matter.

I started to worry last December, and I stopped trying to maintain that program altogether in January when it was clear that the nom rewrite would take far longer and produce far more disruption than anyone else wanted to believe. The choice was between sticking with unmaintained code of Rakudo releases on an abandoned branch or switching to a rewrite in progress.

I knew that I could be wrong—things could have gone smoothly—so I decided to wait and see what happened. Now that nom has officially replaced master, it does have some improvements, but it still has substantial regressions. There's also still no new Rakudo Star release.

I'm not interested in telling other volunteers what to do or what to care about, but I cannot in good conscience say that "Perl 6 is just around the corner" when I (who started working on Parrot in August or September 2001 and on Perl 6 in February 2003) have to pay the upgrade tax every month to keep a relatively simple and finished program running.

I can overlook a lack of documentation (documentation is difficult) and occasional bugs and missing features. I can put up with specification changes (they've largely been for the better). I can choose whether to work around the lack of useful libraries (someone has to write them). I accept that people will work on what they want to work on, especially when most of them aren't getting paid to produce a useful product.

Yet with all of those disclaimers, trying to keep that simple program running across all of the changes in Rakudo became very much a waste of my time. The Perl 5 replacement isn't as nice in a compulinguistic sense, but it has the advantage of working and continuing to work without me having to modify it every few weeks (to get performance improvements or bug fixes). Six years was long enough for my experiment to show that Perl 6 really isn't just around the corner unless something changes dramatically.

(No, I'm not going to share that program, because the spectests cover every part of it. They have for years.)


Improve your skills with Modern Perl: the free book.


Comment on Waiting for a Product, not a Compiler
Re: Waiting for a Product, not a Compiler
by moritz (Cardinal) on Nov 28, 2011 at 06:23 UTC

    So let me get this straight: you say that Perl 6 isn't usable now because Perl 6 compilers have frequently broken your program(s) in the past. Is that correct?

      Again, I have no interest in telling volunteers what to do, and I'm not Ian Hague or a leader of TPF or a grant manager, so I have no interest in telling paid developers what to do, but I'll tell you the honest truth as I see it: given the history of every Perl 6 implementation so far (and Pugs and Rakudo in specific), I see a lot of interest in writing a compiler but very little evidence of desire to bundle that compiler into a product that real people can use to write and maintain real programs.

      (Before you tell me I'm a hypocrite for complaining instead of volunteering, I started contributing to Parrot in 2001 and Perl 6 in 2003. I've paid enough sunk opportunity costs, thank you.)

      I believe the current Perl 6 implementations have, as you adroitly put it, "fundamental flaws that aren't being addressed by any future plans for ... development that I've seen so far".

      Does the most recent Rakudo Star release represent a worthwhile point for someone to write a serious program in Perl 6? Does the most recent compiler release?

      How much work would the average non-committer have had to do to keep a serious program running on the monthly releases? How much research does this entail? (How much work would this have required since the first Rakudo Star release?)

      How many non-core modules pass their tests (or run at all) on the most recent compiler release? On HEAD?

      Given the Morton's fork of using a stable but buggy release of Rakudo (for which all development has stalled) and an unreleased version with admirable improvements but serious regressions, what is your average user interested in Perl 6 but not interested in writing a compiler to choose?

      What's Rakudo's bus number?

      Was Rakudo Star a "useful release"? Was it what people hoped? Did it meet expectations? (Did it meet promised expectations?)

      What are the plans to address this, if any? (Has anyone asked this question?)

      Given the history of the project (and how long it's been "right around the corner now, this time we mean it!"), why should I expect anything different now?

      Which parts of this situation suggest to you the words "usable" or "useful"?


      Improve your skills with Modern Perl: the free book.

        Hey chromatic,

        It is sobering to see how the 2 year Perl 6 project has turned in to 12 years, and still counting before a 6.0.0.

        I've followed p6 and parrot, and your path alongside that, for the last 12 years. I've read several of your posts about this this year, and now this one.

        Before getting into head space, I'd appreciate you trying to be explicit about your underlying feelings about p6 and parrot, separate from justification of them. I hear alienation, disappointment, frustration, confusion, exhaustion. (I don't hear anger or contempt.) Is that about right?

        To ensure some balance in the force, I want to also note that I imagine that many in the Perl 6 community will feel uneasy and even alienated when they read some of the posts you've made this year. Maybe I'm wrong, but I'm especially sensitive to what's going on with Pm. (I don't know.) I don't care if he never writes another line of code; he will remain a p6 hero in my book forever, as will you, and I want his life to be as wonderful as it could possibly be. OK, balance restored, I hope.

        Now to head space.

        > given the history of every Perl 6 implementation so far (and Pugs and Rakudo in specific), I see a lot of interest in writing a compiler but very little evidence of desire to bundle that compiler into a product that real people can use to write and maintain real programs.

        Perhaps the evidence is lacking, especially while Pm is away, but don't you feel it? I'd be amazed if there wasn't tremendous pent up desire to do exactly as you suggest. I suspect there is delayed gratification of superhuman dimensions going on.

        > I believe the current Perl 6 implementations have, as you adroitly put it, "fundamental flaws that aren't being addressed by any future plans for ... development that I've seen so far".

        Ha! Touche. :)

        I will understand if you prefer to pass on this, but what would your #1 pick be for a fundamental p6 flaw not being addressed by a plan (other than not being production ready)?

        > Does the most recent Rakudo Star release represent a worthwhile point for someone to write a serious program in Perl 6? Does the most recent compiler release?

        As you know, one hacker's serious is another's supercilious. I'm serious about that.

        You jumped in early enough to get early adopter burn out. But, from my perspective, I would guess that most people who jumped in since Rakudo Star shipped, with clear eyes, to write code they defined as "serious", would be impressed at what's going on, and delighted by what's in the latest compiler.

        > Given the Morton's fork of using a stable but buggy release of Rakudo (for which all development has stalled) and an unreleased version with admirable improvements but serious regressions, what is your average user interested in Perl 6 but not interested in writing a compiler to choose?

        A classic dilemma, common to users of any project when it's in the midst of making a painful but ultimately smart break with the past. No easy answers, but a smart break is a smart break. In this case, the dilemma is only lasting a few months, and is clearly paying off very handsomely for the project as a whole.

        > What's Rakudo's bus number?

        I'm more confident of catching the Rakudo bus than I was when it was really just Pm driving it.

        > Was Rakudo Star a "useful release"? Was it what people hoped? Did it meet expectations? (Did it meet promised expectations?)

        I'd like to see a poll on those three questions. And a follow up one asked in about April next year of the upcoming Rakudo Star release. And then a comparison of the two polls. (I have hopes and expectations about how that comparison will go, but make no promises.)

        > Given the history of the project (and how long it's been "right around the corner now, this time we mean it!"), why should I expect anything different now?

        If you've been hearing that it's right around the corner, and this time we mean it, for a long time, you can't be expected to expect anything good.

        Otoh, if you look at what's going on (not what people say is going on), well, I'm very excited by what I see...

Re: Waiting for a Product, not a Compiler
by Anonymous Monk on Nov 28, 2011 at 13:27 UTC

    Hallo chromatic,

    First want to say that hearing such things which just can't be seen as *try to move things in better direction* is sad especially from such well-deserved perler... You are right on many points and everybody know how look Parrot/Rakudo state. But yelling just *did not help*, for both sides of discussion.

    Second, your current detailed obiections about Rakudo Star are not well placed becouse it, in my opinion, practically landed ! Fact: I was using latest Star (2011.07) and probably week ago tried nom branch and was surprised that *everything* just worked ! So, practicaly, next Star is available now and oficially is planned on December. Do you know how big improvements are in ?

    Now about Perl6 state... Problem no. 1 is Parrot. IMO again. It was planned as reimplementation Perl5 low level functionalities eg. IO buffering to be base for ALL possible scripting languages. Few things work, other not eg. threads... And Rakudo rewrites happens becouse of lack of adequate functionality in Parrot, eg. MMD... Maybe problem is that Parrot developers and compilers developers are too separate communities ? Or maybe in some point there was lack of coordination. Rakudo devs ended implementing things around Parrot or on NQP level. I cannot say how bad or good that is but few things should happen in other way.

    So that NQP-xx stages are not (only ?) Rakudo devs fault. And yeling that new Star is not available when it is just landing is for what purpose ?

    And, personally, you have personal rights to be nervous in any way you like. But, to the point of other persons private rights. For example, maybe you will feel better when some nasty post make pressure to release Star month or two earlier. But, that core developer have serious family problems means something to you ?? Especially in project which is developed by volunteers. Aggresive lead is realy good but in war situation. Assertive anytime.

    So what you want to achive by depreciating Perl6 work done so far ? Want a product ? Everyone want the same ! Tell us something good, show what we doing wrong and not see. But some workable advices...

    And remember, that core developers set is just few ppls divided by 2 actively developed compilers. And probably Niecza is done seriously just by Sorear... Not looks realy like "community" rewrite. We need more ppls. And it is need to learn Perl6 before start active development, takes time too. Maybe few Parrot folks can move to Perl6 ? Probably pmichaud++ and jnthn++ comes from Parrot.

    Best regards

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (3)
As of 2014-09-19 04:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (129 votes), past polls