Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • I don't mean to be a troll or anything like that and I haven't really looked at the how the Perl 6 syntax has evolved over the years.

    So, out of curiosity I decided to take a look at the commit and I was bewildered by code such as:


    %*pads{$*current-block} = {};
    for $ -> $statement {
        self.find-vars($statement, 'statement');
    }

    I mean, I can see the point in Perl 5 sigils. They're not pretty, but they're acceptable and they didn't bother me in these almost 10 years I've been programming in Perl.

    But

    • Thank you for writing your comment. You're fears of being a troll are quite unfounded. You're quite frank, and your intention is clearly not to cause ire but to air your own distress. Let me try to help allay it.

      It's nice to be the one putting some Perl 6 code in the way of a Perl 5 programmer with ten years of experience. I'm not surprised that your first reaction to twigils is one of slight... unease. Perl 6 syntax is different, and not just in minor details.

      Things look like line noise when you don't know

      • I think I understand the motivation behind the twigils. In other programming languages you can't immediately tell if a variable name is a local variable or an object attribute, for instance.

        And while I can't think of a better solution, twigils just don't seem to be the best solution to me. Maybe always requiring the object to be explicit is a better solution (e.g. $self.attribute). But then you'll hit me with a TIMTOWTDI hammer since that probably also works. :)

        I don't agree that "line-noise appearance" com

        • And while I can't think of a better solution, twigils just don't seem to be the best solution to me. Maybe always requiring the object to be explicit is a better solution (e.g. $self.attribute). But then you'll hit me with a TIMTOWTDI hammer since that probably also works. :)

          Sorta, kinda, yes and no. :) Even considering what you say in your self-counterattack, many people will use the twigils anyway. Especially if they're the recommended default. Which they are.

          But these are very specific situations and you can even argue that it's a feature - these constructs should only be used by those who know what they're doing.

          Hm. Twigils as a shibboleth for tricky features. ("You have unlocked the '*' twigil and can now use... contextuals!") Yes, I guess so. But I still maintain that they're not as spooky as you imply, especially not the OO ones. The twigils make them fittingly stand out as "almost, but not quite, ordinary variables".

          Trying t

          • Well, I just looked at the new periodic table and if by "gorgeous" you meant "scary", I agree with you. :)

            If you think about it, I guess this discussion wouldn't even exist if Perl 6 wasn't called Perl 6. This implies it's a successor of Perl 5 and thus, eventually, Perl 5 will be obsoleted by Perl 6.

            Being completely honest, what goes through my mind when I read about Perl 6 these days is something like: "Oh shit, I will need to go through all this madness sometime in the future when Perl 6 is completed".

            I

            • In the interests of mutual understanding, I tried to look at the periodic table (which is here [ozonehouse.com], by the way), and tried to instill a measure of fear in myself. The closest I got was "huh, that's quite a lot of them, isn't it?".

              I think one of the big dividing points between the Perl languages on the one hand and other programming languages on the other, is that Perl embraces complexity -- often quite fearlessly. Language designers are known to talk about minimalism and orthogonality. Perl, in contrast, seems

              • I've actually read all these these references before posting here. I don't usually actively participate in discussions, though.

                "Scary" was the least offensive adjective I could think of to express my general disapproval of it. "Batshit fucking insane" sounds more like my thoughts. :)

                Anyway, the whole periodic table of operators sounded novel when I first looked at it a few years ago. These days, I just feel like such things could be the last nail in the coffin for Perl in general.

                I'm a bit more optimistic l

                • Masak and his homies won't acknowledge it, but having few and well-defined operators is a GOOD thing for a language. Operators are akin to prepositions and should be kept to a minimum, in my very humble opinion. I'm pretty sure chromatic/masak/lwall/etc don't think so, though.
                  • I'm pretty sure chromatic/masak/lwall/etc don't think so, though.

                    Very true, because operators are verbs. Prepositions in programming languages are rare. Perhaps regex modifiers count.

                    As for the larger question, parsimony of primitives leads directly towards dialectization, in the case of Forth-like languages; top-down standardization of APIs, in the case of Java; or oscillating periods of expansion and contraction towards contentious compromises, in the case of CLOS or Scheme. Each has disadvantages.

                    • "parsimony of primitives leads directly towards dialectization"

                      You are missing the point entirely. Firstly, minimising the number of operators, especially in perl 6's case, would be positive. Secondly, what you are saying, in plain English (I have my pretentiousness filter on) is "if we have very little primitives, we will get into a mess like lisp" and that's simply false - there are many programming languages in the middle of the spectrum that have not been (as you say) "dialectised" (which, according

                    • Firstly, minimising the number of operators, especially in perl 6's case, would be positive.

                      Why?

                      No, seriously. Why?

                      It's obvious you have a target number in mind. Quantify it. If there are facts, discoverable facts, for the design of an ideal programming language, let's be engineers about it. Be specific. "Too many" is not specific. "Fewer" is not helpful. "I know it when I see it" is opinion, not science. Be bold; back up your assertions.

                      I cheerfully ignore the reductio ad lambda calculus argument. Tell me the ideal number of operators for a given programming language and buttress it with studies or papers or interaction design tempered with the practical experiences of multiple developers on multiple successful projects. Ideally, these people have each implemented a Scheme with no more than six special forms in the compiler.

                      "if we have very little primitives, we will get into a mess like lisp"

                      Let's talk about complexity in simpler terms then. Perl 5's default object system is simple. You get method dispatch and bless. You can build anything you want out of that. The Class:: namespace on the CPAN demonstrates that many people do (and I can only imagine the DarkPAN). Now try integrating multiple object systems with different ideas about representation and access and initialization and encapsulation and lament the lack of coherence of the end product (especially if you have multiple applications of the Adapter pattern). It happened to Tcl and it happened to Lisp. It will happen to Lua with more code reuse. It even happens to JavaScript. Shells... well, sometimes I don't pick on the easiest targets.

                      The good news, if any, is that you save making class and method reserved keywords, even though you give up reliable reflection and take on complexities such as inherited AUTOLOAD and multiple, oft-conflicting, ways to assign to @ISA.

                      Complexity occurs somewhere. All the adults in the room know that we're merely pushing broccoli around on our dinner plates--but it's still all there.

                    • Because the operators are not obvious. Not even for Perl 5 programmers. They should be as obvious as +, or -. I'm not against introducing a couple of operators, if they make sense. In this day and age, the engineering goal of a programming language should be to make multithreading and object plurality as easy as possible. I think it's right to make operators smarter so they can operate on arrays or sole elements, but it seems to have gone to a confusing extreme in perl 6.

                      One small case, just looking at th

                    • One small case, just looking at the periodic table of perl 6 operators. I see a whole bunch of string comparison operators (leg, lt, lg, eq, ge, gt, ne) and a whole bunch of numeric comparison operators (<=>, >, <, etc etc) plus cmp plus eqv. Now, I haven’t had time to look at perl 6 deeply in years, but at first glance, that’s even worse than common lisp’s 5 different notions of equality.

                      You are aware that Perl 5 has almost all of these already, right?

                    • You are aware that Perl 5 has almost all of these already, right?

                      Yes.

                    • So, are you not going to post my comments on your blog, Mr. Christopher (aka chromatic)?

                      Since you and your friend Ovid seem to be only interested in what you two have to say to each other, I've started posting my comments in my own blog, http://fixingsoftware.blogspot.com/ [blogspot.com].

                      Granted, I didn't expect such unwarranted censorship. I guess it's only okay to talk about whatever you decide, huh? -- ank

                    • I'd rather discuss the Dick Grune research to which you alluded months ago. Did you ever find it? (I'm not Mr. Grune, nor Mr. Pierce, nor Mr. Carlyle, nor Mr. Romata either. What bizarre assertions.)

                    • No, your name is Shane Warden, and you've published a couple of books as S. Christopher. As for the rest - my Pierce books are laughing at you. I'm sure you want to be them, but it's obvious to everyone you fail (as for Romata, I think you should have said Tomita - he has nice parsers that are porbably the only ones that can parse your perl 6 monstrosity.) Also, I'm tired of you editing my comments, so I am still cross-posting this to my blog http://fixingsoftware.blogspot.com/ [blogspot.com]