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

Re^3: A wholly inadequate reply to an Anonymous Monk

by chromatic (Archbishop)
on Apr 23, 2010 at 07:27 UTC ( #836442=note: print w/ replies, xml ) Need Help??


in reply to Re^2: A wholly inadequate reply to an Anonymous Monk
in thread A wholly inadequate reply to an Anonymous Monk

In short, Perl 6 might have been basically a re-iteration of Perl 5 in the same way that Perl 5 was for Perl 4. Only this time we could break backwards compatibility to fix some of the hairier bits.

The problem is that--with that process--it still takes eight years to build Python 3, and then you don't get an object system like Moose, you probably don't get pervasive laziness, you don't get pervasive closures, you might get hypotheticals, you don't get grammars, you might get continuations, you probably don't get custom operators, you might get multi dispatch, and you probably don't get a rethinking of context and the type system.

You might get multiple implementations cooperating around a canonical specification. You almost definitely don't get a self-hosted grammar as part of that specification.

You don't get roles.

You get Perl 5 with some of the worst bits of Perl 1 - 4 removed. Yippee.

Also you're very, very wrong about the JVM. Invokedynamic is only the start, unless you want to throw away partial binding, multiple dispatch, continuations, coroutines, lightweight concurrency... or spend the rest of your life writing trampolines.


Comment on Re^3: A wholly inadequate reply to an Anonymous Monk
Re^4: A wholly inadequate reply to an Anonymous Monk
by Anonymous Monk on Apr 23, 2010 at 08:55 UTC
    PerlMonks keeps hanging forever when I try to submit a reply, but here it is: http://pastebin.com/MchyhtVg

      For a lot of people (including me) Perl 5 is what pays the bills. There isn't a single company (correct me if I'm wrong) that's doing Perl 6 development (despite claims that "you can use it today!").

      I think it's understandable given all that that 10 years later we only have a pre-alpha implementation and little uptake, and bad some bad PR for Perl externally.

      I agree. People laugh at me at an interview when I tell them I know Perl. They tell me So I heard Perl is very good at code obfuscation and it wins every OBFU contest, that's the kind of response I get in an interview. This is not a joke, this really happened.

        Then you're going to the wrong interviews.

        Anyone who laughs at someone else's experience or ridicules it is already sending you danger signals: this person is not respectful and open-minded, and is already playing "I'm smarter than you" power games.

        If you don't mind this, then go ahead, but remember you're deciding if you want to work with them as much as they're deciding if they want to work with you.

        If you're interviewing and someone says "I don't particularly like Perl because of reason X, but that's just my personal prejudices," then you've got someone you can deal with. They're being honest about what they like and don't, and how they feel. If you happen to know something that addresses reason X, then by all means bring it up.

Re^4: A wholly inadequate reply to an Anonymous Monk
by Anonymous Monk on Apr 23, 2010 at 08:56 UTC
    You get Perl 5 with some of the worst bits of Perl 1 - 4 removed. Yippee.

    At least we would have got that. That is still better than getting nothing at all.

      Maybe I really am less than competent, but as I see it, the Perl 5 core really had stagnated, development-wise, until it started borrowing features from Perl 6 -- features which wouldn't have existed if Perl 6 had pulled a Python 3000 and tried to make a few cosmetic changes and burn off a few warts here and there. (Proposing a patch to remove the Perl 1 style do subname notation starts vehement arguments on p5p, even though you can remove three percent of the entire Perl 5 parser by getting rid of a feature made obsolete at least sixteen years ago.)

      Consider, as one example, the Perl testing revolution. Remember Test::Simple? Ever use Test::More? Like what Test::Builder has done for the Perl core, and CPAN, and CPANTS, and the quality of billions of lines of code written in the past eight years? Thank Perl 6 for that, because the Perl 6 QA working group decided that improving the test coverage and test tools and testing culture of Perl 5 was vital to the interest of making sure that Perl 5 and Perl 6 could interoperate.

      Sure, you could claim that someone else would eventually have done something else, and that in that imaginary world things would be better, or more the sameish, or somewhat different, or everyone would wear a jaunty hat now, but facts are facts and history is history and anyone who was there will tell you that this is how it happened.

      (Disclaimer: I know Moose has a lot of influences besides Perl 6, but so does the Perl 6 object system.)

      (Second disclaimer: Perl 5 has grown immensely healthier in the past eight months, thanks in part to adopting yet another feature that Perl 6 and Parrot have demonstrated as useful -- the monthly release cycle. This is neither accident nor coincidence.)

        Thanks it was very convincing!
Re^4: A wholly inadequate reply to an Anonymous Monk
by BrowserUk (Pope) on Apr 23, 2010 at 09:03 UTC
    unless you want to throw away ... lightweight concurrency...

    Do we have lightweight concurrency?

      Doubtful anytime soon.

Re^4: A wholly inadequate reply to an Anonymous Monk
by Anonymous Monk on Apr 23, 2010 at 10:28 UTC
    Eight years for Python 3 is a selective example. Much of that time was spent dragging their feet because they were in no hurry.

    A much better example is PHP 4 to PHP 5. Now, we can all agree that PHP is a pile of dung but PHP 5 is much *much* better than version 5. And it took just 4 years (first 4 release: 2000, first 5 release: 2004).

    The Perl core was already good in 2000. I'd like to have seen what a similar effort without the constrains of backwards compatibility would have been like *without going too wild*.

      Well, there is (was) Topaz and then there's Kurila (or maybe a better link to it?).

      Perl 5 has one aborted attempt to further it, one terribly out of the mainstream fork, and then there's all the progress that has been made between official Perl 5.6.0 and the recently released 5.12.0 as well. Then there's all the platform work that has come into play, with ActiveState Perl and Vanilla/Strawberry, gtk, Qt, and wx.

      What are some changes to Perl 5 in the last decade? The threading model is different, signals have been cleaned up, the regex engine has been largely converted from recursive to iterative code, and lexical pragmas that were once compilation switches have improved things immensely. There are also new language features and new core modules. The quality of major CPAN modules has gone way up, too. That's just a start.

      You can talk about similar effort and selective examples, but PHP is a selective example, too. Besides, it's easier to improve something when there's that much room for improvement. How much has C improved in the meantime? How about Ada, Pascal, or Smalltalk? Sure, arc and NewLisp are out. How much have individual other implementations of any language advanced? It seems a new dialect is how many make major changes in a short time. Otherwise, your implementation can be too much of a moving target. JavaScript, Lua, and C++ come to mind as improving drastically over the last ten years. Yes, I said C++; at least the drafts for the new standard appear much better than C++ 98. I admit I've never done much with Lua or C++.

      Then, besides Perl5, there's also Perl6. It hasn't held Perl5 as we've known it back at all. Larry was ready to break backwards compatibility. Be careful what you ask for. Breaking compatibility with deprecated parts of Perl5 is already being done by Perl5, and Kurila breaks even more. If you really want a nice language with all the perks of Perl that's more advanced than Perl5, Perl6 will provide that if you're willing to wait.

      If you want a stopgap, try Kurila or try actually using Perl5 with Moose and the other widely considered best-of-breed modules to program in what proponents call Enlightened Perl. If you really think it's like programming in 5.004_05 or even 5.6.0 (the major version that came out in 2000) and the CPAN modules that existed in 2000, then you're seeing a similarity most don't.

Re^4: A wholly inadequate reply to an Anonymous Monk
by Anonymous Monk on Apr 23, 2010 at 10:41 UTC
    We have an object system like Moose on Perl 5 now with Roles and all; So I don't see why we couldn't have one on a cleaned up Perl 5 (the hypothetical Perl 6). Same goes for grammars, they're halfway there in Perl 5.10. Custom operators are there in 5.12 with ugly parser hooks, etc.

    We've had 10 years of very productive Perl 5 development. It would have been very interesting to see what those 10 years would have been like had some of the uglier parts of the core been deprecated in favor of some of the features in Perl 6.

    As for the JVM I don't think I'm that wrong. I'll give you continuations and coroutines but lightweight concurrency? Have you looked at Clojure? Its hello world demo is a ~100 thread application and it's been known to run up to a thousand threads or so pushing a few gigabytes of data per second around on a few hundred cores. It also does multimethods (Lisp-style). And in any case the JVM seems to be able to emulate these things just fine even if you don't use its native calling conventions.

    Anyway discussing VMs for some of the more fancy Perl 6 features is getting a bit sidetracked (although I'd still be interested in why some of the Lisp VMs weren't adapted).

    I just wanted to reply to the OP (without any hostilities) who was curious as to what the "hysteria" might be about. My posting sought to aggregate some of the most common concerns that I've heard. That's all.

    For a lot of people (including me) Perl 5 is what pays the bills. There isn't a single company (correct me if I'm wrong) that's doing Perl 6 development (despite claims that "you can use it today!").

    I think it's understandable given all that that 10 years later we only have a pre-alpha implementation and little uptake, and bad some bad PR for Perl externally.

      Marketing

      Q: How can you market Perl 6?

      A: You cannot. It's not ready for the market. I'd argue it's not pre-alpha. You can run it and write useful things with it today. But it's not stable enough or close enough to feature complete to be something that any sane tech managers would be bundling up as the engine for a vendible product.

      The question this leads to is "What will happen if you try to market Perl 6 now, aka, too early?" The same thing that would have happened to Apple if they'd tried to market the iPod early. Ridicule, skepticism at best. Loss of attention. High resistance to adoption on launch.

      PR

      Q: How can you do public relations for Perl 6?

      A: Like Perl 5 has begun to do. Iron Man Perl, EPO, Summer of Code, etc. Should you? No, not yet! The only thing it can serve to do is fuel skepticism and ridicule again. How many years did it take for Perl to get out from under the "it's too slow" meme? Ten? It only finally has because Java was, and Ruby is, slower still so most of the rats finally shut up about it. Imagine another ten years of that shite because the world at large experiences early, unoptimized Perl 6 which makes Ruby look like Erlang.

      External PR for Perl 6 cannot help anyone. It just serves to cause sideshows like the last couple threads and reinforce the idea that there is confusion simply because there are some who are confused. I'm not a Perl 6 dev or even a user, I've written fewer than 10 toy scripts in it so far, but I knew the answers to most of the concerns because I pay attention to the community.

      Perl 6 smells wonderful to me but it is half-baked. Only a desperate, addled chef rings the dinner bell now.

      Now, this–

      We've had 10 years of very productive Perl 5 development. It would have been very interesting to see what those 10 years would have been like had some of the uglier parts of the core been deprecated in favor of some of the features in Perl 6.

      –has been refuted in this thread already as both impossible and actively detrimental to the goal it sets out. If you haven't worked on the implementation of those parts of the core, this feels mildly insulting and just disconnected from reality. It's the "Why can't I have a pony?" again. Because ponies are really actually not as easy as they look to a little kid.

      If you're not going to get personally involved in developing and writing code for Perl 6, just pretend it doesn't exist or frankly it seems to me you're actively hurting its progress. These discussions—which are outside of the regular lists, meetings, and decision making process—don't clarify or improve the prognosis and they are, obviously from the OP, actively irritating and potentially detrimental to the only persons trying to deliver the thing. I've nearly quit projects before from getting critiques, even ones I may have deserved, which were delivered out of turn or without etiquette. I can't imagine what it would be like to deal with it on a continuous basis. I wouldn't blame anyone who wouldn't put up with it.

      Q: Do you want Perl 6?

      A: Backseat driving can only serve to slow the trip down and make the drivers start to hate their task. No one does, or can be expected to do, a good job when it stops being fun. Help keep it fun. If you're still impatient, go evangelize for Perl 5; it's better all the time and its critics are easier to counter.

      (update: speling.)

        Suppose for a moment that I buy your argument that it's too early to do marketing for Perl 6 - then how should we attract contributors, when nobody knows about it? And without contributors, how are we ever going to get to a point where it's ready for marketing, by your reckoning?

        Saying "Don't to marketing for Perl 6 yet" is basically the same as saying "Don't bother at all".

        Perl 6 smells wonderful to me but it is half-baked. Only a desperate, addled chef rings the dinner bell now.

        I for one don't try to announce Perl 6 as a finished dinner. If people ask me, I plainly tell them that Perl 6 isn't very mature yet, but if they care I still try to drive their appetite - after all some people like it when their steak isn't cooked through, or to pinch a bit while cooking.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2014-08-21 02:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (127 votes), past polls