Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: How to Sell Perl 6

by Abigail-II (Bishop)
on May 04, 2004 at 09:13 UTC ( #350266=note: print w/replies, xml ) Need Help??

in reply to How to Sell Perl 6

Perl 6 had to happen, though.
Really? Perl6 has been worked on for four years now, and it's probably going to take a few years before it's production ready. Has Perl5 shown any signs of dying since then? 5.6.0 was just released when work started on perl6. We're now on version 5.8.4, with releases sceduled 4 times a year. Work is progressing on 5.9.x, eventually resulting in 5.10. As Arthur was saying to me on the last Nordic Perl workshop, "Perl5 is dying. There are 14 Perl conferences this year". 14 conferences. About an existing product that's doing fine.

Perl5 has been doing the job for me for years. 95% of the Perl code I've written in the past 9 years will not be valid Perl6 - normal, everyday code. I see no reason to "sell perl6". I don't even want to buy it.


Replies are listed 'Best First'.
Re: Re: How to Sell Perl 6
by thor (Priest) on May 04, 2004 at 12:14 UTC
    The rhetorical question that I pose to you is: what makes it less than desireable for you? I'm sure that there were those who said the same during the Perl4 -> Perl5 migration; arguments that we see today as either crusty or silly. I'll admit that I'm not up on Perl6 at all. I see no reason to learn a language that won't see the light of day for a couple of years. Heck, I don't even know that the specification is done. So part of this question is asked in ignorance. What kind of code that you have written today breaks tomorrow?


      What kind of code that you have written today breaks tomorrow?
      • I use hashes, and I index in them.
      • I use subroutine/method calls on the LHS of binary operators.
      Almost all of the code I write uses one or both of the items I mention. All of that either becomes invalid, or changes meaning.

      my %hash; $hash {key} = "foo"; # Illegal in Perl6, even after s/\$/%/ my $str = "99 miles to L.A."; print length ($str) + 1; # Prints 17 in Perl5, 3 in Perl6.

      This is very basic stuff to write, which I do many, many times in code (and I guess many people use hashes, and use subs/methods in expressions).


        I tend to only reply to Abigail-II when I disagree; this isn't one of those cases. Using whitespace to control grouping is dumb, dumb, dumb; that's what parens are for. This is going to be an endless source of bugs for newbies (in addition to offputting non-newbies such as Abigail).

        I'd welcome hearing rebuttals the other side (but not enough to venture into the perl6 lists to hear it).

          What kind of code that you have written today breaks tomorrow?
        • I use hashes, and I index in them.
        • I use subroutine/method calls on the LHS of binary operators.

        Perhaps I'm mistaken, but looking at your examples, aren't they both aspects of the whitespace-between-tokens issue that was discussed here recently?

        Furthermore, I have been under the impression that old code was going to be parsed under a Perl-5-compatibility mode that presumably would use the old whitespace rules... Am I mistaken, or will this allow your old code to still work without change?

      Although I disagree with his conclusion, I have to agree with his statement. Most of my code will break under Perl6, too. The Perl5 -> Perl6 ease-of-migration stuff is for the simpler uses of Perl. Once you start getting into symbolic references and symbol table manipulations and beyond-the-surface objects ... this isn't going to migrate. And, I know that if I'm doing that stuff, Abigail-II is definitely doing it.

      Additionally, every single bit of XS is going to have to be rewritten. Granted, it gets to rewrite it in Parrot which is much nicer, but it's still a big task. Ponie may or may not help this part.

      We are the carpenters and bricklayers of the Information Age.

      Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose

        Rumor control.

        The point of Ponie is to provide an implementation of Perl on Parrot. Large documented pieces, like symbolic references, symbol table objects and so on are all going to be supported and will migrate just fine. If you're worried about that breaking, don't. And when you have Ponie, the Perl6 -> Perl5 compatibility layer will be, "just run it in Ponie".

        The problem comes with corner cases. For instance you lose timely destruction mechanics. My ReleaseAction is an extreme example of something that breaks. There will be inevitable subtle changes that break various JAPHs. What will change, where, nobody can predict. But if you're sticking to stuff (other than timely destruction mechanics) which is in Perl's test suite, then you should be fine.

        About XS, there as well you may be in luck. The Ponie effort has a plan to support XS out of the box. I trust that this will work. So if you're using XS stuff that only stuck to documented interfaces, then you should be fine. If you're using XS stuff that went mucking around with Perl internals, you're probably out of luck. However any major piece of Perl software, for instance DBI, will be considered a priority to support, and inevitably you will see fixes to one or both sides to get them to run.

        So you'll have problems timely destruction mechanics, some obscure and undocumented corners to the language, and smaller XS projects that didn't stick to the API they were told to. Otherwise Ponie should mostly Just Work.

Re: Re: How to Sell Perl 6
by chromatic (Archbishop) on May 04, 2004 at 15:18 UTC

    Would there be 14 Perl conferences this year without the shot in the arm Perl 6 provided? Would there be a Perl 5.8.4?

    I don't know, but I think there's a correlation.

      I'm fully convinced that if there wasn't a perl6 effort, we'd now been seeing maintainance releases for 5.10 with a 5.12 looming on the horizon.

      As for whether there would be 14 conferences without perl6, I don't know. Is there any Perl conference this year which is mainly about perl6? The last conference I attended had three perl5 and perl1 pumpkin, but no perl6 pumpkins. It had a large talk about perl5 development, but not about perl6.

      I've two more conferences to go to this year, I'll see what's happening there.


        <shameless plug>
        Come to the Austrian Perl Workshop and enjoy both a Perl6 and Perl5.8 pumpking!
        </shameless plug>
        -- #!/usr/bin/perl for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
Re(2): What's your objection to Perl 6?
by Ovid (Cardinal) on May 04, 2004 at 16:10 UTC

    Out of curiosity, what's your main objection to Perl 6? I've read repeatedly where you've stated that you're not keen on the language, but I've never quite figured out why. I assume it's nothing as simple as "comfort level" simply because you strike me as being more thoughtful than that. Could it be that you think Perl 6 won't catch on? Do you feel that Perl 5 is technically superior to the (admittedly non-existent) Perl 6 or that Perl 5 will be easier to use? Is it a "wait and see" attitude? I suppose it's probably something else entirely.

    What I read is "I won't use Perl 6 because it's not Perl 5," but I'm pretty certain that I'm misunderstanding you.


    New address of my CGI Course.

      I won't speak for Abigail-II, but I object strongly to the whitespace rules that were shown in A12. I know Abigail-II has objected to the hash index whitespace restrictions in earlier Apocs, but they didn't bug me so much. The method lookups are a different story.

      I also think the A12 whitespace restrictions highlight a problem that has always been there but few, if anyone, have ever noticed. In an awful lot of programming languages, parans are used both for grouping and for function calling, this being a relic of mathmatical notation. VB makes it even worse by using parens for array indexing.

      I think we should come up with a completely different notation for these concepts, though I'm baffled as to what that notation should be. Perl6 is already crawling into Unicode to fill in the need for an increasing number of operators, and I'm not too fond of that, either.

      : () { :|:& };:

      Note: All code is untested, unless otherwise stated

      Out of curiosity, what's your main objection to Perl 6?
      My main objections? Definitely its sensitive whitespace rules. It wouldn't be so bad if it was for some cases which didn't happen that often. But indexing and method/subroutine calls? That will effect about every other line of code. That would require a massive change of coding style - a style that I've been using for two decades. And for what? That we might leave off parenthesis every now and then.
      Could it be that you think Perl 6 won't catch on?
      Probably as much as perl5 is. Perl isn't a big language like C or Java are - I don't expect perl6 to make Perl "bigger". But within a few years, perl5 will be as common as perl4 is now. But I expect that to happen if we name 5.10 "perl6" as well. People have a tendency to use products with the highest number anyway, perl5 will get the name to be unsupported (whether it is or isn't doesn't matter), and publisher seeing they can sell more "perl6" than "perl5" books will do the rest.
      Do you feel that Perl 5 is technically superior to the (admittedly non-existent) Perl 6.
      That I would find unlikely. However, I do feel that the perl6 project has been a drain on perl5 development. Not only because some people stopped working on perl5 development, but also of the attitude "why bother implementing, let's wait for perl6". We'll never know where perl5 would have been if there wasn't a perl6, but I'm sure it would have been much further than it's now.
      Perl 5 will be easier to use?
      For me, perl5 will be much easier to use. For others, I do not know. Perl6 syntax appears to be even richer than perl5s, so I presume the learning curve for perl6 will even be steeper than for perl5. (Yes, I know you can get by by knowing only part of the language - but that's not a luxury every maintaince programmer has - and that's how many programmers start, and that's also how the open source movement works).

      I'm not going to argue that there's nothing good about perl6. It has lots of interesting features. But I think the price is too high. For me personally, the whitespace rules aren't worth it. For perl itself, I'm not convinced the years it has taken so far, and the years it still might take will be worth it.


Re: Re: How to Sell Perl 6
by Arunbear (Prior) on May 04, 2004 at 10:31 UTC

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://350266]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (3)
As of 2018-05-26 07:14 GMT
Find Nodes?
    Voting Booth?