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

Perl 6 critique is a good thing

by Juerd (Abbot)
on Oct 18, 2004 at 12:32 UTC ( [id://400124]=perlmeditation: print w/replies, xml ) Need Help??

I, for one, was happy to see Fish' critique on Freshmeat. That doesn't mean I think he's right. On the contrary. However, it did cause public discussion and made lots of people aware of Perl 6 and why it is needed. Ovid and Schwern possibly had never written these excellent rebuttals if it weren't for a public provocation.

The article, even though it is mostly nonsense, mentions myths that live in too many minds. The people who believe in those myths will read this article, because it seems to agree with what they think. Hopefully, they also read the truth that is in the replies. I think that many of the people who think (or thought) badly about Perl 6 would not have read yet another all-positive article.

I want to publicly thank Shlomi Fish for writing his article. Shlomi, you're wrong and you should by now know that and why you are, but still: thanks.

Obviously, my thanks for the people who took the time to tell the world about a more true reality is even bigger.

I wonder if I'm the only one who thinks this kind of public discussion is good for Perl 6. Maybe some think it's a waste of time of the smart people who defend Perl 6, or have other objections. What is your view?

Juerd # { site => 'juerd.nl', plp_site => 'plp.juerd.nl', do_not_use => 'spamtrap' }

Replies are listed 'Best First'.
Re: Perl 6 critique is a good thing
by ihb (Deacon) on Oct 18, 2004 at 13:17 UTC

    As you say, putting it shortly: it's better to speak your mind and give people a chance to counter-argue, especially if you say the thing many silently thinks. It's better to start to argue publicly now than to argue privately with the management when Perl 6 is available.

    There's always a group that is conservative and against a change or new technology. I've always viewed this group as a good part in evolution and development. They're frustrating, but they keep things sane. They force changes to be well motivated and that's a good thing. One thing that's always been effective though is time. With time, people get used to the technology and it's not new anymore. Unmotivated resistance against it tend do decrease. Arguing in public now helps getting people comfortable with Perl 6 once it is reality.

    ihb

    Read argumentation in its context!

      I agree. However:
      Arguing now, unfortunately, also helps to create a class of people that have an emotional investment in — an ego-identification with, if you will — the perception that they did not make a mistake in their initial negative reaction to Perl 6. Often, when someone jumps to a conlusion, he or she with be extremely reluctant to let go of that opinion even in the face of strong evidence to the contrary.

      The same is true in reverse, as well: many people, jumping to hasty positive conclusions, are just as likely to be reluctant to admit they were too optimistic in their initial assessments, later on.

      That's not to say that I think any discussion of the matter should be discouraged, however. It's a mixed bag, this question of benefit vs. detriment in terms of public opinion, but discussion is more honest, more open, and more likely to lead to positive change.

      - apotheon
      CopyWrite Chad Perrin

        Indeed.

        I did partly forgot about the confirmation bias that effects the human brain. When trying to make a decision we value arguments that agree with us more and in higher degree dismiss arguments that don't agree. So yeah, it's a mixed bag.

        I believe though, that if a sceptic reads a sceptic article that is well counter-argued he's more likely to change opinion than if he had read a positive article. If they go "yeah! exactly!" when reading the article which is well counter-argued, then it has not been positive or counter-arguing in general -- it has counter-argued directly with the reader. When that happens many feel forced to reevaluate their opinions since their opinions were counter-argued.

        As always, it's all about how it's done...

        ihb

        Read argumentation in its context!

Re: Perl 6 critique is a good thing
by radiantmatrix (Parson) on Oct 18, 2004 at 13:55 UTC

    If there is anything that the open-source movement has taught us, it's that getting users actively involved in the development leads to better software. It also slows things down a bit when there are disagreements.

    I think debate and discussion on the merits of Perl 6 is rather useful. I only hope that people don't get so mired in debate that progress is effectively halted, or that the core developers get fed up and stop listening.

    As for the cited critique... Fish's critique comes of as whiny, but he does make some interesting points. I have some concerns about the significant changes to the language that will break Perl 5; I have a large quantity of deployed Perl5 code that will need to be maintained, and I worry that it will quickly become "legacy" code as Perl6 becomes the language that future programmers learn. There are, in fact, many changes to Perl6 that are (IMO) better than the Perl5 way -- but, they will cause problems for maintaining old Perl5 code.

    I have to wonder why the Perl6 team has decided against including Perl5 backwards-support through a use pragma. How nice it would be to:

    sub old_perl5_style_code { use perl5; #code ... }
    radiantmatrix
    require General::Disclaimer;
      I'm not sure why they chose not to include a pragma to switch to Perl5 parsing, but Perl6 syntax is supposed to be mutable, so you could see it happen.
      That said you will be able to do
      use Old::Perl5::Style::Module; #I'm assuming this exports old_perl5_st +yle_code by default old_perl5_style_code();
        This was discussed in the thread spawned by node "Ensuring forward compatibility". In summary, the answer is that if you mention the keyword 'package' then the interpreter knows you're talking in perl5.

        So consider package main; to be equivalent to use perl5;. And, of course, all your existing modules already have a package so will Just Work <cough><splutter>.

        I'm not sure why they chose not to include a pragma to switch to Perl5 parsing

        A pragma isn't necessary. The heuristic they use is extremely simple. Perl 6 does not have packages. If some code has a package statement in it, then it must be Perl 5.

Re: Perl 6 critique is a good thing
by steves (Curate) on Oct 18, 2004 at 12:54 UTC

    It's always good to discuss and debate, even if you don't agree with the other point of view. Anything that's truly good will stand up on its own regardless of what peoples' personal opinions of it are.

Re: Perl 6 critique is a good thing
by SpanishInquisition (Pilgrim) on Oct 18, 2004 at 18:41 UTC

    As one waiting for Perl6 myself, and presently entranced with the wonders of Ruby to the point of almost leaving the fold, here are my thoughts:

    I think the unicode character operators are very very bad. While it maybe nice that "..." and the ellipses work as the same thing, it prevents code editors from searching on such things.

    I think there are WAY too many operators (queue link to the table of operators). This is cool, but Perl5 ALREADY has a problem with newbies being able to read code written by uber-perl programmers (like myself :)). We're going to make it more obscure possibly, without adding clarity. I do like the freedom of expression, but we are going to create a lot of dialects with uber-TIMTOWDI.

    I think the tendancy to have a lot of modifiers on declarations, etc, is confusing -- there is getting to be too much syntax to remember. Why is Perl5 cool? It's a minimalist language.

    I too argree that better OO module support in the Perl5 standard distribution would be a good thing. (Things like Spiffy.pm, only Spiffier).

    I want to see Python, Perl, and Ruby folks actively working on Parrot, not just Perl folks ... takeover in open source doesn't always work, design goals are different, etc.

    That being said, I eagerly await the day I can try an official release. Yes, I'm not learning it until it's finalized ... as right now, I've got other toy languages to play with that I can ship, etc. Hopefully it will become a very clean, nice, language -- but it needs to be VERY mindful of the things it is getting wrong in the way to that clean-ness. I also think it may have bitten off more than it can chew and the long development time may be a software process problem.

      I think the unicode character operators are very very bad.

      I agree.

      While it maybe nice that "..." and the ellipses work as the same thing, it prevents code editors from searching on such things.

      The only thing I use to search for certain operators is Google, and it doesn't support searching for interpunction anyway. I've never used a search or grep tool to try and find operators in source code, except when discussing on perl6-language how often something is used in Perl 5.

      I think there are WAY too many operators (queue link to the table of operators).

      There are a lot of operators, but this is not as big a problem as many think. Many are logical and can be put in a simple table, and here having multiple operators for what is now the "same thing" actually makes things easier. I'm talking about the bitwise operators here. | will be +|, ~|, and ?|. Same for &, <<, >>, etcetera.

      • They're ugly. But how often do you use bitwise operators?
      • There are many. But this makes knowing what is meant (stringy or numeric?) easier in a clean way.
      • The nice looking | and & are now something else. But the new thing is much neater and something that will be used much more often: junctions

      Then there are hyper-operators, which means the combination of » and/or « and another operator. This is just like modification operators like +=: once you know how it works, it saves you a lot of time. Have you ever needed to look up what ||= does? (If so, why?).

      If you don't count compound operators, the difference with Perl 5 is much less shocking. 42 stay the same, 14 change (of which 5 are these bitwise operators) and we get 13 new ones (excluding the hypers). This is in a total of 84 operators not such a big change. (I'm counting op= as one operator).

      Perl5 ALREADY has a problem with newbies being able to read code written by uber-perl programmers (like myself :)).

      Quoting TimToady (source):

      Any language that doesn't occasionally surprise the novice will pay for it by continually surprising the expert.

      We're going to make it more obscure possibly, without adding clarity.

      As always, it will be so that if you want clarity, you can get clarity. If you want obscurity, you can get obscurity. The difference will be in *how* this is done. Some will go away, some new ones will be introduced.

      I do like the freedom of expression, but we are going to create a lot of dialects with uber-TIMTOWDI.

      More than before, I think that Perl 6 will have clearer "best" ways to do it. Junctions will help a lot.

      I think the tendancy to have a lot of modifiers on declarations, etc, is confusing -- there is getting to be too much syntax to remember.

      Why would you even try to remember everything? I use documentation all the time when I code. Even if you do remember the syntax and function calls, there are some important warnings to be made aware of.

      Why is Perl5 cool? It's a minimalist language.

      I think you are using a different Perl 5.

      I want to see Python, Perl, and Ruby folks actively working on Parrot, not just Perl folks

      I'm sure that any help is welcome. I think that as Parrot gets more complete and polished, integration gets better. Although I've seen all kinds of languages discussed already.

      it needs to be VERY mindful of the things it is getting wrong in the way to that clean-ness.

      I agree, and in some parts it is indeed going in the wrong direction, IMHO. (To sum them up: unicode operators, \d{1,5} becoming \d**{1..5}, over-use of «», confusing over-use of :).

      Juerd # { site => 'juerd.nl', plp_site => 'plp.juerd.nl', do_not_use => 'spamtrap' }

      I don't think you understand the process of language design.

      Why is Perl5 cool? It's a minimalist language.

      I like Perl 5 but I have no idea what you mean by "minimalist".

      I do like the freedom of expression, but we are going to create a lot of dialects with uber-TIMTOWDI.

      Have you ever used a module? APIs are dialects.

      Perl5 ALREADY has a problem with newbies being able to read code written by uber-perl programmers

      I have trouble reading Pascal (the mathemetician) or Proust in the original French too, yet plenty of francophones seem to do okay with the language. Heck, I have trouble with Pynchon, Joyce, and DFW in English but I make a living working with it.

      I don't care if new programmers can't read my code. I care if people who understand the problems I'm trying to solve can maintain my code. I wouldn't expect my 18 month old nephew to write or edit a 300 page book. Why should I expect the equivalent in the coding world?

        You're right that it's as silly to expect a newbie to be able to read my perl code as it is to expect a newbie to be able to read Dickens.

        However, if someone claims to be writing in English (like Joyce) and yet a fluent English speaker (me) can't understand what the hell he's going on about, then that indicates that Joyce's work is, in fact, crap. Same applies to perl code that is hard for a fluent perl coder to read. It's crap code.

      A reply falls below the community's threshold of quality. You may see it by logging in.

      What prevents editors from searching on ... vs …?

      But mostly, I take exception to your characterization of perl as a minimalist language. It is most certianly not. It has dozens of features that aren't minimal -- that could be easily built out of smaller building blocks. Hashes, for example. It's not difficult to make a hash out of simpler bits. There's no reason for it to be built in to the language, when it can be written inside of the language. That's a minimalist point of view -- but easy hashes are part of what makes perl so nice to deal with. C# and VB and a slew of other languages have objects that are very hash-like... but them being objects instead of first-level concepts makes them annoying to work with.

      Perl5 also has lots of things that aren't used, in pratice. Perl6 will get rid of some of those, and introduce some new ones. Also, perl6 is much less a language for beginners then perl5. There are a lot of techniques that you can use in perl6 that are difficult to understand for beginners, or can be. This also means that in the hands of an expert, you can do a lot more with a lot less. It's not a question of better or worse, it's a question of goals, and I think I'll like writing perl6 more then I liked writing perl5 (and I like writing perl5 a lot).


      Warning: Unless otherwise stated, code is untested. Do not use without understanding. Code is posted in the hopes it is useful, but without warranty. All copyrights are relinquished into the public domain unless otherwise stated. I am not an angel. I am capable of error, and err on a fairly regular basis. If I made a mistake, please let me know (such as by replying to this node).

        Terminology. Suppose one language requires an open desk reference and a web page open to the standard library. That's Java. Suppose another is easily learned and remembered. That's Perl 5. Now suppose we add 50 operators to Perl 5... just like the File test operators, that's something else to remember.

        Having only 3 major data types IS pretty minimalist, maybe not uber-minimalist, but that's a good thing.

        I think I'll like writing perl6 more then I liked writing perl5 (and I like writing perl5 a lot).

        Oh yeah, I totally agree here. Depends who wins the Perl5/Ruby thing, probably, but I know I'll like it better. Can't say that makes it wrong to ask questions about how it could be simpler though.

        Complex tools are a good thing. Advanced concepts in the core are an awesome thing. Innovation is a good thing. However, keeping the syntax clean and straightforward, and ... yes .. minimialist while adding features is important to me. I don't want another "open desk reference" kind of language.

Re: Perl 6 critique is a good thing
by hlen (Beadle) on Oct 18, 2004 at 14:58 UTC
    Well, as he is obviously misinformed in some points, he does make some statements which make sense to me. I share the idea that the perl5-6 transition can not be seen as anything close to perl4-5, and that perl5 shouldn't be a target for termination, not even in 20 years. Yes, I too think perl6 should be a fork, and that would make me much more comfortable about expanding my perl5 knowledge today. It sucks loving and studying a language which people are assuming will become obsolete in some time, and yes, perl5 and perl6 are _two different languages_, imho.
      perl5 shouldn't be a target for termination

      Nobody is [or, rather, should be] suggesting that Perl 5 will be exterminated the minute Perl 6 is released. Quite to the contrary, they're retrofitting the entire perl5 engine to run on top of Parrot. Fears about the language suddenly dying are incredible misplaced.

        Notice the `even in 20 years'. I'm not standing against a `sudden death', I'm standing against a death at all, and that's what happens when languages change versions. Where is Perl 4? Quite gone. I've talked to people who feel this is bound to happen sometime with Perl 5. I think that shouldn't be the case, and then a fork comes to mind. It'd be more of a symbolic thing, really.. versions have a symbolic effect I think does not fit so nicely here.
Re: Perl 6 critique is a good thing
by Your Mother (Archbishop) on Oct 21, 2004 at 02:56 UTC

    ++ Totally. When I first heard about Perl 6 I was ecstatic. Then by Apocalypse 5 I was blanched and feeling like giving Ruby or Lisp another chance so I could be ready by the time ISPs and IT shops were dropping Perl in droves. Ovid's response to the post left me excited about Perl 6 again (as a language I'd fight with my bosses and admins to get installed if necessary) and feeling really proud of the manifold efforts behind it.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://400124]
Front-paged by Arunbear
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (5)
As of 2024-04-19 18:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found