In my daily wanderings, I came across the Rindolf discussion which has sprung up over at use.perl.org and noticed that some fellow monks have too found this discussion and contributed to it - For those unfamiliar with this thread, Shlomi Fish has proposed a Perl 5 based dialect in direct counterance to some of the directions for change proposed for Perl 6.

In this thread, Shlomi Fish is quite vocal on some minor (and some not so) criticisms which some have with Perl and proposes to address these in this offshoot language. Specific criticisms and directional specifications raised include:

  1. The -> operators and . will remain the same as in Perl 5.
  2. Classes will be declared with a class { ... } construct and several can exist in the same module.
  3. An on_destroy() primitive that calls a callback when it is garbage collected.
  4. Globs will be replaced by return values.
  5. local is gone. Long live my() and our().
  6. Distinction between => and ,. No more possible hashes mishaps.
  7. Re-organization features: easier stubs programming, a better garbage collector that can handle circular references, Full Unicode support.
  8. A command-line switch that toggles proper tail recursion on and off.
  9. Factories: setting the default behaviour of Perl in an Object-Oriented way. You can keep several same settings at the same time, and they will be de-allocated when they go out of scope.
  10. Unambiguous x operator.
  11. General Depreciation of the scalar() context. scalar(@a) will be replaced by count(@a). Reversing a string will be performed by a function other than reverse()
  12.  

To my mind much of this proposed direction for Perl 5 is a flight of fancy, particularly given some of the follow up comments in the thread where Shlomi Fish admitted not fully understanding some of the aspects of the language proposed to be changed - However, this discussion has raised some interesting questions to my mind ...

 

 

perl -e 's&&rob@cowsnet.com.au&&&split/[@.]/&&s&.com.&_&&&print'

Replies are listed 'Best First'.
Re: Rindolf, Perl 6 and Wish lists
by dragonchild (Archbishop) on Feb 14, 2002 at 15:57 UTC
    Yes, syntax will change. Yes, we as programmers will have to get used to potentially conflicting syntax between Perl 5.x and Perl 6.x. Boo-hoo for us.

    I personally feel that, having programmed in Perl 4 and Perl 5, change as led by the Perl community is good! Who here will complain about references? Yet, I remember a ton of complaints re: references when they were introduced. Yet, that was the one thing that catapulted Perl from an obscure scripting language into an enterprise-level programming language.

    These things are why I, regardless of syntactic sugar, will gladly use Perl 6:

    1. Clean throw-catch syntax. eval-die just doesn't do it for me.
    2. One operator, one operation. We want that out of our functions, why not out of our language?
    3. The hyper-operators. They will make statements clean!
    4. Attributes and prototypes. Used correctly and consistently, they will make code more maintainable and proveably correct. This can only be a good thing.
    5. Parrot. Just the name is cool! The fact that I'll be able to embed opcodes wherever I want to is extremely powerful. Now, we get away from needing to go to C just to get our hands on the guts.
    And, this is just off the top of my head, given four Apocalypses, knowing the language is over a year away. I haven't read a single Apocalypse where I felt an error was being made. I don't expect to, either.

    ------
    We are the carpenters and bricklayers of the Information Age.

    Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.

Re: Rindolf, Perl 6 and Wish lists
by grinder (Bishop) on Feb 14, 2002 at 22:10 UTC

    As I read through these points, all I could think of what "what a peculiar collection of features." I daresay my own ideas for extending Perl 5 (keeping Perl 5 Perl 5?) would take it off in another wild tangent. But some of these points seem... worng to me. What a mishmash of ideas. Let's have a look...

    1. Dot or arrow? I am getting used to the dot.

    2. Classes. Huh?

    3. on_destroy(). If you need it, you need it bad, I suppose. But the name should be UPPERCASED.

    4. Globs will be replaced by return values. I can't parse that statement in any sensible way.

    5. local has its uses, in terms of overlaying a temporary value on a variable. When you need it, you need it bad.

    6. I have never had a hash mishap with , and/or =>. Again, I don't see the point.

    7. Proper tail recursion. Because it doesn't work correctly at the moment? Maybe so, but as I never use recursion except when playing I don't see this as a burning issue.

    8. Factories. Again, maybe I'm missing something. I suppose I should reread my Gang of Four, but this doesn't do anything for me.

    9. x operator? What, that one must employ the correct use of space? Well ok, but it's not something I lose sleep over.

    10. s/scalar/count/. That's an entirely gratuitous and subjective change.

    hmmm. When you look at it that way, it doesn't seem like such a big deal. Thanks for posting the information. At least I know now I can safely ignore Rindolf :) As far as I can tell, most of these issues are just stylistic, and so the idea is just to bend Perl to be more suited to writing a particular sort of Perl.

    <update> And now that I've read the use.perl.org thread I know I can safely dismiss the whole idea as the work of a nutcase. Sorry, but the guy is really off the wall. </update>

    As for what directions I'd like to see Perl 5 taking, I wish things like this would work:

    • my @arr = @ARGV || (1, 4, 9, 16); # || forces scalar context
    • my @args = ( 'p455w0rD', '5a1T' ); my $crypt = crypt( @args ); # crypt is prototyped as sub ($$) crypt;

    Those are two issues that bit me yesterday (hi japhy!). Although AFAIK these problems are emminently unfixeable because of other constraints.


    print@_{sort keys %_},$/if%_=split//,'= & *a?b:e\f/h^h!j+n,o@o;r$s-t%t#u'
      And now that I've read the use.perl.org thread I know I can safely dismiss the whole idea as the work of a nutcase. Sorry, but the guy is really off the wall.

      Thank you.

      You have articulated my thoughts so much better than I could.

      When I read the thread all I could think is "This guy wants to remove everything he doesn't understand, and replace them with other things that he doesnt understand."

      In my experience the majority of non CS professors that go around harping about tail recursion dont have a clue what they are on about...

      Yves / DeMerphq
      --
      When to use Prototypes?

        I may be a little dense (or I just didn't have the proper edumication) ... What's a good definition of tail-recursion? When is it used?

        ------
        We are the carpenters and bricklayers of the Information Age.

        Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.

      People that dislike local don't understand its extreme usefulness IMO. What they don't like about it (again IMO) is that it doesn't fit any other scoping used in more mainstream languages. It's so absolutely perfect for doing things like changing the disposition of signals or changing where output goes from a given calling point on down. Why would anyone think it necessary to get rid of such a useful construct?

Re: Rindolf, Perl 6 and Wish lists
by belg4mit (Prior) on Feb 14, 2002 at 15:41 UTC
    I've not hidden that I am definitely not enthralled by Perl6 thus far. I too do not wish to see my . and -> mangled. I'm also not especially pleased on the insistence that all filehandles will be objects; I know why people want it, but that doesn't mean I agree. I also am not a big fan of these objects posessing the punctuation variables as attributes or methods. Generaly I could do without the whole OO and typing trend.

    Thus far, these are the main things. I'll probably never use many of the new enhancements; just as there are many features of Perl5 I do not use. Sigils will take awhile getting used to, now that I no longer try to write things the intuitive way. I do like the idea of taking XS out of the picture though.

    I plan on typing use Perl5; a fair bit. Yes, I realize the Perl 6 engine will support Perl 5 syntax, however it is my understanding that this will lockout access to some of the new features. So this module would be a source-filter masking some of the less-desirable changes.

    --
    perl -pe "s/\b;([st])/'\1/mg"

Re: Rindolf, Perl 6 and Wish lists
by ignatz (Vicar) on Feb 14, 2002 at 16:26 UTC
    Rindolf??? And you are??? And you've done???

    I can't wait. I couldn't imagine better people working on it... the way Larry's been handling things... wow! The work on Parrot makes me want to go back to brush up on my assembly, and I HATE assembly.

    ()-()
     \"/
      `