Slashdot Mirror


Perl 6 Gets Beta Compiler, Modules and an Advent Calendar (thenewstack.io)

An anonymous reader writes: A "useful and usable distribution of Perl 6" was released Saturday, a new beta version of the Rakudo compiler to support the coming production release this Christmas. And there's already 467 Perl 6 modules on the new archive at proto.perl6.org (though Perl 6 will also be able to load modules written in other languages). "Perl has a huge community of avid users that continues to thrive in spite of detractors," says one developer, pointing to new applications for big data, in a new article reporting that over one million people have downloaded ActivePerl's own Perl distribution just in 2015. And this week also saw the release of two new "Advent Calendars" of programming tips, one for Perl 5 and one for Perl 6.

9 of 131 comments (clear)

  1. I've found the Perl 6 community to be dreadful. by Anonymous Coward · · Score: 5, Interesting

    As somebody who has used Perl since Perl 3, I've been following the Perl 6 disaster on and off since its very beginning around 15 years ago.

    As somebody who also relished the fantastic Perl and CPAN communities of the 1990s, I'm sad to say that I've generally been quite ashamed of the Perl 6 community.

    First and foremost is their inability to get anything done. Seriously! They've fucked around with so many incomplete implementations now that I've lost track. Rakudo is just the latest failure in a long string of Perl 6 failures.

    Second is the way they've handled criticism of Perl 6. I see people on Reddit and HN make good points about how awfully Perl 6 has been handled, and these people are savagely downvoted by the Perl 6 community.

    Third is the way they claim that Python 3 was a disaster, when the opposite is clearly true. Python 3 improved Python 2 in important ways, it's well supported by libraries, it sees frequent updates and improvements, and most importantly they've been able to deliver stable production-usable releases for years! Python 3 has been a resounding success in a fraction of the time it has taken Perl 6 to go absolutely nowhere.

    Fourth is the way that Perl 6 isn't actually that much of an improvement over Perl 5, assuming that it actually is an improvement at all. This is difficult to evaluate because of the lack of reliable, complete implementations.

    Fifth is the way that they've tarnished the reputation of Perl as a whole. Now when people hear the name "Perl" they think of Perl 6 and its 15 years of screwing up. They no longer thing of the scripting language that, while maybe not the prettiest, was damn expressive and very effective to use. "Perl", which once evoked a sense of pride in many people now evokes a sense of disappointment and shame.

    Even if the language does turn out to be better than Perl 5, I don't think I'll even bother using it. I just don't want to have to deal with the people who make up its community!

    1. Re:I've found the Perl 6 community to be dreadful. by Anonymous Coward · · Score: 3, Interesting

      I lost interest in Perl when they announced Perl 6 would be incompatible with Perl 5. If I'm going to have to learn a whole new syntax to stay current, why not just switch to a new language that isn't hated by half the planet? Now if they had released Perl 6 in a decent amount of time and it was good I might have gone back, but at this point I've moved on and so has everyone else.

    2. Re:I've found the Perl 6 community to be dreadful. by Crazy+Taco · · Score: 2, Interesting

      With C++, Java, PHP, or C# there is usually at least some consistency to the code from programmer to programmer...but not with perl. There are probably 500 different ways to do any common thing ("Hello world!") and what is clever, clear, and obvious to programmer A is completely unreadable and opaque to programmer B. Yes, there may be "more than one way to do it" in perl, but trust me, that's not always a good thing.

      Hang on, you've obviously never coded much with C++ in the real world. I'll give you that Java and C# are fairly consistent, but absolutely no way with C++. That language is literally the "everything and the kitchen sink and the range rover, the dog, the refrigerator and everything in Walmart all thrown together" language. When you try to support every possible programming paradigm in a single language like C++, you can get programs that look like they were written in two different languages. It is not more consistent than Perl, and if there are 500 ways to do something in Perl it's probably a million in C++.

      And as much as people hate php, it's nearly impossible to crash it so hard that it won't at least give you some info about the problem that caused it to choke on. It's a billion times easier to debug than perl.

      Again, if we are going to talk about debugging, I would strongly dispute the Perl is the hardest. I know you mentioned PHP in this part of the quote, but if you want to talk about hard debugging, I would again refer you to C++. Operator overloading? Check... that can make things crazy. Not to mention C++ is not an interpreted language, but a compiled language, and you can be doing very low level things with it. You can get into some very hard situations to debug in that language.

      And actually, I want to state for the record I'm not a C++ hater. It was my first language and still one of my favorites (next to C). Despite the difficulties it's an incredibly powerful language. And it's the same with Perl. Certainly I prefer a language that is simpler all else being equal, but there are languages like Perl and C++ that overcome their craziness to be something quite powerful anyway. And I'm not putting down some of the "simpler" languages like Java or C# either, because they are also excellent, powerful languages. Each has their place... for general development I'd pick Java or C#, but for concise easy text parsing Perl is probably best, and for interacting with hardware or doing things really optimally it would be hard to beat C++ (or C).

      --
      Beware of bugs in the above code; I have only proved it correct, not tried it.
  2. Re:Hopefully I'm done with Perl by Marginal+Coward · · Score: 4, Interesting

    I've used Perl since the first release, gotten pretty good at it 5-6 times over the years, and loved it for it's capabilities. But I've also become disgusted with the whole idea of There's More Than One Way to Do It. What TMTOWTDI means in the real world is that, if you have to maintain someone else's perl script, you're in for a world of hurt unless you're a guru at it.

    I, too, once loved Perl for its capabilities. Then, a couple of years later, I found Python. I haven't looked back. It's remarkable that two languages which are fairly semantically similar (you can do most of the same things in about the same way) have such converse philosophies: Perl has "There's More Than One Way to Do It" and Python has "There should be one-- and preferably only one --obvious way to do it."

    Even before I found Python, I became disenchanted with Perl for the fact that I found that I had to a comment on nearly every line of my own code to be able to read it later - much as I had learned to do with assembly language. In contrast, I use comments very sparingly in Python because it reads so beautifully.

    Therefore, it's hard for me to imagine why the world would ever need such a thing as Perl 6 - and particularly why the world was supposed to wait 15 years for the privilege. Oh, I forgot...you get to use braces...

  3. Different intent by Okian+Warrior · · Score: 3, Interesting

    Perhaps it was momentary insanity, but I expected the syntax of Perl 6 to be more readable and less obstuse. Looking through the Perl 6 advent calendar, I noticed that, somehow, the people working on Perl 6 seem to have made it even worse.

    Perl will always be the ugliest language in the world.

    Perl isn't meant to be simple, it's meant to be expressive.

    A simple language is wordy, requires a lot of typing and keywording to express a thought. Cobol has things like "move a to b", which is simple and readable, but requires a lot of typing. Basic has things like "for index = 1 to 10 step 2" which is very readable, but requires you to type out "step" and "to".

    Perl is meant to be terse and expressive, which in practice means that things you typically want to do in programming can be called out in short sequences. Larry took a look at all the things that programmers want to do and encapsulated them in the syntax as a sort of short hand notation. Sort of like how emacs macros do complex things tersely, which could also be done with a bunch of keystrokes.

    Perl is also a non Von Neumann language, meaning that it does not reflect the underlying Von Neumann architecture. It focuses on functionality instead of the machine, and as a result things like file operations are part of the syntax and not a library call.

    For example, variables do not represent memory areas like they do in C. This allows Perl to do things like automatic allocation and garbage collection, and be unicode compliant. (Characters are not specifically 8-bit entities in Perl.)

    This means that a lot of what you do in Perl is completely portable across architectures. File I/O and filename searching are part of the language, and thus not architecture specific.

    Sometimes these are important. Being able to run on multiple architectures, or getting a prototype up and running quickly, or not having to debug allocation errors makes the act of programming more efficient.

    ...but at the cost of requiring the programmer to know a more complex syntax.

    1. Re:Different intent by Marginal+Coward · · Score: 2, Interesting

      Perl isn't meant to be simple, it's meant to be expressive.
      A simple language is wordy, requires a lot of typing and keywording to express a thought.

      Interesting point, but when I first learned Python many years ago, I converted my set of useful Perl scripts into Python, partly as a learning exercise. I was surprised to learn that each one was smaller in terms of both number of lines. After doing a post mortem, I realized that the elimination of braces more than made up for Python's more explicit keywords.

      That said, I would never claim that one can create powerful "one liners" in Python as one famously can in Perl. But I consider that a feature.

  4. Re:Hopefully I'm done with Perl by JustAnotherOldGuy · · Score: 3, Interesting

    I found that I had to a comment on nearly every line of my own code to be able to read it later

    Yep...I go back and look at old perl stuff I wrote 4 or 5 years ago, and I swear to god it looks like line noise. I couldn't debug one of my own programs now to save my life.

    --
    Just cruising through this digital world at 33 1/3 rpm...
  5. The Zen of Perl by Marginal+Coward · · Score: 4, Interesting

    After observing above that Perl and Python have converse philosophies on the point of "There's more than one way to do it," I realized that a Zen of Perl could be formulated by creating the Zen of Python's evil twin:

    Ugly is better than beautiful.
    Implicit is better than explicit.
    Complex is better than simple.
    Complicated is better than complex.
    Nested is better than flat.
    Dense is better than sparse.
    Obscurity counts.
    Special cases aren't ordinary enough to follow the rules.
    Although obtuseness beats clarity.
    Errors should sometimes pass silently.
    Unless you tell them to die.
    In the face of ambiguity, refuse the temptation to delineate.
    There's more than one way to do it.
    Although those ways may not be obvious at first unless you've consulted the manual.
    Fifteen years is better than three.
    Although never is often better than *fifteen* years.
    If the implementation is hard to explain, it's a good idea.
    If the implementation is easy to explain, it may be a bad idea.
    Namespaces are one honking good idea -- let's use as many as possible!

    Presumably, this applies to Perl 6 as much - if not more - than to Perl 5. Otherwise, exactly what sort of "improvement" is Perl 6?

    (with apologies to Tim Peters for applying a little Artistic License to his fine work.)

  6. There will be a stampede of developers to Perl 6 by Crazy+Taco · · Score: 2, Interesting

    It's funny how everyone here says "No one is going to try that". Actually, Perl 6, if it releases by Christmas, will probably be the hottest language around in the next year or two. And I'm not necessarily saying that because of it's merits (which I have not definitively assessed one way or the other). I'm saying that because developers are pretty much all about "Hey new shiny thing over here!".

    It seems like pretty much every time a new language drops there's a stampede to it by developers just because its new. Hey, Ruby on Rails! Hey, there's C# over there! Hey, F#! Hey, Erlang! Hey, Javascript framework of January! Hey, Javascript framework of February! Hey, Javascript Framework of the second half of February! Whoa look, it's Coffeescript! ......... Hey, it's Perl 6!

    Some of these of course are decent languages and frameworks and have staying power... others, perhaps not as much. We'll know after five years or so where Perl 6 is going to end up. But don't underestimate the ability of developers to stampede at something for no other reason than that it is new. I expect considerable chatter at some point just because it's the new kid on the block.

    --
    Beware of bugs in the above code; I have only proved it correct, not tried it.