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

Re: Reference in Perl 6

by sundialsvc4 (Abbot)
on Aug 18, 2010 at 15:36 UTC ( [id://855816]=note: print w/replies, xml ) Need Help??


in reply to Reference in Perl 6

Okay, folks, I’m gonna step out on a limb here.   I am not wishing to start a flame-war, and I beg your forbearance not to permit one to start.   I might be wrong here, but I think I’m right.   (And if not, it is just “IMHO,” and all of us here know how to deal with that.   So, here goes...)

In effect, Perl-6 becomes an entirely new language, with Perl-5 as its primary competition.   And, I believe that the Perl-6 team will be rather shocked to discover that their baby has no wings and will not fly.

A similar experience was shared by the various folks who tried at various times to create “ADD 1 TO COBOL GIVING COBOL.”   No matter what they did to try to “improve” the language, all of their “improvements” would have imposed gratuitous non-compatible changes upon tens of millions of lines of installed-and-working source code, with no significant return on investment.

Every now and then, someone comes along and says, “you really should re-implement all this stuff in (X) ... it will be so much better!”   And the seasoned executive holds up her hand upon hearing the word, “re-implement,” and says: “Stop right there.   No.

The (X) could be “Perl-6,” or it could be Ruby or any one of a half-dozen other recent silver bullets, or it could be the next silver bullet yet to be invented, but the fallacy is the same.   The project would entail huge business risk, and probably would not provide business benefit, let alone a financial return.

Trivial example:   Go to your source-code directory and type “grep -rilw eval * | wc -l”.   If someone on the Perl-6 team decided that try was a sexier word to use than eval, and did not have the foresight to allow both words to be used ... then this is the number of source-code files that must be changed.   (And then changed back, if the Perl-6 rollout does not go exactly as planned.)   Meanwhile, where is the profit in it?   There isn’t one.   Huge risk, no profit.   So, what is the appropriate business decision? Stick with what works.   Stick with what is working now.   Let this “silver bullet” remain on the curiosity shelf with all the rest of its very many kin.

Furthermore, we have Moose.   Now, here is a very intriguing tool that introduces a strong object-oriented flavor to the Perl-5 language, without using an overt preprocessor, and without excluding the continued use of Perl-5 in the same system.   This is the kind of technology change that might get accepted by that same senior executive, because the risk of adoption is much lower and the implementation strategy can be incremental.   Even so, it still might not make the cut, although it is arguably “better.”

Replies are listed 'Best First'.
Re^2: Reference in Perl 6
by TimToady (Parson) on Aug 18, 2010 at 19:06 UTC
    Two things. First, it was stated very clearly from day one that the purpose of Perl 6 was to break backward compatibility in all the ways it needed breaking, so you should not be at all surprised ten years later that we're breaking backward compatibility.

    Second, it is my belief (which may take twenty or thirty years to falsify but could be truified rather faster) that for every manager that does not use Perl 6 because it is not Perl 5, there will (eventually) be N managers who will use Perl 6 because it is not Perl 5, for some N greater than unity. If I didn't believe that, I wouldn't have spent the last decade pouring my heart and soul into it.

    As for whether Perl 5 and Perl 6 are different languages, that's kinda silly; every new version of Perl is a different language. The only question is how different, and the answer to that is never 0% or 100%. On this, as on most issues, I am a flaming moderate, and do not appreciate arguments that ignore one half of the truth or the other. I'd rather see the whole truth.

    And the other half of this truth is that people who have actually programmed in Perl 6 tend to report that it still feels very much like Perl on some fundamental level, regardless of the various syntax and semantic tweaks we've made. So it really depends on the meaning of that fuzzy term "Perl". As a linguist, I'm quite content to let definitions be fuzzy like that. :-)

Re^2: Reference in Perl 6
by moritz (Cardinal) on Aug 18, 2010 at 17:26 UTC
    I don't think the way to re-use Perl 5 code in Perl 6 will be to just copy it over, and run it with a Perl 6 compiler.

    Rather the Perl 6 compiler and runtime will talk to to the perl 5 compiler/interpreter, and that way you can use Perl 5 modules in Perl 6.

    In that case it doesn't matter if one of the two usages of eval is now spelled try in Perl 6, and there's no reason to change any file - you'll continue to run your Perl 5 scripts with perl 5, and you'll write Perl 6 scripts in Perl 6, and use Perl 5 modules.

    That's not just a glimpse of the future, but it actually works (with limits, but it does work). Tim Bunce demonstrated usage of the Perl 5 DBI in Perl 6 code through blizkost at YAPC::EU 2010.

    Perl 6 - links to (nearly) everything that is Perl 6.
Re^2: Reference in Perl 6
by chromatic (Archbishop) on Aug 18, 2010 at 16:10 UTC

    That's a silly scenario.

    It's much more plausible to believe that any new Perl 6 code which exists will do so out of a desire to write something new in Perl 6 rather than to replace and subsume and erase from existence existing code in Perl 5.

    (Also, misquoting Fred Books annoys me.)

Re^2: Reference in Perl 6
by Anonymous Monk on Aug 18, 2010 at 19:32 UTC
    In effect, Perl-6 becomes an entirely new language, with Perl-5 as its primary competition.

    FWIW, I don't see Perl 5 as Perl 6's primary competitor (although perhaps I'm being quite naive in stating this). I'm not really after all of the people who program in Perl 5 and are happy with it; I'm after the folks who think that Perl 5 is too ugly, complex, or otherwise has too many rough edges such that they instead choose some non-Perl-compatible scripting platform altogether.

    To me, one of the primary goals of Perl 6 is to create a Perl that is more palatable and accessible to the people who won't or can't consider Perl 5 as a choice. That's the audience I'd really like Perl 6 to reach.

    Pm

      primary goals of Perl 6 is to create a Perl that is more palatable and accessible to the people

      Right, You need to CREATE it first to test its real use. How much more time will it take? Another decade? But what you define as a "ugly, complex, or otherwise has too many rough edges" language has managed to survive nearly 17 years of evolution with millions of users and its maker took probably just 3 years to build it. And is still going strong. We'll see how strong Perl 6 holds out against Perl 5 when they are in competition in the real world. But for that to happen first it must come out clean.

        But that doesn't give Perl 6 folks any rights to call Perl 5 Ugly or Complex or has tough edges and things like that.

        Moritz mentions this in another posting, but I want to emphatically reaffirm: I did not define or call Perl 5 an "ugly, complex, or rough" language, I said there are others who think that way about Perl 5. I encounter such folks quite frequently at (non-Perl) conferences and events.

        When I show these folks what we're doing with Perl 6, they often become interested in Perl again (or for the first time). And when I say that "Perl 5 has adopted many of these Perl 6 concepts as well", they start to reconsider what they think and say about Perl 5, too.

        Once again, an Anonymous Monk posts a knee-jerk response without examining what was actually written. (I know I should not be surprised at this.)

        We'll see how strong Perl 6 holds out against Perl 5 when they are in competition in the real world.

        This statement again seems to presuppose that Perl 5 and Perl 6 are locked in some sort of competition against each other, and that there can be only one winner. As I said in my original post, I categorically reject the notion of a competition (other than a friendly and mutually-supportive one) between the two. I'm a person who likes and uses both Perl 5 and Perl 6; as far as I can tell having multiple tools to solve problems works just fine for me, and I suspect it will work just fine for others as well.

        Pm

        But what you define as a "ugly, complex, or otherwise has too many rough edges" language has managed to survive nearly 17 years of evolution with millions of users and its maker took probably just 3 years to build it.

        You're neglecting the ten years Perl 5 has had to borrow ideas from Perl 6. Like the modern Perl testing culture? Thank Perl 6. (Don't believe me? Read the documentation of Test::Builder sometime.)

        Perl is 23 years old this December. Perl 5 as we know it today took close to 15 years. Perl 5 at all took 7 years.

        Perl 6 will sink or swim. If you don't like Perl 6, don't get involved. If you do like it and think it's going badly, COGTFO.

Re^2: Reference in Perl 6
by petdance (Parson) on Aug 18, 2010 at 19:46 UTC

    I believe that the Perl-6 team will be rather shocked to discover that their baby has no wings and will not fly.

    What's your point? What would you have the Perl 6 team do with your assessment? Should the Perl 6 team say "Holy shit, he's right, we're going to change try to eval?"

    This is not a rhetorical question. I really do want to know what the point of your assessment is.

    xoxo,
    Andy

      I don’t know how to make an “assessment” here, beyond my original comment, which by the way was not intended to be personal.

      I have, in fact, taken several long, hard looks at Perl-6 now, and my take-away is simply that, once any language comes into a production setting, such that literally millions of lines of mission-critical code are written in it, it never goes away ... and it never successfully transforms itself into something significantly different.   It does not matter if the “successor” is claimed to be much better.   (It does not even matter if it really is.)   What matters is a vast investment in reasonably bug-free source code that must now be protected and maintained.  

      Perl went quickly through many “nothing much” incarnations until ... Perl-5.   Then, it reached critical mass.   Having done so, it will now be with us, as it is, for an exceedingly long time.

      I once worked at a shop that still licensed IBM’s FORTRAN-G compiler ... because they had a large and important system that was written in that dialect.

        I have, in fact, taken several long, hard looks at Perl-6 now, and my take-away is simply that, once any language comes into a production setting, such that literally millions of lines of mission-critical code are written in it, it never goes away ... and it never successfully transforms itself into something significantly different. It does not matter if the “successor” is claimed to be much better. (It does not even matter if it really is.) What matters is a vast investment in reasonably bug-free source code that must now be protected and maintained.

        So what?

        Sure, if there are huge perl 5 apps with millions of lines of mission-critical code running just fine, they probably won't want to port to perl 6 immediately for no reason. I agree. Depending on particular circumstances I probably wouldn't recommend they do so.

        You could have used that same argument to say that ruby, java, etc. would never amount to anything. You'd have been wrong about them too. They are used successfully in tons of new applications.

        Guess what? Next year people will be writing more all new applications, and the next year after that they will be writing more and so on. Perl 6 just adds one more language to the consideration of which language will get used. I happen to think it makes a very strong case that it will be the best language choice for a very wide array of applications.

        Perl went quickly through many “nothing much” incarnations until ... Perl-5. Then, it reached critical mass. Having done so, it will now be with us, as it is, for an exceedingly long time.

        Again, I agree, Perl 5 will be with us for a long time, and the apps I have in Perl 5 will probably still be using Perl 5 long after I have started writing new production apps in Perl 6. So what? I'm not going to let that stop me from using Perl 6 for new apps, where appropriate, any more than others let the mere existence of legacy COBOL apps stop them from developing new code in Java.

      The assessment is that everything that relates to Perl 6 is half complete. Implementation, books, modules anything you name. What you get to see always are blog posts describing it as some kind of grand unified language which will take over the world and survive for some two or three decades. When that will happen we will happily embrace it. But until then stop killing Perl 5 at Perl 6's imaginary existence in the probably future.
        But until then stop killing Perl 5 at Perl 6's imaginary existence in the probably future.

        What on earth are you talking about?

        When that will happen we....

        Do you speak for a lot of people? Perl 6 today is better than it was yesterday because people are actually using it and improving it. The same goes for Perl 5. You're welcome to help. You're welcome not to help. It'll happen with or without you.

        I wish to add that I did not write the above response.   I am not the “Anonymous Monk” there.

        In fact, I have not yet responded at all.

Re^2: Reference in Perl 6
by Your Mother (Archbishop) on Aug 18, 2010 at 16:41 UTC
    And, I believe that the Perl-6 team will be rather shocked to discover that their baby has no wings and will not fly.

    Baby butterflies don't actually have wings.

Re^2: Reference in Perl 6
by ctilmes (Vicar) on Aug 18, 2010 at 18:52 UTC
    In effect, Perl-6 becomes an entirely new language, with Perl-5 as its primary competition.

    Yes, you're right.

    You are welcome to your opinion, but please, go back and do some rudimentary research on the history of Perl 6 and its design before you say things like the Perl-6 team will be rather shocked to discover that their baby has no wings and will not fly.

    BTW: I don't recall anyone claiming it will be a silver bullet.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://855816]
help
Chatterbox?
and the web crawler heard nothing...

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

    No recent polls found