Beefy Boxes and Bandwidth Generously Provided by pair Networks Cowboy Neal with Hat
Perl-Sensitive Sunglasses
 
PerlMonks  

Why Change?

by Starky (Chaplain)
on Apr 06, 2008 at 15:47 UTC ( #678649=perlquestion: print w/ replies, xml ) Need Help??
Starky has asked for the wisdom of the Perl Monks concerning the following question:

I've been following developments with Perl 6 and have a big-picture, 10,000-foot-view type of question.

Recently the topic What can bring the excitement back to Perl? came up. Obviously, Perl 6 is generating alot of excitement in the community and is one of the answers to that question.

When creating a new technology, I think that it's important to be able to tell people why it's useful in a brief, compelling statement. If you can't,

  1. It may be an indication that you are going down the wrong path to begin with, and
  2. You're going to have trouble making converts.

So I'm curious what the brethren think, particularly those who have been following Perl 6 closely. If you were to make a short, compelling statement that would appeal to both Perl 5 users and the RoW (Rest of the World; e.g., the PHP/Python/Ruby/Java/C# etc. crowd) explaining the benefits of Perl 6, what would that statement be?

I'm not looking for a feature list, but rather something that is short, sweet, piques interest, and sways opinion. Something that answers the question, "Why change?"

Comment on Why Change?
Re: Why Change?
by chromatic (Archbishop) on Apr 06, 2008 at 16:42 UTC

    We fixed the things that bother you in Perl 5.

    (It's not universally true, if you're the type of person who thinks that prefix sigils are irredeemably ugly, but I don't care about those people and so can you.)

      We fixed the things that bother you in Perl 5.

      So true. More specifically, we are fixing the things that can't be fixed without breaking backwards compatibility.

      And since we found that quite a few things need fixing, a strong emphasis is on making things much more flexible, thus allowing easier fixes in future.

Re: Why Change?
by BrowserUk (Pope) on Apr 06, 2008 at 18:45 UTC
    "Why change?"

    Because a lot has changed in the twenty years Perl has been around.

    Machines have got much faster. The WWW has become universally accessible and universally used. But mostly, the users and designers of Perl have discovered that it's greatest strength is the programmer productivity it provides.

    So now is the time to make full use of the experience gained through those twenty years, to re-engineer the language to capitalise upon the languages strengths, clean up some weaknesses, and further enhance that programmer productivity.

    It is time to recognise what it is about the original language that provided that programmer productivity, and what about it was a barrier, and use that knowledge to redefine the language devoid of the constraints of backwards compatibility.


    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.
Re: Why Change?
by doom (Deacon) on Apr 06, 2008 at 19:31 UTC
    We're only just now getting into a stage where it makes any sense to try to "sell" people on perl 6 (myself, I'm more worried about making sure people are aware of 5.10).

    My personal feeling is that there's a hell of a lot of things going on with perl 6, and I would guess that even the people working on it aren't really aware of what's going to turn out to be the "killer app" for it.

    (Back in the early 90s, you couldn't tell people they should get into perl because it's great for CGI...)

Re: Why Change? (OT)
by arc_of_descent (Hermit) on Apr 06, 2008 at 21:02 UTC

    OT and I'm no monk

    but

    I have a horrible feeling that Perl 6 would be released on June 6th. :) Fear drives change.


    --
    Rohan

      The best date would obviously have been 06/06/06. Maybe they didn't want to be identified with the number of the beast, though.
      sas
        > Maybe they didn't want to be identified with the number of the beast, though.

        That's why they chose 09/09/09! But don't tell, it's a secret ... ; )

Re: Why Change?
by dragonchild (Archbishop) on Apr 07, 2008 at 00:14 UTC
    Perl6 is as different from Perl5 as C is different from Java. Syntax is similar, but they serve different purposes. The key is to pick the right tool for the job. In many cases, that choice will be Perl5 over Perl6. There's no reason to sell anyone on Perl6 anymore than selling someone on Perl5.

    As for "wrong path", it might be a key indicator that almost every person with a significant CPAN presence is heavily in favor of Perl6 and the way it's being developed. This also includes every single person who's ever done any work with the Perl5 source (save one, that I'm aware of).

    Converts ... only languages with inferiority complexes attempt to make "converts". We are the duct tape of the Internet and no-one can take that from us. I don't care about anything else.


    My criteria for good software:
    1. Does it work?
    2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
      As for "wrong path", it might be a key indicator that almost every person with a significant CPAN presence is heavily in favor of Perl6 and the way it's being developed. This also includes every single person who's ever done any work with the Perl5 source (save one, that I'm aware of).

      For the record, I'm not "heavily in favor of Perl6", at least not in the sense that I favor anything Perl6 over Perl5. Thus, I don't care about the way it's being developed, as long as it doesn't interfere with anything I want. I don't have a "significant" CPAN presence maybe.

        From what I've seen and heard, you're no more in favor of Perl6 than you were in favor of Perl 5.10. Or, rather, you're no less in favor of 6 of 5.10. Stuff you want is coming in and stuff you don't want is going out. There's some stuff you can't wait to get your hands on and you already see stuff you're going to sigh about. Overall, you feel pretty comfortable about the whole thing and will gladly kick the tires when it's ready, but aren't going to promise anything with regards to using it right away.

        Sounds about right?


        My criteria for good software:
        1. Does it work?
        2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
      Perl6 is as different from Perl5 as C is different from Java. Syntax is similar, but they serve different purposes. The key is to pick the right tool for the job. In many cases, that choice will be Perl5 over Perl6.
      Can you elaborate on that please? What differences of purpose do you see between Perl 5 and 6? (Perl6 macros are a major advance beyond what Perl5 can do, but what else does it have to make you class it as a totally different animal?)
        Perl6 has a gazillion things that differentiate it from Perl5.
        • Parrot. Oh. My. God. The ability to mix Python and Ruby libraries in with Perl libraries is huge.
        • Grammars. The fact that Perl6 will be written in Perl6. I can write my own -real- syntax as a CP6AN library.
        • More importantly, I can -remove- syntax. Like, literally remove the syntax. This makes hardened Perl a real possibility. That means greater penetration into certain areas Perl just wasn't useful for.
        • Proper autoboxing. This is something Ruby has over us. No more.
        • A completely portable ASM I can address. That's nice.
        • Properly first-class functions that serialize nicely. This and proper autoboxing makes the P6 version of DBM::Deep a lot easier to write.
        • Oh, yeah. There's Lispy macros.

        Now, why might I use Perl5 over all that sugary goodness? Well, in the first 5-6 years, very little of the CP6AN code will be truly battle-tested. I might be wanting to reuse Perl5 libraries and don't want to trust the Ponie emulation. The same reason why 5.6 interpreters are still in heavy use and why I haven't bothered to even download 5.10 - change is expensive.

        But, unless there's something horribly wrong, I will be choosing P6 over P5 for all new projects. Once 6.0.2 is released, of course.


        My criteria for good software:
        1. Does it work?
        2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
      As for "wrong path", it might be a key indicator that almost every person with a significant CPAN presence is heavily in favor of Perl6 and the way it's being developed. This also includes every single person who's ever done any work with the Perl5 source (save one, that I'm aware of).
      That's a very strong claim. Also wrong. For a very prominent and vocal exception see Abigail. For another person with qualms, see Adam Kennedy. If you follow that link you will see comments from brian d. foy indicating that he has qualms as well. None of those are exceptions that you really want to ignore. Nor, based on a number of conversations that I have, would I say that they are particularly uncommon.

      Now you're free to disagree with these people. Many do. But it is wrong to claim that they do not exist.

      Incidentally in an unrelated note, should I resign myself to never getting the apology I requested some time ago?

        That's a very strong claim. Also wrong.

        I agree 100%. Thank you for making the point.

        should I resign myself to never getting the apology I requested some time ago?

        I sympathize, but take it offline.

        A word spoken in Mind will reach its own level, in the objective world, by its own weight
        Abigail was the person I was thinking of. "qualms" doesn't preclude "heavily in favor". I know brian's got reservations, as do I, but I haven't heard anything from brian regarding not supporting Perl6. I also remember talking with Adam about his qualms, but I thought most of them had been addressed. Granted, this was YAPC::NA::2006, so I could be out of date.

        The point still remains, even if I may overstated it a bit. The Perl5 devs and CPAN authors, as a group, are heavily in favor of how Perl6 is progressing, both in terms of deliverables and and in terms of process. If you want, I would be delighted to take a poll on the matter.

        As for apology, there is nothing to apologize for. We had a discussion. You feel strongly one way and I feel strongly another. We've had these several times over the past 6+ years we've known each other. If you feel there's something I need to apologize for, I would be honored to discuss it via email - rkinyon@cpan.org


        My criteria for good software:
        1. Does it work?
        2. Can someone else come in, make a change, and be reasonably certain no bugs were introduced?
Re: Why Change?
by perlfan (Deacon) on Apr 07, 2008 at 02:33 UTC
    I don't think it is a matter of "why change," but rather, "why consider." Furthermore, it is a waste of your time to convert. Instead, you should focus more on "spreading the word."

    The best goal should be one of simple enlightenment, and in this situation it means getting someone to consider what is new and cool about <insert-your-language-here>.

    For me, I tend to look at new languages when there is some particular idea I get excited about. In my case it is more about implementing an idea to test rather than building the next killer app. So, when thinking about implementing the idea about which I am currently excited, I consider what language/features I might use in order to realize my idea in the most informative and enjoyable way.

    For example, there have been times recently that I've wanted to learn Erlang simply because it is my understanding that it would allow me to implement a distributed algorithm in the most direct way possible. I've implemented these sorts of things using Perl in the past successfully, but for this particular exercise I'd rather not have to manually simulate (in serial) many distributed nodes doing their own thing. This is no knock against Perl, but an example of what would compel me to try Erlang.

    That example aside, I tend to always look at Perl first. This includes an investigation of the new features offered by Perl 5.10 and Perl 6. Now, as an admitted fan of Perl, I am going to be looking at the features of Perl 6 to see what things they inspire me to do.

    I have the advantage of not being driven by projects that are dictated to me, but I understand this isn't the case for most.

    So, to finally answer you question directly I would say that in order to whet another's appetite about something you're excited about, you need to know what kind of problems get them excited. Once you do this, it should be pretty easy to point out the new and exciting features that they might be able to take advantage of.

    In the case of Perl 6, I think that you can take anyone interested in the following topics and convince them to take a look at the language and what it (or even Parrot) can offer: concurrent/parallel/distributed apps, functional/higher order programming, compiler writing, virtual machines, oop, etc.

    As an aside, if Perl had a way to easily implement the type of environment that Erlang purports, I'd jump into that head first and forget I even heard about Er...what's it called again?

      perlfan has a good point here that has been brought up before. Any problem has a multitude of tools available to solve it. Some tools are better suited to solve a given problem than others. Can you use a ball peen hammer to install a roof? Sure, however you'd save a ton of energy with a roofing hammer.

      I am not familiar with perl 6 (other than what I have read in postings on perlmonks), however the postings in this thread seem to uncover at least a few of the problems that perl 6 is better suited to address. Maybe?

      In the meantime, if we need to spread the word, maybe we need to get Guy Kawasaki to help out? ;)

      tubaandy
Re: Why Change?
by systems (Pilgrim) on Apr 07, 2008 at 07:40 UTC
    Okay, why do you think Ruby or Groovy made it?

    Ruby made (in my opinion) for two reasons:
    1) Design. a lot of people thought it had better design than Perl or Python (the other most popular languages at the time) actually most of those (a lot of) people I would say think it have a better design than any other language, it also wasn't haskell or Ocaml or lisp, meaning, it was not a new alien, it more or less came from the same paradigm as other popular language.
    2) RoR.. Or in other words usefulness Ruby is useful, it have a popular framework that serve an important application dev area (dev development)

    Groovy!
    1) Usefulness . In this area Groovy hits it big, it leverage all of Java's heritage ++ Grails
    2) Design. Again a lot of people agreed Groovy have a great design, at least compared to Java, also the design, was not an alien!

    Might seem obvious! But Well, I believe making a language useful is a lot easier that claiming it have a better design compared to other languages. Better design, is very subjective! So the key part there was that a lot of people agreeed upon it and that it was not an alien!

    I believe what we can really hope for is that Perl6 get the useful quality, few people would argue about this, and this could be also why its RoR or Grails (i.e. the killer app)that really drive those languages adoption (not undermining the none alien design)
Re: Why Change?
by Zen (Deacon) on Apr 07, 2008 at 15:19 UTC
    It's worth noting that perl 6 has nothing to do with perl 5 except Larry's name in the credits. There's another thread on perlmonks with LW saying as much; the perl 6 name is because there is a tremendous reputation that follows perl 5.

    So why should you change? You shouldn't. Use the right tool for the right job. So far I have seen some object orientation advances that are up to speed with other languages, but there isn't a killer app yet. You won't find it on all the existing nix distros, either. I am curious as to the public reaction when perl 6 comes out and they see it won't run their perl code, cpan, and really is just a whole new language that says 'perl' in it.
      It's worth noting that perl 6 has nothing to do with perl 5 except Larry's name in the credits.

      That's wrong.

      You won't find it on all the existing nix distros, either.

      That's a technicality; if Rakudo's not in Debian unstable yet, it's because Parrot hasn't finished the upload checking process.

        Wrong or is this semantics? This thread:
        http://www.perlmonks.org/?node_id=614624

        ...began the day I started debating with timtoady (not knowing whom he was) over why Perl 6 repulsed me. I noted how perl 6 broke years worth of my work, changed all the one sigil operators to bizarre hieroglyphics (~~ is string cat because it looks like .. strings?), and reeked of intellectual theorycraft instead of a pragmatic tool for programmers in the real world. I'm willing to change my opinion on this- I want to- but if you read that thread, LW clearly differentiates perl 5 and 6 as being separated by decades, and the motivation for naming it Perl to use the legacy reputation of perl 5.

        Perl 6 is a ground-up rewrite with no relation to perl 5 in code or compatibility, with a stark departure in grammar/syntax. Is this a better sounding sentence? Looks more like python to me on the blogs than perl. I'm sure you've all done some fantastic work on perl 6, but you're going to find the same reactions if people believe perl 6 supports perl code as we know it.
Re: Why Change?
by moritz (Cardinal) on Apr 07, 2008 at 15:33 UTC

    All programming languages restrain what you can do (because many operations don't make sense), and how you can do it (because they chose a philosophy).

    Perl tries not to restrain you, and Perl 6 even more than Perl 5. You can program in imperative, object oriented, functional, declarative (vie regexes/rules), data flow (via pipes) and parallel style, and many other styles (what's the style called that uses junctions?) that I either forgot or that I don't know names for.

Re: Why Change?
by stiller (Friar) on Apr 07, 2008 at 16:03 UTC
    "Perl6 is the next to last step from finally reimplementing lisp?"

    Seriously though, I don't think I'll want to program in a language which can be meaningfully summarized in one sentence.

    I only hope the implementers can keep their cool and don't rush a half baked Perl6 out the door. The best of Perl6 is too good for that, and Perl5 is constantly improved by the research they do, and the fine work of p5p.

Re: Why Change?
by mr_mischief (Prior) on Apr 08, 2008 at 03:48 UTC
    If all of the Perl6 and Parrot teams' ambitions come to fruition, you'll be able to put together this statement to market it all by:

    Perl6 is a clean, modern, multi-paradigm language which allows Perl, Python, Ruby, Lisp, Lua, TCL, and PHP programmers to share code and work together while providing good runtime performance.

    Your second marketing run-on could be this:

    It offers clean macros, multimethod dispatch, vector operations, lazy evaluation, dynamic typing with optional static type checking, strong OO support, Just-in-Time compilation, and a virtual machine optimized for dynamic languages while borrowing a mostly familiar syntax from the tried-and-true Perl5.

Re: Why Change?
by PetaMem (Priest) on Apr 10, 2008 at 11:53 UTC

    IMHO it's too early for that question, as no one(!) has actually enough practical experience with Perl6 to be able to make such a statement.

    If someone does (make such a statement), it's just because of his wishes/estimates/feelings/half-knowledge/advocacy of this not-yet-released-thus-hypothetical-future language.

    I can tell you what the current estimate/feeling is here at our R&D:

    • We do not yet care about Perl6, as there is no release date and Perl5 delivers what we need.
    • Our concensus is, that Perl6 development does take too long and we don't think this will necessarily mean the resulting language will be better. Actually many projects who do not have "self-imposed" deadlines, tend to be ... well ... mediocre. (I'm not telling projects which are released way before they are ready just because of a deadline are any better - it's as always somewhere in between where truth lies)
    • At the time, when Perl6 will have been officially released for some months, we will take a peek and probably do some small-scale internal projects with it. Maybe even "upgrade" some Perl5 stuff to Perl6 if it looks promising.
    Only after that, I believe, developers who have participated on these projects involving Perl6 will have the chance to be able to come up with a short, clean and compelling reason for "Why Perl6". That is - only if Perl6 will also deliver like it's ancestor.

    Bye
     PetaMem
        All Perl:   MT, NLP, NLU

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (12)
As of 2014-04-17 17:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (453 votes), past polls