Larry Wall has approved renaming Perl 6 to Raku

619 points by Ovid 5 years ago | 439 comments
  • edflsafoiewq 5 years ago
    From what I could tell, Raku appears to be from Rakudo, the Perl 6 compiler, which is a shortened form of rakuda-dou (="way of the camel" in Japanese). Rakudo also means "paradise". The "raku" from "way of the camel" means "camel", while the "raku" from "paradise" means "fun" or "enjoyable" (or "music").

    Incidentally, it also happens to sound similar to "roku" (="six").

    • Sharlin 5 years ago
      There was something strangely familiar about the word "raku" but it took me a moment to make the connection. In Finnish, "raakku" is a common name for the mollusc species Margaritifera margaritifera, better known as the… freshwater pearl mussel! [1] I'm really not sure if this is an amazing coincidence or yet another layer of linguistic brilliance.

      [1] https://en.wikipedia.org/wiki/Freshwater_pearl_mussel

      • GolDDranks 5 years ago
        Oh wow, I didn't know that, but I know that there is/was a band called "Raakku ja helmet". I always thought "Raakku" was a humorous nickname of the singer, because "raakkua" means "to cry like a crow", i.e. not so well. But "raakku" meaning "a mussel" brings a whole new level of meaning: "Mussel and the Pearls".
      • rcthompson 5 years ago
        This is exactly the type of linguistic naming shenanigans I'd expect from the Perl community.
        • Grinnz 5 years ago
          It is also a type of Japanese pottery. "Raku pottery is "imperfect but sophisticated", so that's a fit :)" https://colabti.org/irclogger/irclogger_log/perl6?date=2018-...
          • cestith 5 years ago
            That description also fits a camel.
            • joshred 5 years ago
              A camel strikes me as unsophisticated yet perfect.
          • zumu 5 years ago
            So as a Japanese speaker, I don't think I ever would have made the 'raku' == 'rakuda' camel connection.

            Also, while 'raku' is the reading for 楽, which connotes easy, simple and other good things, it is also the reading for a bunch of other characters--namely, 落, which means or carries the connotation of falling, declining or otherwise missing the mark.

            When I see the 'raku' transliteration in the context of Perl, I think of 落. Not sure if that says something about my subconscious perception of Perl or not, but I can't help but think 'Raku' is a bad choice for the name of a language mired in indecision and falling from public favor.

            On another note, I find the inclination of tech projects towards poorly translated Japanese words amusing. It nicely compliments the phenomena you see in the use of random English words for the naming of Japanese cars, condo buildings, and other 'prestigious' products. So if you find that ridiculous, you should find these 'Japanese' technology names ridiculous as well.

            • Ultimatt 5 years ago
              Raku isnt falling from public favor, it hasn't made it yet. It's an entirely different language to Perl 5. Like the difference between C and C# or Java.
              • zumu 5 years ago
                Yea, sorry I'm not super familiar with the project, but that is the general vibe I get about Perl.

                Interestingly enough 落(raku) also has the connotation of failure or missing the target, so not very auspicious in the context of a new language either!

              • 5 years ago
              • wodenokoto 5 years ago
                Raku means happy, fun or relaxed: https://jisho.org/word/楽

                Rakudo means paradise: https://jisho.org/word/楽土

                Rakuda is a camel: https://jisho.org/word/駱駝

                • tvaughan 5 years ago
                  And back when we had to read books to learn a language, the definitive guide on Perl was called "the camel book." https://en.wikipedia.org/wiki/Programming_Perl
                  • aflag 5 years ago
                    I'm curious, how do you learn languages now?
                    • chmod775 5 years ago
                      I read a blog post with the basics, then Google everything else as I need it.
                  • pvaldes 5 years ago
                    > Raku appears to be from Rakudo, the Perl 6 compiler, which is a shortened form of rakuda-dou (="way of the camel" in Japanese). Rakudo also means "paradise". The "raku" from "way of the camel" means "camel", while the "raku" from "paradise" means "fun" or "enjoyable" (or "music").

                    One of the worst problems for adoption of perl6 has been always overthinking. "Hey, look at my cool name" has never convinced anybody to use a computer language. Too many names.

                    Raku is a good name indeed. Like a promise of prune and simplify all the former zoo of names that could finally allow the people to focuse in the program

                    • coldtea 5 years ago
                      >One of the worst problems for adoption of perl6 has been always overthinking. "Hey, look at my cool name" has never convinced anybody to use a computer language. Too many names.

                      You're overthinking it. I don't think those who came up with the names did so to, or cared to, convince people to use the language with them...

                      • pvaldes 5 years ago
                        > I don't think those who came up with the names did so to, or cared to, convince people to use the language with them

                        Mission acomplished then, if we take a look to the low interest in people to massively adopt the language since it was released in 2015

                    • earenndil 5 years ago
                      Meanwhile, in hebrew, it means spoiled or decayed. :)
                      • cben 5 years ago
                        That would be Rakuv רקוב, just Raku doesn't have any meaning in Hebrew. It does sound similar when pronounced though.

                        (Hebrew word formation is from 3-consonant roots, not concatenation, so removing a letter doesn't give a related word. It's either an invalid word or a different root with 3rd voiceless consonant רקוא which is a not a root / רקוע Raku'a "flattened" but that doesn't sounds quite differently.)

                      • amptorn 5 years ago
                        It's a pretty good name I think!
                      • kbd 5 years ago
                        Naming matters. Nim changing from "Nimrod" matters. Cockroachdb's name is offputting. Perl 6's name has caused endless confusion and by itself sabotaged both Perl 5 and Perl 6. Perl 6 has interesting ideas but I don't even want to touch it because its naming issue is so toxic. I'm glad they're going to rename it.
                        • philwelch 5 years ago
                          “Nimrod” is a funny case. In the Bible, Nimrod is a king and a mighty hunter. In Looney Toons, Elmer Fudd, a decidedly not-mighty hunter, is sarcastically dubbed “Nimrod”, and so the connotation is reversed for those of us who are first exposed to the name as a sarcastic jibe from Bugs Bunny rather than the name of a Biblical figure.
                          • pvaldes 5 years ago
                            Agree. To name another example, I personally can't take seriously anything named 'webinar'.

                            Webinar is similar in spanish to the word huevina that means "egg beaters" (a replacement cheap and second quality). It sounds also like "web-vaina" (a vaina is "something" and specially used when something annoying happens) and has common roots with words like "huevín" (little testicle) and "huevada" (something irrelevant, lacking of any real interest and a total lose of time).

                            Definitely looks like something created to be dismissed. I can't thing in a worst 'hype' word for replace (without any real need or reason) the perfectly neutral and good old term 'videoconference'. Webinar is the kind of term that Ned Flanders would use.

                            • coldtea 5 years ago
                              >Agree. To name another example, I personally can't take seriously anything named 'webinar'

                              Seeing that webinars have caught on like wildfire, become a multi-billion dollar business, and forced all kinds of eLearning and online platforms to say they offer the ability to produce/share "webinars", I'd say this is rather a counter-example.

                              I.e. more like "A few might find X or Y name off-putting, some outliers might even come with contrived meanings in unrelated not-exactly homonyms in different languages that supposedly would make a name unsuitable, but in most cases nobody really cares".

                              • exikyut 5 years ago
                                I agree with you and the GP.

                                The execution, the thing, the multibillion dollar industry, are excellent, and the world would be worse for their nonexistence.

                                The naming, on the other hand, is indeed a disaster. I too can't take it seriously, although I can't quite put my finger on why as well as the GP can. To me it just sounds like the "lite" version of something, but to the extreme where it might as well be the toy version.

                                Yet another case of buzzword intolerance, it would seem.

                            • anonytrary 5 years ago
                              Is there a TLDR on what's wrong with the name "Perl 6" for those of us who have zero context?
                              • sundarurfriend 5 years ago
                                It was not a version upgrade from Perl5, but instead practically a new language with some similar design principles. So the name was both holding Raku back by associating it with the warts of Perl5, and also holding Perl5 back because people assumed "Perl 6 was the upgraded version so why use the old one". People have been talking for a long long time that the language is different enough to deserve a different name, and things finally seem to have come to a head recently. As a Perl 5 fan and an early ~Perl 6~Raku enthusiast, I'm happy about this change, though it's almost certainly coming too late. Better late than never, I guess.
                                • takeda 5 years ago
                                  I believe the issue was that Perl 6 had too many changes that made it hard to convert apps from earlier version.

                                  That created some kind of limbo where people weren't sure if they should use perl 5 or perl 6 (”why develop in perl 5, when it is probably a dead end and perl 6 is the future” and at the same time "why should I convert to perl 6, what if it will be a failure and I wasted my time?")

                                  By renaming it, it revives Perl 5 so developent can continue, and at the same time Perl 6 is presented as a new language, now whichever wins will be based on its merit.

                                  • Grinnz 5 years ago
                                    Also, importantly, reflecting that they are in no more competition than Perl and Ruby are.
                                  • goodcanadian 5 years ago
                                    The sibling comments aren't wrong. However, Perl 6 was originally intended to be the next version of Perl. For a long time it was vapourware, however, and development restarted on Perl 5.

                                    When Perl 6 finally arrived, it was too much of a step change from Perl 5 to convince many people (myself included). Meanwhile, Perl 5 had continued to develop and was, in no way, in need of a replacement.

                                    • alexmint 5 years ago
                                      Perl 6 sounds like a successor of Perl 5 but in reality it is a totally new language. Many long time Perl 5 users think a new name for a new language would have been better.

                                      The name Perl 6 was damaging to the popularity of Perl because beginners were confused whether they should learn Perl 5 or Perl 6. The same confusion existed in Python: Python 2 vs. Python 3 but the Python Wiki was always very clear. Until a certain point, it recommended Python 2 and after Python 3 became very popular, it recommended Python 3. That sort of clarity was missing in Perl. Due to the number of new programmers learning Perl decreased rapidly and finally Python overtook in popularity.

                                      • BrandoElFollito 5 years ago
                                        Thid said, Python 2 vs 3 did not matter for a beginner. Beside print they would not see a difference.

                                        I started to use Python when 3 was taking off. Did some code on 2 for a few months, then just swapped the interpreter without any modification of the code (beside print).

                                        For advanced devs the story may be different.

                                    • coldtea 5 years ago
                                      >Naming matters

                                      Not that much.

                                      >Nim changing from "Nimrod" matters

                                      Hardly.

                                      >Cockroachdb's name is offputting.

                                      Not enough to matter. They still raised over $60 million in funding...

                                      Many people have internalized Marketing/SEO/enterprise-pointy-hair-boss thinking about "what matters", but in the grand scheme of things, naming is not really that relevant...

                                      • Grinnz 5 years ago
                                        To someone versed in both languages, no. Otherwise, the name giving official credence to assumptions that no longer hold is damaging to both.
                                    • mikece 5 years ago
                                      Kudos for making this change! This is what the folks at Microsoft should have done when ASP became ASP.NET and ASP.NET became ASP.NET Core. I know... keeping the root of the name the same makes management think the technology is fundamentally the same (and, therefore, cheaper) but the SEO confusion trying to find the right version of an answer is a PITA.

                                      Secondarily, while Perl has never appealed to me I am more likely to admit I'm checking out Raku because the chances that someone will ask me to look at and debug their cousin's friend's manager's Perl 3 CGI app is considerably reduced.

                                      • seirl 5 years ago
                                        > Kudos for making this change!

                                        Rakudos, even!

                                      • Upvoter33 5 years ago
                                        I'm amazed that Perl is still around. I personally find it the least readable language that I've ever used, and that includes a lot of languages. But some people really seem to love it, for reasons a bit beyond me.
                                        • pmoriarty 5 years ago
                                          How familiar are you with Perl, and how much have you used it?

                                          Most of the anti-Perl comments I've heard have been from people who really didn't know it very well, if at all.

                                          Some of them might have glanced at some Perl code and saw a dense regex and dismissed it as "line noise". Well, yeah, if you don't know regexes you would be forgiven for thinking it was line noise, but if you did know regexes it should look no more like line noise than a similarly dense regex in any other language.

                                          For a long time now, Perl has allowed regexes to be commented. Commenting dense regexes and splitting them up in to short regexes assigned to judiciously named variables is just good style in any language, and has been the norm in Perl for a long time. Furthermore, modern Perl style guidelines advise code to be written with verbose, English words instead of ancient Perl one-character special variable names.

                                          So setting aside both dense, uncommented regexes and ancient single-letter special variable names, both of which have been recognized as poor style in Perl for decades now, I'm really not sure what the complaints about Perl readability are about. To me it looks really no uglier than any other mainstream language, and one could easily make the argument that any other mainstream language you care to name is uglier in some of its own ways.

                                          If you include non-mainstream languages, some languages which have a lot of fans here on HN are arguably a lot less readable than Perl to someone only familiar with traditional Algol-style languages. In particular, I'm thinking of Forth and Haskell. Yet you rarely hear complaints on here about their readability.

                                          • j9461701 5 years ago
                                            >How familiar are you with Perl, and how much have you used it?

                                            It's what my company's entire code base is written in. So every hour of every work day for the past 6 months.

                                            >To me it looks really no uglier than any other mainstream language, and one could easily make the argument that any other mainstream language you care to name is uglier in some of its own ways.

                                            It's no one thing, but a bunch of little things that compound on top of each other. Until you get something like this:

                                            while (<>) { ($h{$_}++ == 1) && push (@outputarray, $_); };

                                            Mostly though it's how it's used. It can technically do anything, so a lot of the times it is asked to do everything. Until one day you wake up to find you have hundreds of perl files, all tens of thousands of lines long, that all interconnect in an insane Object Oriented hierarchy soup stretching across every conceivable programming space - from database control to money processing to security to web site design.

                                            • skinniks 5 years ago
                                              I've worked on large 20 year old Java and C applications (OLTP and batch processes) and I can assure you that they can be as ugly as any old Perl code you have dealt with.

                                              Saying that I see absolutely nothing wrong with that perl code you are highlighting as being obtuse or ugly. Anyone who understands Perl should not have an issue with that line. It is clear and concise.

                                              • kbenson 5 years ago
                                                > while (<>) { ($h{$_}++ == 1) && push (@outputarray, $_); };

                                                That's a business culture thing. If you set the expectation, that it's okay to do that, people might do that. If you set the expectation that it's not okay, people shouldn't.

                                                The equivalent C and Python are likely just as ugly (given that the equivalent python might be using a far too complex range statement or put it on a single line using : and ;, which is possible...).

                                                That said, as bad code goes, that's not really that bad. The only non-standard things are <> and $_, and if you don't know what those are, you really haven't done the minimum of learning about the language (<> might be somewhat exotic in that form depending on the codebase, but $_ is not something you can get way with not knowing about). In all, the major problem with it is that it's not commented and uses poor variable names, which is something every language needs to deal with. I would write it like so if I wanted it on a single line (but I would probably use 2-3 lines):

                                                    # Report each duplicated line once
                                                    my (%lineseen,@linedups); # This was required in yours too right? I assume you're using strict...
                                                    while (<>) { (++$lineseen{$_}==2) && push(@linedups, $_); };
                                                
                                                But I would likely opt for the following if doing it myself:

                                                    # Report duplicate lines once
                                                    my %lineseen;
                                                    my @linedups = grep { ++$lineseen{$_}==2 } (<>);
                                                
                                                Assuming I was using <>, which I generally don't since File::Slurp is usually available and clearer.
                                                • wumpus 5 years ago
                                                  Huh, I worked at a company that wrote 1.5 million lines of perl together, and we never ended up with those problems. Maybe you picked the wrong co-workers? You can screw up in any language.
                                                  • weare138 5 years ago
                                                    I have a decent amount of experience with Perl 5 and one of Perl's greatest features is also sometimes it's greatest liability, versatility. It's permissiveness tends to facilitate poor coding styles and methods which is why there's alot of bad Perl out there. Plus Perl 5 is just different for lack of a better term. If your proficient newer languages, Perl 5 and the Perl way of doing things probably seems a little strange.
                                                    • lenkite 5 years ago
                                                      Seriously...? I last worked with Perl in college (more than a decade ago) and thats perfectly understandable to me. There is nothing un-readable about that code as long as you understand Perl conventions. The more important part regarding code quality was whether that piece of code was encapsulated into an independent function or a snippet of a wall of text.

                                                      You should see C++ Templates! Even the idiomatic examples in cppreference.com will blow up your head and require multiple re-reads.

                                                      • b2gills 5 years ago
                                                        Note that:

                                                            while (<>) { ($h{$_}++ == 1) && push (@outputarray, $_); };
                                                        
                                                        Would be written as the following in Raku:

                                                            my @output-array = lines.unique;
                                                        • tangental 5 years ago
                                                          > while (<>) { ($h{$_}++ == 1) && push (@outputarray, $_); };

                                                          We use Perl::Critic [0] to deal with issues like that. It has enabled us to develop a very consistent style, and helps new devs adopt to it quite quickly.

                                                          [0] https://metacpan.org/pod/Perl::Critic

                                                          • 5 years ago
                                                          • commandersaki 5 years ago
                                                            'x' is an operator...
                                                            • 5 years ago
                                                              • lilSebastian 5 years ago
                                                                > Most of the anti-Perl comments I've heard have been from people who really didn't know it very well, if at all.

                                                                Indeed, I hope this thread gets picked up by http://n-gate.com/

                                                            • Shoop 5 years ago
                                                              Even if you never want to write any Perl code, I definitely recommend checking out some of the features of Raku. As someone who is interested in language design but never has (or likely will) use Perl for a project, I still found reading about Raku's feature set super interesting. Here's a whimsical slide deck that introduces a lot of the most interesting features: [0]. Even if you find yourself shaking your head at all the craziness, you at least have to admire Raku's success at fulfilling its goals of being a post-modern language optimized for fun (-Ofun).

                                                              [0] http://tpm2016.zoffix.com/#/

                                                              • cutler 5 years ago
                                                                I love Perl - the syntax, community, Larry Wall's writings and The Monastery. Occupationally I'm forced to write Ruby for a living these days but Perl's influence is there and enhances my appreciation or Ruby. I came into programming after reading in the Dreaweaver Bible that you could extend the search facility with regular expressions. Jeffrey Friedl's monumental Mastering Regular Expressions was listed for further reference and I was hooked. Perl was the natural language to learn if you were inspired by regexen and wanted to create dynamic websites back in the early 2000s so I sought-out Larry Wall's Programming Perl. That book is such a joy to read. I still dip into it today just for the quality of the writing ... and a little nostalgia.

                                                                Take time to really grok Perl and you may find the soundbite swipes at Perl don't make sense any longer.

                                                                • eruci 5 years ago
                                                                  Just because you can't read it, is not a good reason to hate it. But, as Larry says, "It is better to be hated by those who don't know you, than by those who do"
                                                                  • theonemind 5 years ago
                                                                    I find programming perl fun inversely to program size and proportionally to the need to slice and dice text. I didn't learn perl until the perl 5 era, but from what I can tell, I would've been as satisfied with perl 4, before they bolted on OO and tried to expand the applicable problem domain of the language. I mostly just use it as a super-charged awk and bash replacement for scripting.
                                                                    • tyingq 5 years ago
                                                                      The bolted on OO is really just one new function...bless(). The rest is package namespaces, which are also used for non OO purposes.

                                                                      I'm never sure what people don't like about OO Perl. There's a tiny bit of boilerplate in a constructor, other than that, it doesn't seem different from other OO script languages.

                                                                      • hnick 5 years ago
                                                                        It's not terrible to get working, but for many people a major point of OO is encapsulation and it doesn't work out of the box like that. You have to install another package or use the inside-out object model to prevent direct access to package variables and 'private' functions are usually by naming convention only.

                                                                        It's just another example of Perl's biggest strength and weakness. Total freedom to build something amazing or shoot yourself in the foot.

                                                                        • kbenson 5 years ago
                                                                          Agreed. Not to mention, from what I understand they just borrowed the OO system from Python, so it shouldn't be that foreign to most people.
                                                                      • GuB-42 5 years ago
                                                                        I also find it one of the least readable language. Or more precisely, the language that requires the most effort to be made readable. Every language can be made unreadable.

                                                                        But it is also one of the most writable language. In Perl, for most problems, there is a quick and dirty way of addressing it. It is especially true when it comes to processing text files, the thing that Perl is best known for.

                                                                        Many languages try to be clean and consistent, it is obviously good for readability, but it means that choices have to be made. Sometimes the best way is the "wrong" way and you have to fight against the language. Perl solved that problem by not having a "wrong" way of doing things, screw cleanliness and consistency.

                                                                        Also, first class regex are awesome for quick and dirty text processing.

                                                                        • takeda 5 years ago
                                                                          Perl gets a lot of flak, I am no fan of it, but frankly the least readable language IMO is bash.
                                                                          • WheelsAtLarge 5 years ago
                                                                            True, it's very easy to make your code unreadable but other languages have the same drawback too. I would never pick it as the language for team projects. But with Perl you can really pack a lot of power into each line of code. It's hard to beat for scripting.
                                                                            • 5 years ago
                                                                              • h1d 5 years ago
                                                                                Seems you've never used shell scripting.
                                                                              • natch 5 years ago
                                                                                This is great news both for Perl and for Raku. I will probably bother to take a serious look at Raku now, sometime, if anything just for curiosity. Why not before? I have no good answer for that.

                                                                                But my main worry about it is that I suspect it has brought along with it the community's dysfunctional fascination with over-the-top cleverness and arcane constructs. I'll probably stick with Python and Perl 5 on an as-needed basis, but Raku will be fun to look in on for brain stimulation.

                                                                                My best case hope is maybe it's clarified some things! Like having an agreed on best practice for how objects are implemented, that would be nice.

                                                                                • ergothus 5 years ago
                                                                                  I was a Perl dev a long time ago, and I think it made me a stronger coder. I still miss it, and I've not coded Perl for real in a decade.

                                                                                  You're correct about "over-the-top cleverness and arcane constructs" being a problem, but it's also about using code as communication. We code in _languages_, and on one extreme is coding newpaper style - lowest common linguistic denominator. On a good day this is a common, understandable language, and on a bad day it is trying to communicate with stilted baby talk. On the other extreme is dense linguistic cleverness. On a good day this is nuanced yet clear and informative, on a bad day it is James Joyce.

                                                                                  As coders we like to talk about using the right tool for the job, but in code we so often assume that the most stilted repetative pattern is always best. It often is - like newspapers, we can't (or shouldn't) assume our audience is well-versed in our material. But we have other constraints as well. I often argue in favor of _skimmability_ over _readability_ of code. That means that the attention/focus of the eye is important. Stilted languages with minimal syntax give you almost no control over that. More fluid languages like Perl give you a lot more flexibility. Learning to use that flexibility to increase clarity...for MOST people, not just for yourself...is a skill that most of us have only limited practice at, and none of us have mastered.

                                                                                  But it's a good idea to work at it, and when done well you communicate MORE with LESS, and it's something people notice because it's not buried in the midst of visual noise.

                                                                                  • tangental 5 years ago
                                                                                    Interesting perspective there. Worth noting that Larry Wall trained as a linguist and "often compares Perl to a natural language and explains his decisions in Perl's design with linguistic rationale" [0]

                                                                                    > On a good day this is nuanced yet clear and informative, on a bad day it is James Joyce.

                                                                                    So true. I think Perl golf could be Samuel Beckett.

                                                                                    [0] https://en.wikipedia.org/wiki/Larry_Wall

                                                                                    • codesections 5 years ago
                                                                                      > On a good day this is nuanced yet clear and informative, on a bad day it is James Joyce.

                                                                                      If Raku's "bad day" is basically like "one of the most influential and important authors of the 20th century" (according to Wikipedia)… well, then, maybe I should check Raku out!

                                                                                      • tangental 5 years ago
                                                                                        I think the reference was to languages in general. In James Joyce's Ulysses there are four or five chapters which all tell basically the same story, but written in wildly different styles - one like an ancient legend, another a 'stream of consciuosness', and so on.
                                                                                    • Grinnz 5 years ago
                                                                                      Perl has pretty much coalesced on Moo(se) for this, though it's not core yet. And yes, Raku has a thorough core object system.
                                                                                      • petre 5 years ago
                                                                                        Why not before? Because Perl is you know, dead. Jokes aside, it's a pretty nice language apart from the !$double .@sigils. If I'd switch from Perl 5, I'd probably switch to Ruby, as Perl 6 oops Raku is quite slow.
                                                                                        • xisukar 5 years ago
                                                                                          > ... apart from the !$double .@sigils

                                                                                          In this case, `!$double` isn't a sigil. `!` is just the old prefix operator for negating a value [1]. If you meant to write `$!double`, then it's the twigil [2] for class attributes [3]. Twigils could be considered as secondary sigils but they affect the scoping of a variable. In this instance, `!` is for class attributes and will only be found there.

                                                                                          As for `.@sigils`, I've never seen this syntax. I'm probably out of the loop in this one.

                                                                                          As an aside, sigils are one of Raku's interesting features. They convey information [4] that might not be easy to discern from just looking at the code. What kind of structure is this variable holding? Is it holding an array? A hash? A code object? What's the scope of this variable? Is it class-scoped? Is it dynamically-scoped? Is it a compile-time variable?

                                                                                          > ... Raku is quite slow.

                                                                                          This is a legitimate reason for avoiding the language. However, it's worth pointing out that Raku core developers have made great improvements to the language in the speed department since it was first officially released in 2015. They recognize there's a lot of room for improvement. [5]

                                                                                          [1] https://docs.perl6.org/routine/!

                                                                                          [2] https://docs.perl6.org/language/variables#index-entry-Twigil

                                                                                          [3] https://docs.perl6.org/language/variables#index-entry-$!

                                                                                          [4] https://docs.perl6.org/language/faq#Why_sigils?_Couldn't_you...?

                                                                                          [5] https://docs.perl6.org/language/faq#Is_Perl_6_fast_enough_fo...?

                                                                                          • petre 5 years ago
                                                                                            Ok, twigils, whatever. They're next to each other so they're double the crazyness. Like the $#last_index in Perl. In Raku the . and ! are used to designate a private or public variable within a class definition. I got it backwards, which sort of proves the whole point. Push a private array nested into another and you have a bunch of gibberish worse than in Perl, where you'd only prefix it with \. Use an auxilliary variable and it feels too verbose. OTOH @{$hash{array_ref}} dereferentiation in Perl is quite annoying. And no, $hash{array_ref}->@ is definitely not how you fix this mess. I agree that sigils offer some insight into what type of the variable you are looking at.

                                                                                            Great improvements are not enough compared to other languages, even Ruby which is quite slow itself. Have you wrote anything in Node, Dart or Lua? They feel like a F1 car where Raku is an 17th century cart.

                                                                                          • SwellJoe 5 years ago
                                                                                            Ruby is also quite slow. The last benchmarks I saw makes it pretty clear Raku has closed the gap with Ruby (at least the mainline C implementation of Ruby) on a lot of fronts, and is likely to be faster for many things in another year or two and the VM gets better at optimization. My google fu isn't up to finding those benchmark results now, but it's no secret that Ruby is pretty sluggish compared to Perl 5.
                                                                                            • yesbabyyes 5 years ago
                                                                                              Here's a great talk from PerlCon.EU 2019 about Raku Performance given by Jonathan Worthington: https://perlcon.eu/talk/80
                                                                                              • petre 5 years ago
                                                                                                I sure hope it will be faster because in my own tests it's slower than Tcl. And I've tested at least two releases a year since october 2016 when the stable Rakudo came out.

                                                                                                Ruby 2.5 has a jit which uses the C compiler to generate dynamically linked objects. It looks more like a workaround but it produces fast code. Then there's Jruby, Rubinius, Truffle, mruby. Crystal too, which is a different language but yet similar. No need to learn Go. Just take your Ruby background and pretty much start using it for writing Crystal.

                                                                                              • 5 years ago
                                                                                              • MichaelMoser123 5 years ago
                                                                                                How much of a difference is it going to make? I mean nowadays most people are going with python, for better or for worse.
                                                                                              • rollschild 5 years ago
                                                                                                I really wish the Perl 6 -> Raku change could let it catch up with other languages such as Python.

                                                                                                Edit: sorry for the confusion. I meant popularity-wise. I wish the change would clarify to people that Perl 6 and Perl 5 are basically two different languages and people should at least consider Perl 6 as an option when they start a new project.

                                                                                                • eddyg 5 years ago
                                                                                                  What do you mean? Perl6/Raku has some great features that make it much better than Python. In addition to no GIL, there's other advantages, like discussed here: https://techbeacon.com/app-dev-testing/why-perl-6-game-thron... and https://www.evanmiller.org/why-im-learning-perl-6.html

                                                                                                  The features demonstrated in this talk are worth a watch (or at least a scroll through the slide deck): http://tpm2016.zoffix.com/

                                                                                                  • resonantjacket5 5 years ago
                                                                                                    Assuming you mean rename the next version of a programming language — I think that’s a horrible idea. The entire point of continuing with the previous name is that eventually the community will move onto the new language. I’m guessing Perl 6 made too many incompatible changes from Perl 5 though I don’t know much about them.
                                                                                                    • daotoad 5 years ago
                                                                                                      Perl 6 started out as a plan for the next version of Perl.

                                                                                                      Over the years (announced in 2000, delivered in 2015) it evolved into a distinct language.

                                                                                                      In the meantime, Perl5 suffered from the Osbourne Effect.

                                                                                                      Meanwhile a rift developed in the Perl community. Some are for Perl 5 forever. Some are Perl 6 forever. Some Perl 5 people blame Perl 6 for Perl 5's perception as a dead language. Some Perl 6 people blame Perl 5's reputation for being "write only" and "dead" for difficulty getting people to try Perl 6.

                                                                                                      IMHO, both sides are correct, both sides over-state their case.

                                                                                                      Renaming Perl 6 has been discussed for close to a decade, by people who are Perl 5, Perl 6, and just plain Perl partisans.

                                                                                                      It's been a difficult decision. Many people have worked very hard on both projects, and have strong feelings tied up in the issue. Important contributors to the projects have quit as a result the issues.

                                                                                                      This isn't a change that was lightly made. It's far bigger than the Python 2 to Python 3 divergence. It's more like moving from C to C#.

                                                                                                    • meesles 5 years ago
                                                                                                      I don't understand this comment. What needs to 'catch up'? They are vastly different languages with different philosophies, there's problems better solved in either language.
                                                                                                      • rollschild 5 years ago
                                                                                                        I meant popularity wise.
                                                                                                        • 5 years ago
                                                                                                    • Ovid 5 years ago
                                                                                                      This has been a huge deal for the Perl community.

                                                                                                      First, it was thought that Perl 6 would be the replacement for Perl 5.

                                                                                                      But it was long ago recognized that there was no clear upgrade path from Perl 5 to Perl 6, so it was agreed that Perl 6 was a "sister" language to Perl 5 rather than the successor.

                                                                                                      Except that many people expected that Perl 6 would be the replacement, so that stalled many projects. So an "alias" for Perl 6 was created, but that didn't seem to help.

                                                                                                      Larry has now agreed with the change and Perl 6 will be renamed to "raku" and Perl 5, which has regular, major releases every year, will now be able to simply be "Perl" and be free to continue on its own way.

                                                                                                      If I had my choice, I'd program in raku because it's a lovely language addressing many pain points (including being one of the few dynamic languages with a working concurrency model). But it's not adopted widely enough yet for that to happen. Time will tell ...

                                                                                                      • msla 5 years ago
                                                                                                        And this might save Raku.

                                                                                                        Lisp has a social problem: It's been called Lisp too long. People look at some simplified LISP 1.5-esque thing in a programming languages textbook and see a "pure" language (which isn't so pure compared to Haskell, but the creep of what "functional programming" means is its own post) which is completely useless. They don't see modern Common Lisp with its package management facility and its packages which you can manage which provide actual functionality and its FFI bindings to external libraries and the fact it compiles to optimized machine code... no, they only see some parentheses thing which is interpreted-and-therefore-slow (you know... like Javascript on V8... ) and is too elegantly pure to be bound to the outside world. Meanwhile, all the Foogols get new names every couple decades (PL/I to Ada to C to C++ to Java to C#... ) so everyone knows they're completely up to date.

                                                                                                        My point is, Perl is a tainted name, because everyone knows Perl is dead and Perl 6 is the Duke Nukem Forever of programming languages. Calling it Raku is a chance to get what the Perl 6 team actually did out into the world without the stench of death following it.

                                                                                                        • ddaa10 5 years ago
                                                                                                          > Foogols get new names every couple decades (PL/I to Ada to C to C++ to Java to C#... )

                                                                                                          +1 for Foogol. Reference to commercially obscure language but annoyingly influencial Algol?

                                                                                                          • msla 5 years ago
                                                                                                            > +1 for Foogol. Reference to commercially obscure language but annoyingly influencial Algol?

                                                                                                            Yes, even though I don't dislike Algol and the Algol syntax style, necessarily, I just wish they'd imported more Lisp influence sooner.

                                                                                                          • cgh 5 years ago
                                                                                                            > Calling it Raku is a chance to get what the Perl 6 team actually did out into the world without the stench of death following it.

                                                                                                            "Raku" = "cancer" in Polish. Not a lot of Polish enthusiasm forthcoming, I'd imagine.

                                                                                                            • techcode 5 years ago
                                                                                                              I'd imagine that chances are high that whatever name you pick for something in one language - there would be another language in this world in which same or similar word means bad/offensive thing.
                                                                                                              • janeroe 5 years ago
                                                                                                                And not just Polish, most (if not all) Slavic languages. What a perfect name indeed.
                                                                                                                • Merg 5 years ago
                                                                                                                  No it is not. "Rak" is both cancer and crayfish in Polish.
                                                                                                                • Jach 5 years ago
                                                                                                                  The social problem of the name is less similar to Lisp than I think you're making it, but I do agree it is probably not a terrible thing in the end and could be considered good. I don't think it's going to be impactful enough to "save" or not save the language (as someone mentioned elsewhere, if you called Betamax by a different name, it's unlikely the ultimate outcome would have changed).

                                                                                                                  The reason I think it's not related to the Lisp issue is because the relation of Perl 5 and Perl 6 was like an unofficial successor with a compatibility mode, like C and C++, whereas the relations between Lisps that create the social problem you highlight of people not knowing about "Real Lisp" are the relations of very incompatible forks with varied functionality running around calling themselves "Lisps" or "members of the Lisp family" and people confusing that with "Lisp". (There were some "Perl 5/6, C/C++" types of relations in the path to Common Lisp like Flavors/CLOS but no one remembers or cares about those outside of Lisp users...) Another reason is the timing, why the name change now, years later -- it turns out Perl (5) is less dead or possessing a stench of death as you put it than people might want, it's still vigorous in its own rights, and so really it makes most sense to just call the new thing by a new name and not destroy both. (Larry's wineskin comment is nice.) The Python 2/3 situation is a closer analog if we counterfactually imagine Python 3000 came out with the current 3.7 feature set, syntax updates, and backwards incompatibility. Python 2 users (me among them) would still have dragged their feet, since Python 2 would still have been useful, still had its own vigor, the same as presently, but it might have resulted in renaming some later version of Python 3 instead of the current situation of renaming the continuation of Python 2 (Tauthon).

                                                                                                                  Going back to the lisp issue to further elaborate why I think it's not very related to this one, the languages that called themselves Lisp (not a Lisp, but Lisp or Some Lisp) shared a heritage going back to the original McCarthy Lisp. The merely "a lisp" languages used that for marketing, but were actually called something different (Clojure, Scheme, even Racket which has to further distinguish itself from Scheme). You see the heritage in the actual Lisp 1.5 manual, where one of the earliest examples should quickly dispel any illusions today about "Lisp's" supposed purity when they show the function 'length implemented with a program block and goto. By only modifying the top-level function define format and substituting ADD1 with 1+, the program works to this day in Common Lisp. For members of the lisp family that don't call themselves lisp, you're not going to be able to make such a trivial transformation, because there's no shared code heritage, just a vaguely shared s-exp-ness to the syntax. And right after that the manual describes the "pseudo-function" 'trace, which to this day is lacking in supposedly modern languages or requires a bunch of IDE ceremony to set up. It's present in CL and behaves the same, though. Continuing to call CL as simply Lisp seems pretty well-deserved.

                                                                                                                  The Lisp social problem then is that people run into members of the vaguely defined lisp family like Scheme (especially with SICP formerly being a common gateway for freshmen or HS students) or Clojure and confuse "a lisp" with "Lisp". They can spread their confusion further by releasing a project/blog like "let's write a lisp interpreter!" that can be understood correctly as "let's make a program that interprets code for a lisp¹" but tends to be misunderstood (sometimes even by the author) as "let's make a program that interprets code for Lisp".

                                                                                                                  Of course I also think this "social problem" is way overstated, especially these days when it's so trivial to dispel the old myths and when the gateways via Clojure or Racket are actually good in their own right and so don't leave the same impressions of "Lisp's a neat toy" that only seeing SICP Scheme could. But if people keep talking about the problem as if it is big, perhaps it will become self-fulfilling, hence my long comment in disagreement. ;)

                                                                                                                  ¹ aka a member of the lisp family based on my vague membership criteria that probably don't even pass Steele's 3-part acceptance test in https://www.dreamsongs.com/Files/HOPL2-Uncut.pdf that requires as its final step (atanh -2) to return a complex number. (Bonus if the correct complex number.)

                                                                                                                • lliamander 5 years ago
                                                                                                                  >including being one of the few dynamic languages with a working concurrency model...

                                                                                                                  Elixir is worth a look. It's a pretty productive little language with a great concurrency model.

                                                                                                                  • 7thaccount 5 years ago
                                                                                                                    When someone says they want to work in Perl6/Raku, they likely have vastly different problems than someone using Erlang/Elixer. There is overlap of course (both general purpose), but I can't imagine using Erlang for scripting, while Raku is first class here.
                                                                                                                    • lliamander 5 years ago
                                                                                                                      I can't imagine scripting in Erlang. Or rather, I've seen it done and it wouldn't be my first choice.

                                                                                                                      Elixir, on the other hand, has many nice features for scripting, such as better string handling, process pipe-lining, and an excellent set of first-class generic data structures (beyond just map and list). It also happens to have Erlang's fantastic concurrency model.

                                                                                                                      • minton 5 years ago
                                                                                                                        I guess it depends on what you're comfortable in? I myself have tons of Elixir scripts that I use to automate much of my life. It's replaced ruby as my go-to for one-off scripts.
                                                                                                                        • cutler 5 years ago
                                                                                                                          Elixir/Erlang isn't a general purpose language. You pointed-out one reason why - scripting. Computation is another area where the language is deficient. I'd go so far as to say Elixir's failure to challenge mainstream languages for mindshare is down to to it occupying a niche - lightweight concurrency and distributed systems.
                                                                                                                          • weff_ 5 years ago
                                                                                                                            I'm trying to understand, what kind of scripting requires first-class concurrency that isn't fulfilled by say Python?
                                                                                                                          • tombert 5 years ago
                                                                                                                            For that matter, Erlang has been around for like almost 30 years and has had multicore support since 2007, and has always been dynamic.
                                                                                                                            • davidw 5 years ago
                                                                                                                              Erlang is great, and I miss working with it, but I'd never want to write much in the way of 'quick scripts' with it. Something like Ruby feels much more productive for that.
                                                                                                                              • lliamander 5 years ago
                                                                                                                                Oh certainly. I've done production work with Erlang, and it's great for building systems. I also love the Prolog syntax (I've also since done some side projects in Prolog for great fun).

                                                                                                                                Why I suggested Elixir is because it has all the strengths of Erlang but is also a better scripting language, and would compete better with Raku on a more equal footing in that respect.

                                                                                                                                • zzzcpan 5 years ago
                                                                                                                                  In fact Elixir and Erlang are the only reasonably known dynamic languages that differentiate on concurrency. The rest either do higher order event loop concurrency, which is ok, but not a differentiator, or do worse, shared memory multithreading (threads, coroutines with synchronous channels, mutexes, etc.)
                                                                                                                              • jolmg 5 years ago
                                                                                                                                > Larry has now agreed with the change and Perl 6 will be renamed to "raku" and Perl 5, which has regular, major releases every year, will now be able to simply be "Perl" and be free to continue on its own way.

                                                                                                                                I hope that doesn't mean that when Perl needs a major number version change again, they'll chose 6. It would be pretty confusing to have 2 Perl 6.

                                                                                                                                • StevePerkins 5 years ago
                                                                                                                                  Perl 5 was released in 1994. At this point, the "5" isn't really a version number anymore. It's just part of the name.

                                                                                                                                  If you did a "major version bump" from here, you'd probably have to bring the "5" along for the ride. Like Java version 2, where you had J2EE version <X> for years.

                                                                                                                                  In reality, there probably never will be another major version bump of Perl 5, in the marketing sense. The minor version number is really the major version number now.

                                                                                                                                  • WorldMaker 5 years ago
                                                                                                                                    Which in turn suggests the Java (and others') solution of dropping the 5 and making the minor version the new major version. Look out for Perl 31.0 soon.
                                                                                                                                    • dottrap 5 years ago
                                                                                                                                      And as another example, Mac OS X (10), which debuted in 2000, has had every subsequent version continued to be named 10.X. Just this week, macOS 10.15 Catalina was released.

                                                                                                                                      Funny that the name Mac OS X went to OS X and then (back) to macOS, but the 10.X name persists.

                                                                                                                                      • erikpukinskis 5 years ago
                                                                                                                                        In communist Russia, minor version always have breaking change
                                                                                                                                      • Grinnz 5 years ago
                                                                                                                                        I can say that at least currently, there is no appetite for Perl attempting to "reclaim" the Perl 6 version in the foreseeable future. It would be a disaster in both community relations and marketing. It will either be Perl 7 or Perl 34+.
                                                                                                                                      • wvenable 5 years ago
                                                                                                                                        A similar sort of situation happened with PHP which is why there is no PHP 6 -- it jumped straight from PHP 5 to 7.
                                                                                                                                        • RussianCow 5 years ago
                                                                                                                                          And same with ECMAScript 3 to 5.
                                                                                                                                        • joshlemer 5 years ago
                                                                                                                                          It's not uncommon to leap frog versions in such cases. PHP went from 5 to 7, for instance.
                                                                                                                                          • diag 5 years ago
                                                                                                                                            But that's because PHP6 was dumped after being in development for a while.
                                                                                                                                            • deaddodo 5 years ago
                                                                                                                                              They didn't "skip" php6.

                                                                                                                                              The primary goal of PHP6 was to implement full unicode support and drop mbstring. However, that took much longer than expected and multiple major features ended up getting backported to 5.3, 5.4 and 5.6; to the point that PHP 7 became the new feature version while PHP6 was worked on. They eventually gave up and PHP7 was released with unicode support built fairly deep, but basic string types and the like still being byte arrays.

                                                                                                                                              PHP7 was PHP6, without the native and full unicode coverage requirement.

                                                                                                                                              • chubot 5 years ago
                                                                                                                                                Yeah there was also no ecmascript 4, it went from es3 to 5 because 4 was abandoned as too complex.
                                                                                                                                                • ether_at_cpan 5 years ago
                                                                                                                                                  For those that can remember back that far, MacOS also jumped from 5 to 7. (7 was the first version that supported running multiple applications at once.. not counting the MultiFinder hack that came before it by a few years.)
                                                                                                                                                • jandrese 5 years ago
                                                                                                                                                  That would be an issue, but I don't think there is an appetite for a new major version of Perl at this point.

                                                                                                                                                  To avoid confusion they would probably break the version convention entirely and name it with the year instead. So instead of Perl6 it would be Perl'19.

                                                                                                                                                  • yesbabyyes 5 years ago
                                                                                                                                                    I think it's likely they will skip the 5, and continue with version 32, or whatever minor they're up to now.
                                                                                                                                                    • mhd 5 years ago
                                                                                                                                                      Ditch the major version. As the current one is 5.30, the next one will be Perl 31, the next stable is Perl 32.
                                                                                                                                                      • sdenton4 5 years ago
                                                                                                                                                        There's even a good mathematical justification for going from 5->32; just say that previously the versioning was in log_2 scale...
                                                                                                                                                      • cjohansson 5 years ago
                                                                                                                                                        Maybe it’s better to find a new name for the next Perl 5 language version. It would simplify internet searches. It should be clearly distinct from Raku though.. Angular is in a similar mess to Perl, very hard to find decent information on web crawlers
                                                                                                                                                        • FillardMillmore 5 years ago
                                                                                                                                                          Well, PHP jumped from 5 to 7 (without there truly ever being a 6) so I think Perl could do the same with no major downside.
                                                                                                                                                          • sigzero 5 years ago
                                                                                                                                                            They'll probably skip to 7.
                                                                                                                                                            • dwaltrip 5 years ago
                                                                                                                                                              That is probably the best solution, but at the same time it is such a hilarious thing.
                                                                                                                                                              • b2gills 5 years ago
                                                                                                                                                                I think it would be a better idea to make the minor number be the major number. So skip to 32.
                                                                                                                                                                • KSS42 5 years ago
                                                                                                                                                                  Why not Perl 10 or Perl X?
                                                                                                                                                                  • rurban 5 years ago
                                                                                                                                                                    no, it's called cperl now. perl5 didn't see not much improvements for the last 20 years, the development happens only in cperl, which is the perl5 successor.
                                                                                                                                                                  • ttkciar 5 years ago
                                                                                                                                                                    Since the language-previously-known-as-Perl6 will be known as Raku, there shouldn't be any conflict with Perl v6
                                                                                                                                                                    • TheCoreh 5 years ago
                                                                                                                                                                      Even if file names/packages don't clash, there's still a conflict when it comes to documentation, articles, blog posts, books, stack overflow questions and other documents that might or might not be updated.
                                                                                                                                                                      • lilSebastian 5 years ago
                                                                                                                                                                        That would only further confusion
                                                                                                                                                                    • 7thaccount 5 years ago
                                                                                                                                                                      Hey Ovid. I'm curious...if P6 had been performant and production worthy enough for your tau-station game, how much easier would the project be than with P5 + Moose? Just curious...I remember you saying years ago that you would've used it if you could've at the time.
                                                                                                                                                                      • Ovid 5 years ago
                                                                                                                                                                        The https://taustation.space/ game runs great on Perl 5, but yes, with a robust Perl 6, many things would have been easier to implement. But by "robust" I don't mean just the language—I also mean the ecosystem.

                                                                                                                                                                        There is no DBIx::Class (or related schema loader) for Perl 6. I don't know how mature the web frameworks are. Or even basic stuff like Excel reader/writers (we use lots of Excel for backend data analysis).

                                                                                                                                                                        On the other hand, most of the async stuff we currently use can be thrown out. With raku's gradual typing, our in-house type libraries can be tossed out. Our local modules for making it easier to write clean procedural and OO code could be thrown out.

                                                                                                                                                                        And the raku code would be far more concise and easy to read. Here's a simple Point object in Moose:

                                                                                                                                                                            package Point {
                                                                                                                                                                                use Moose;
                                                                                                                                                                                use overload '""' => \&Str, fallback => 1;
                                                                                                                                                                                use Moose::Util::TypeConstraints;
                                                                                                                                                                                subtype "PointLimit" => as 'Num'
                                                                                                                                                                                    => where   { $_ >= -10 && $_ <= 10 }
                                                                                                                                                                                    => message { "$_ must be a Num between -10 and 10, inclusive" };
                                                                                                                                                                        
                                                                                                                                                                                has [qw/x y/] => (
                                                                                                                                                                                    is       => 'rw',
                                                                                                                                                                                    isa      => 'PointLimit',
                                                                                                                                                                                    required => 1,
                                                                                                                                                                                );
                                                                                                                                                                        
                                                                                                                                                                                sub Str {
                                                                                                                                                                                    my $self = shift;
                                                                                                                                                                                    return sprintf "[%f,%f]" => $self->x, $self->y;
                                                                                                                                                                                }
                                                                                                                                                                            }
                                                                                                                                                                        
                                                                                                                                                                        
                                                                                                                                                                        raku:

                                                                                                                                                                            class Point {
                                                                                                                                                                                subset PointLimit of Rat where -10.0 .. 10.0;
                                                                                                                                                                                has PointLimit $.x is rw is required;
                                                                                                                                                                                has PointLimit $.y is rw is required;
                                                                                                                                                                            }
                                                                                                                                                                        
                                                                                                                                                                        And for those who don't "grok" the above, here it is in Python 3, just so you can see how clean raku's OO syntax is:

                                                                                                                                                                            class PointLimit:
                                                                                                                                                                                def __init__(self, name):
                                                                                                                                                                                    self.name =  name
                                                                                                                                                                                def __get__(self, point, owner):
                                                                                                                                                                                    return point.__dict__.get(self.name)
                                                                                                                                                                                def __set__(self, point, value):
                                                                                                                                                                                    if not -10 < value < 10:
                                                                                                                                                                                        raise ValueError('Value %d is out of range' % value)
                                                                                                                                                                                    point.__dict__[self.name] = value
                                                                                                                                                                        
                                                                                                                                                                            class Point:
                                                                                                                                                                                x = PointLimit('x');
                                                                                                                                                                                y = PointLimit('y');
                                                                                                                                                                        
                                                                                                                                                                                def __init__(self, x, y):
                                                                                                                                                                                    self.x = x
                                                                                                                                                                                    self.y = y
                                                                                                                                                                        
                                                                                                                                                                                def __str__(self):
                                                                                                                                                                                    return "[%f,%f]" % (self.x, self.y)
                                                                                                                                                                        • snapdangle 5 years ago
                                                                                                                                                                          It's worth checking out the Red ORM, great progress is being made and it feels very Perl 6 native in terms of its semantics.
                                                                                                                                                                          • 7thaccount 5 years ago
                                                                                                                                                                            Thanks for the detailed reply Ovid!

                                                                                                                                                                            I'm only a novice in Perl5 land (Python is usually my go-to along with Linux CLI tools and Powershell on Windows, or honestly a lot of SQL these days but sometimes I reach for Perl5 when it has something I need) but I always keep an eye out for different and interesting technologies and Perl6 is definitely on my radar to check in on every now and then. As you've pointed out, it seems to have a lot of power that could reduce a lot of the one-off scripts I write. I do a lot of basic text file manipulation and any feature that can save me time is valuable even if there is more stuff to learn. To me, Perl6 appears to allow for writing beautifully succinct and readable OO, Imperative, or FP like code. However, if I just need to wrangle some data (throwaway code) it looks like it can be for text what APL is for arrays (a powerful Swiss army knife).

                                                                                                                                                                            On another note, while I have you here, do you ever plan on putting out another Perl book, but one on Perl 6 (I know there are several already published).

                                                                                                                                                                        • dimitar 5 years ago
                                                                                                                                                                          Clojure has a focus on concurrency, is functional and it embraces JS and Java, the dominant platforms.
                                                                                                                                                                          • bborud 5 years ago
                                                                                                                                                                            > This has been a huge deal for the Perl community.

                                                                                                                                                                            I wasn't aware that there was one beyond the poor sods charged with maintaining my youthful sins.

                                                                                                                                                                            • Ovid 5 years ago
                                                                                                                                                                              I get hired all the time to fix legacy systems in Perl or to build new systems in Perl.

                                                                                                                                                                              We're still out there, but it's not "cool" to talk about.

                                                                                                                                                                              • bborud 5 years ago
                                                                                                                                                                                I hope you are not working on my old sins. But if you are, can I watch? :-)
                                                                                                                                                                            • Causality1 5 years ago
                                                                                                                                                                              Rather reminds me of what happened with Palm OS 5 and Palm OS 6. Both ended up adopting separate names but because OS 6 wasn't backwards compatible the sheer weight of legacy software kept it from ever catching on.
                                                                                                                                                                              • rolltiide 5 years ago
                                                                                                                                                                                If only the Python community could learn something here
                                                                                                                                                                              • scythe 5 years ago
                                                                                                                                                                                I kinda wish something like this would happen with LuaJIT, so it can get out of Lua’s shadow.

                                                                                                                                                                                Lua has breaking changes all the time, which makes sense for its original purpose — embedding — where you don’t need to follow updates. As such the version supported varies among different environments. But LuaJIT has an ecosystem that they try not to break. It’s more of a “conventional” scripting language because of that. It also has an FFI that isn’t in plain Lua.

                                                                                                                                                                                • andreygrehov 5 years ago
                                                                                                                                                                                  If anyone is interested in working with the language, AFAIK, DuckDuckGo's backend is primarily written in Perl.
                                                                                                                                                                                  • ricardobeat 5 years ago
                                                                                                                                                                                    Perl 6 / Raku introduces so many new constructs that is almost an entirely new language.
                                                                                                                                                                                  • bbanyc 5 years ago
                                                                                                                                                                                    I find Perl 5 best for the kinds of fire-and-forget text processing scripts that are a bit too complicated for awk but not involved enough to bring in a "real" language. It's a double-edged sword - in a throwaway script it's awesome to not have to bother converting between the number 12 and the string "12", both numeric and string operators will work on them the same way. In a large project that kind of thing is just going to cause a bunch of untraceable bugs due to unidentified invisible behavior. Or you need to resort to weird hackarounds like "0 but true". Also: $_ is like that, only more so.

                                                                                                                                                                                    CPAN invented the software repository, and I'm glad it was there so PyPI/Gems/NPM/etc. could learn from its mistakes.

                                                                                                                                                                                    Every few years I tried an alpha of Perl 6, but it was always too slow and unstable to get anything real done, and it was always a totally different implementation from the previous one I'd tried. Maybe this name change shows they're getting serious now.

                                                                                                                                                                                    • Grinnz 5 years ago
                                                                                                                                                                                      I very much prefer "typeless data with typed operators" over Javascript's "typeless data with typeless operators" or basically any language that was forced to add ===.
                                                                                                                                                                                      • regularfry 5 years ago
                                                                                                                                                                                        Didn't CTAN predate CPAN?
                                                                                                                                                                                        • bbanyc 5 years ago
                                                                                                                                                                                          It did, but CTAN was just a network of FTP mirrors. CPAN was that initially too, but quickly got supporting software to automatically download/update packages and resolve dependencies, which AFAIK nobody else did at the time. Even Linux package managers didn't get that until a couple years later.
                                                                                                                                                                                          • 5 years ago
                                                                                                                                                                                          • 5 years ago
                                                                                                                                                                                          • rhabarba 5 years ago
                                                                                                                                                                                            May Perl 5 live forever. Amen.
                                                                                                                                                                                            • codesections 5 years ago
                                                                                                                                                                                              One thing that fascinates me about Raku/Perl6 is how hard it leans into object-oriented programming at a moment when so many other new languages seem to be trending in a distinctly functional direction.
                                                                                                                                                                                              • ram_rar 5 years ago
                                                                                                                                                                                                Can someone explain to me, for what kinda of new projects would they use Perl/Raku in 2019 at all?
                                                                                                                                                                                                • proverbialbunny 5 years ago
                                                                                                                                                                                                  Raku excels at slicing and dicing input data. So, if you need to read from a database or a csv or anything similar, Raku is amazing at taking that data and converting it into the format to do processing on.

                                                                                                                                                                                                  Not only that, but when Perl 5 was at the end of its life, comparing its libraries to both Python and Ruby, you'd often find the best library was for Perl.

                                                                                                                                                                                                  Raku should be far faster than Python and Ruby and may in the future have better libraries with excellent concurrency support, making it a good choice to do processing over the data, not just converting it to the format you need. It has an easy interface with C and C++, so you can import libraries from there too, if you need more speed.

                                                                                                                                                                                                  Before Python came to fame Perl was primarily used by two groups: 1) sys admins who needed bash style 1 liners, but in a cleaner language (This is where the dirty code stereotype comes from.) and 2) Web devs. Much of the early pre PHP internet and even post PHP internet was written in Perl. When Perl on hiatus the web world turned into this mess of frameworks like it is today. It used to be a more unified world.

                                                                                                                                                                                                  And then there is the rare 3rd group. I worked on earlier ML projects in Perl before Python was a thing. I enjoyed Perl more than Python and so did the people around me. Moving to Python / R was somewhat painful knowing it could have been better. I hope Raku takes up this torch and is good as it appears to be.

                                                                                                                                                                                                  • Grinnz 5 years ago
                                                                                                                                                                                                    Perl 5 has never been at the end of its life (though it was intended to be 15 years ago, things changed), this is one part of what this rename is meant to clarify. It still has a major release each year and modules are released to CPAN constantly: https://metacpan.org/recent
                                                                                                                                                                                                  • gillesjacobs 5 years ago
                                                                                                                                                                                                    A lot of my colleagues in NLP and text processing still prefer to write in Perl. Granted they are mostly the old guard but it is prevalent in academic language technology research.
                                                                                                                                                                                                    • make3 5 years ago
                                                                                                                                                                                                      .. in the old guard of language technology research I guess, because in my NLP lab, no one knows the first thing about Perl (everything is done in Python)
                                                                                                                                                                                                      • proverbialbunny 5 years ago
                                                                                                                                                                                                        More than that. I wrote my first machine learning project in Perl.

                                                                                                                                                                                                        Perl 5 is better than Python in many ways, but worse in other ways. Raku seems to have none of the downsides Perl 5 had, but all of the upsides. Raku looks like it could be a valid replacement for Python in the ML space.

                                                                                                                                                                                                        Also, back then, Perl 5 had better libraries than Python. Though, that was quite a while ago.

                                                                                                                                                                                                        • ttkciar 5 years ago
                                                                                                                                                                                                          We don't have an "NLP lab" here, but when my project required NLP solutions, perl delivered quite nicely.
                                                                                                                                                                                                        • julienfr112 5 years ago
                                                                                                                                                                                                          Spacy, the new kid on the block, is in python...
                                                                                                                                                                                                          • gillesjacobs 5 years ago
                                                                                                                                                                                                            There are many more tasks in NLP than what SpaCy offers even though it is a nice API. I use SpaCy near daily, but academic research goes beyond NER, dep parsing and PoS tagging.

                                                                                                                                                                                                            For instance, [1] is a tool for text-to-pictograph translation system I worked on. The core engine is entirely written in Perl 5.

                                                                                                                                                                                                            [1] http://picto.ccl.kuleuven.be/index_engspa.php

                                                                                                                                                                                                        • pugworthy 5 years ago
                                                                                                                                                                                                          Years ago I worked with Rogue Wave Software, which sold C++ libraries. There was a customer who wanted to sort a huge dataset, and RW's sort code took something like 15 minutes to sort. Perl took 15 seconds. I don't know if it was ever figured out why, but it was (is) just one of those signs of how Perl still can be amazing at some things.

                                                                                                                                                                                                          Still have my O'Reilly 1st Annual Perl Conference bag around. Good times.

                                                                                                                                                                                                          • Grinnz 5 years ago
                                                                                                                                                                                                            A particularly poor algorithm choice for sorting can be catastrophic.
                                                                                                                                                                                                          • sacomo 5 years ago
                                                                                                                                                                                                            we are using it internally for a lot of management apps. we just deployed a new authorization frontend for graphite / carbon using cro that is handling several million daily requests (per small EC2 instance).

                                                                                                                                                                                                            raku is a great language to work with for us. it is feature rich, has good abstractions, and developer friendly. if you like the syntax then give it a try.

                                                                                                                                                                                                            • liveoneggs 5 years ago
                                                                                                                                                                                                              a project that wants to use an interesting language with a lot of depth, cool features, great c interfacing, and easy concurrency?
                                                                                                                                                                                                              • 7thaccount 5 years ago
                                                                                                                                                                                                                Yes, and also one where performance isn't a huge requirement (it's improving).
                                                                                                                                                                                                              • joombaga 5 years ago
                                                                                                                                                                                                                Perl is ubiquitous. I think it's required for POSIX compatibility but I'm having trouble locating a source for that.
                                                                                                                                                                                                                • Tepix 5 years ago
                                                                                                                                                                                                                  Something that can take advantage of the new and improved regular expressions
                                                                                                                                                                                                                  • riffraff 5 years ago
                                                                                                                                                                                                                    I like raku's grammars, and I appreciate the idea of having them as first class, in a way other languages don't have them.

                                                                                                                                                                                                                    But you have parser libraries that work very well in all major languages, and I'm not sure being integrated in the language makes Raju more valid for any project.

                                                                                                                                                                                                                    What it does, imo, is offer a special way to solve some stuff by already being there. But it's like saying someone would choose python for a project because it has a built-in set data type.

                                                                                                                                                                                                                  • 0xdeadbeefbabe 5 years ago
                                                                                                                                                                                                                    Guestbook cgis
                                                                                                                                                                                                                    • lilSebastian 5 years ago
                                                                                                                                                                                                                      1993 is on the phone, they want their jokes back
                                                                                                                                                                                                                  • smacktoward 5 years ago
                                                                                                                                                                                                                    Fifteen years too late. But I suppose better late than never.
                                                                                                                                                                                                                    • rubinelli 5 years ago
                                                                                                                                                                                                                      Had they done it fifteen years earlier, I think Perl could have been the language to learn for Data Science. It still is a fantastic language to slice, clean up, and extract information from text files, and it was already very widely used in bioinformatics.
                                                                                                                                                                                                                      • 7thaccount 5 years ago
                                                                                                                                                                                                                        I don't think the name change was the problem here, rather it wasn't complete until recently.
                                                                                                                                                                                                                        • rz2k 5 years ago
                                                                                                                                                                                                                          "a fantastic language to slice, clean up, and extract information from text files, and it was already very widely used in bioinformatics" is a description of Perl 5, not Perl 6.

                                                                                                                                                                                                                          Even if Perl 6 is completed, I don't think it is a practical workhorse for many real world situations.

                                                                                                                                                                                                                          To me being able to create grammars in Perl 6 to parse text data sounds really compelling. However, every time I have played around with them, Perl 6 has been so slow, that I have reverted to using regular expressions in another language.

                                                                                                                                                                                                                          • raldi 5 years ago
                                                                                                                                                                                                                            • lilSebastian 5 years ago
                                                                                                                                                                                                                              See the section about waiting for perl 6 before doing more work...

                                                                                                                                                                                                                              http://blogs.perl.org/users/ovid/2019/08/is-perl-6-being-ren...

                                                                                                                                                                                                                              • kbenson 5 years ago
                                                                                                                                                                                                                                I'm pretty sure GP is referring to Perl 5, not the newly renamed Raku. Perl 5 had a lot of use in bioinformatics, and to my knowledge lasted quite a while after the general Perl exodus, until eventually being replaced by biopython.

                                                                                                                                                                                                                                If the confusion regarding Perl 5/6 never happened, it might have retained that popularity in that domain.

                                                                                                                                                                                                                              • 5 years ago
                                                                                                                                                                                                                                • AlexCoventry 5 years ago
                                                                                                                                                                                                                                  Perl was built on a shaky foundation from the start. It was inevitable that it would collapse under its own weight.
                                                                                                                                                                                                                                  • DonHopkins 5 years ago
                                                                                                                                                                                                                                    Yeah, with Perl 6 out of the way, they would have had 15 years to clean up the syntax of Perl 5 so it was no longer indistinguishable from line noise.
                                                                                                                                                                                                                                    • jandrese 5 years ago
                                                                                                                                                                                                                                      IMHO Perl's reputation for noisy code is mostly the result of code golf examples online and denoting variables with an explicit type character.

                                                                                                                                                                                                                                      A sanely written Perl program is nowhere near line noise. Compare to supposedly beautiful languages like Rust and the ratio of punctuation characters to alphanumeric is pretty much on par.

                                                                                                                                                                                                                                • ksec 5 years ago
                                                                                                                                                                                                                                  The Author point to [1] for reason for Raku instead of Camelia.

                                                                                                                                                                                                                                  One thing that struck me,

                                                                                                                                                                                                                                  12. Both raku.com and raku.org are currently available.

                                                                                                                                                                                                                                  I was surprised that a 4 letter .com or .org is still available. So I looked it up and turns out to be not true.

                                                                                                                                                                                                                                  And it was interesting half of the discussion had domain name availability as factor.

                                                                                                                                                                                                                                  [1] https://github.com/perl6/problem-solving/issues/81#issuecomm...

                                                                                                                                                                                                                                  • Grinnz 5 years ago
                                                                                                                                                                                                                                    raku.org is no longer available because it is controlled by the Raku project.
                                                                                                                                                                                                                                  • wodny 5 years ago
                                                                                                                                                                                                                                    It will have quite interesting implications, especially for former Perl 5 syntax enthusiasts. One could say in Polish they "code in cancer" ("programuje w raku").
                                                                                                                                                                                                                                    • thanatropism 5 years ago
                                                                                                                                                                                                                                      Not "z raku"?
                                                                                                                                                                                                                                      • wodny 5 years ago
                                                                                                                                                                                                                                        No. "Z raku" would mean that "raku" accompanies you and the play on words would be gone because it would be either "programuje z raku" ("one is accompanied by raku the programming language") or "programuje z rakiem" ("codes having/with cancer").
                                                                                                                                                                                                                                        • 5 years ago
                                                                                                                                                                                                                                      • sys_64738 5 years ago
                                                                                                                                                                                                                                        What utility does Perl provide in a world dominated by python?
                                                                                                                                                                                                                                        • ttkciar 5 years ago
                                                                                                                                                                                                                                          Its runtime is quite a bit faster and enjoys a smaller memory footprint. It is also more amenable to "bash on steroids" scripting, and has a quarter-million canned solutions in CPAN.

                                                                                                                                                                                                                                          PyPi has caught up with CPAN in terms of sheer number of packages, but there are still a lot of differences in what those packages cover. You might find solutions in CPAN without a counterpart in PyPi.

                                                                                                                                                                                                                                          More narrowly, every time I deal with databases in python, I find myself missing perl's DBI, which provides the same API for all databases with a corresponding DBD. Python should get a similar universal database interface someday.

                                                                                                                                                                                                                                          • wumpus 5 years ago
                                                                                                                                                                                                                                            One thing perl provides is a few examples of how to handle utf-8 better than Python does.

                                                                                                                                                                                                                                            To put this another way, my 10-year-old perl-based web crawler did not have a problem crawling websites with umlauts in the hostname. Python is fixing supporting that new 2008 standard next year.

                                                                                                                                                                                                                                            • eddyg 5 years ago
                                                                                                                                                                                                                                              Plenty.

                                                                                                                                                                                                                                              Read https://www.evanmiller.org/why-im-learning-perl-6.html or the follow-up https://www.evanmiller.org/a-review-of-perl-6.html

                                                                                                                                                                                                                                              Or, Why Perl 6 is the "Game of Thrones" of programming languages: https://techbeacon.com/app-dev-testing/why-perl-6-game-thron...

                                                                                                                                                                                                                                              Lots more where those came from...

                                                                                                                                                                                                                                              • emptybits 5 years ago
                                                                                                                                                                                                                                                I love Python and I don't see the subset of the world dominated by Python changing to Raku any time soon. But there are some things that made me smile and nod and want to read more about the language. Two, off the top of my head.

                                                                                                                                                                                                                                                1. Raku treats math in a manner that wouldn't surprise a mathematician. Or grade school student, for that matter. Witness:

                                                                                                                                                                                                                                                    $ python3 -c 'print(0.3 == 0.1 + 0.2)'
                                                                                                                                                                                                                                                    False
                                                                                                                                                                                                                                                    $ ruby -e 'puts 0.3 == 0.1 + 0.2'
                                                                                                                                                                                                                                                    false
                                                                                                                                                                                                                                                    $ perl6 -e 'say 0.3 == 0.1 + 0.2'
                                                                                                                                                                                                                                                    True
                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                (Raku prefers rational to floating point math when possible, but of course you can force floating point if you prefer that behaviour.)

                                                                                                                                                                                                                                                2. Concurrency is a language goal in Raku and I think that's notable, compared to Python. Parallelism, concurrency, and asynchrony including multi-core support.[1]

                                                                                                                                                                                                                                                [1] https://docs.perl6.org/language/concurrency

                                                                                                                                                                                                                                                • Grinnz 5 years ago
                                                                                                                                                                                                                                                  As a Perl programmer, this is basically a post I might have written (aside from knowing it's not dominant anymore :) One more really cool aspect is the first class Unicode support, which Perl can do but you have to work at it.
                                                                                                                                                                                                                                                • mhd 5 years ago
                                                                                                                                                                                                                                                  The inverse could've been asked about Python ages ago.
                                                                                                                                                                                                                                                  • pvaldes 5 years ago
                                                                                                                                                                                                                                                    Maybe creativity. Perl world has always been proud to be able to solve the same thing in twenty different, often arcane, ways. Sometimes this is a good trait, other not so.

                                                                                                                                                                                                                                                    And Perl programs do not spontaneously decompose when copypasted also.

                                                                                                                                                                                                                                                    And CPAN is still a very profitable gold mine to explore.

                                                                                                                                                                                                                                                    • ncmncm 5 years ago
                                                                                                                                                                                                                                                      Legit question.

                                                                                                                                                                                                                                                      Movable Type is about the only blog framework not written in PHP. If you thought Perl was a bad language, PHP is way, way worse. And Movable Type is also the only one that can use Postgres for storage.

                                                                                                                                                                                                                                                      I could not find any blog engine in Python.

                                                                                                                                                                                                                                                      • smacktoward 5 years ago
                                                                                                                                                                                                                                                        There are static site generators written in Python you could use to publish a blog, like Pelican (https://blog.getpelican.com/) and Lektor (https://www.getlektor.com/). But yeah, if you want software that works like WordPress and generates pages dynamically on the fly, I'm not sure there's any good Python-based alternatives.

                                                                                                                                                                                                                                                        > If you thought Perl was a bad language, PHP is way, way worse

                                                                                                                                                                                                                                                        In fairness to PHP, it's a lot better today than it used to be. (Though modern PHP would probably strike a Pythonista as too Java-ish.) And WordPress has had tons of engineering resources poured into it for a decade-plus now, whereas Movable Type has been maintained on a relative shoestring due to its fall from popularity.

                                                                                                                                                                                                                                                        • ncmncm 5 years ago
                                                                                                                                                                                                                                                          It is hard to imagine why anyone would want to generate blog pages on the fly, but somehow it is what everyone does.
                                                                                                                                                                                                                                                        • matthewowen 5 years ago
                                                                                                                                                                                                                                                      • gpvos 5 years ago
                                                                                                                                                                                                                                                        Larry's actual approval (although he has basically said before that the community doesn't need his approval anymore) is here: https://github.com/perl6/problem-solving/pull/89#pullrequest...
                                                                                                                                                                                                                                                        • halis 5 years ago
                                                                                                                                                                                                                                                          • x62Bh7948f 5 years ago
                                                                                                                                                                                                                                                            I used a workflow automation system at my previous gig that used java heavily on the backend. Rakuraku Workflow was the name. I hated it. The name, that in japanese means something like “easy easy” (楽々) didn’t help much. It was a mess.
                                                                                                                                                                                                                                                            • mberning 5 years ago
                                                                                                                                                                                                                                                              I wish them the best of luck, but in my experience rebranding a seriously off track project is often the treatment of last resort. It’s the vancomycin of struggling projects.
                                                                                                                                                                                                                                                              • kizer 5 years ago
                                                                                                                                                                                                                                                                Is that from the Bible?
                                                                                                                                                                                                                                                                • giancarlostoro 5 years ago
                                                                                                                                                                                                                                                                  Does not sound like anything from the Bible I have ever read. Theres other commentary on this HN post about the many meanings of the name though.
                                                                                                                                                                                                                                                                  • Grinnz 5 years ago
                                                                                                                                                                                                                                                                    I think the comment was asking about the quote in the linked comment, not the name (which was chosen as an alias many months ago).
                                                                                                                                                                                                                                                                    • vgetr 5 years ago
                                                                                                                                                                                                                                                                      It is - the book of Matthew, specifically.
                                                                                                                                                                                                                                                                      • giancarlostoro 5 years ago
                                                                                                                                                                                                                                                                        You're thinking of "Raca" from Matthew, it wouldn't make sense for him to call it based on that verse though since it's not a pleasant word. Jesus specifically says not to call your brother Raca. Why would he call his language that...
                                                                                                                                                                                                                                                                    • jdporter 5 years ago
                                                                                                                                                                                                                                                                      Of course it's from the Bible -- as a quick google would have told you. It's Mark 2:21-22.
                                                                                                                                                                                                                                                                      • giancarlostoro 5 years ago
                                                                                                                                                                                                                                                                        That's "rhakos" and doesn't explain it well since this comes from "Rakudo", but Rhakos means torn off cloth according to Strong's Greek concordance. I guess it fits though.
                                                                                                                                                                                                                                                                      • kizer 5 years ago
                                                                                                                                                                                                                                                                        I know he’s a man of faith as they say. No judgement of any kind intended.
                                                                                                                                                                                                                                                                        • 5 years ago
                                                                                                                                                                                                                                                                      • lacampbell 5 years ago
                                                                                                                                                                                                                                                                        Good move. The name 'Perl' has connotations (good or bad depending on who you ask), but this language always seemed like a different kettle of fish.

                                                                                                                                                                                                                                                                        Names matter.

                                                                                                                                                                                                                                                                        • blondin 5 years ago
                                                                                                                                                                                                                                                                          so, raku is shortened for rakudo the perl compiler. rakudo itself might be japanese but i can't confirm.

                                                                                                                                                                                                                                                                          google, in their infinite wisdom, doesn't want to translate the word because they think i am typing it wrong and they know exactly what i meant to type... but anyways, i think it has to do with paradise or heaven, but i could be wrong.

                                                                                                                                                                                                                                                                          • opens3 5 years ago
                                                                                                                                                                                                                                                                            Hallelujah! Great decision :) it will give Raju a chance to be viewed without the "line noise" lens of Perl 5.
                                                                                                                                                                                                                                                                            • DonHopkins 5 years ago
                                                                                                                                                                                                                                                                              I'm disappointed they didn't take my suggestion to rename Perl 6 to "$#_@;\>&%}`[*~!^)".
                                                                                                                                                                                                                                                                          • janeroe 5 years ago
                                                                                                                                                                                                                                                                            In Russian "raku" is a genitive of cancer / a derogatory term used for noob users.
                                                                                                                                                                                                                                                                            • overcast 5 years ago
                                                                                                                                                                                                                                                                              Can someone give the rest of us some context on this?
                                                                                                                                                                                                                                                                              • bifrost 5 years ago
                                                                                                                                                                                                                                                                                Perl5 -> Perl6 has been highly contentious.

                                                                                                                                                                                                                                                                                Perl6 is basically a different language much to the chagrin of many Perl users. A lot of Perl users are entrenched in Perl5.

                                                                                                                                                                                                                                                                                FWIW: I'm unclear why people continue to use Perl at all, I moved on in 2011.

                                                                                                                                                                                                                                                                                • folkhack 5 years ago
                                                                                                                                                                                                                                                                                  In the same boat on the "why haven't people moved on"... Perl use to be ubiquitous but over time it's really gone to the wayside vs. Python tooling for more complex stuff, and back to basic BASH for the simple scripting needs.

                                                                                                                                                                                                                                                                                  Every time Perl comes up in a professional environment for me I'm reluctant to say I'm capable, because it's always a hacked-together mess from an engineer who's likely no longer with the company. (obviously this is VERY anecdotal to my career)

                                                                                                                                                                                                                                                                                  I dropped Perl from my resume about a decade ago because I just frankly don't want to work with it. The language is terse, and I don't think anyone who's starting off these days would be spending their time well by learning it. Make your own opinions, but mine is/has always been "ewww."

                                                                                                                                                                                                                                                                                  • goatinaboat 5 years ago
                                                                                                                                                                                                                                                                                    It’s the Perl culture, to do even simple things in the weirdest way possible and everyone will call you a wizard. Whereas the Python community praises complex ideas expressed as simple code and frowns on tricks. That’s why all but the the most obsessive have moved on. And from what I’ve seen Perl 6 takes it to the next level.
                                                                                                                                                                                                                                                                                    • Touche 5 years ago
                                                                                                                                                                                                                                                                                      > it's always a hacked-together mess from an engineer who's likely no longer with the company. (obviously this is VERY anecdotal to my career)

                                                                                                                                                                                                                                                                                      That's what programming is.

                                                                                                                                                                                                                                                                                      • kazinator 5 years ago
                                                                                                                                                                                                                                                                                        > it's always a hacked-together mess from an engineer who's likely no longer with the company.

                                                                                                                                                                                                                                                                                        Oh man, in 1996 I was at Nortel. Some Ms. C. in Computer Science (no longer with the company) left behind Perl cruft whose indentation levels didn't even match up:

                                                                                                                                                                                                                                                                                           whatever
                                                                                                                                                                                                                                                                                           { 
                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                          }
                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                        type of thing. He didn't know how to operate a programmer's text editor.
                                                                                                                                                                                                                                                                                        • dana321 5 years ago
                                                                                                                                                                                                                                                                                          I would rather deal with that than a project with millions of classes which are mostly empty full of useless comments that tell you nothing about how the project is put together.
                                                                                                                                                                                                                                                                                          • bifrost 5 years ago
                                                                                                                                                                                                                                                                                            Heh yeah, totally.

                                                                                                                                                                                                                                                                                            The only Perl I use these days is oooooooold software (MRTG) I guess with the exception of Spam Assassin and RT...

                                                                                                                                                                                                                                                                                            • overcast 5 years ago
                                                                                                                                                                                                                                                                                              Definitely not anecdotal, that's the story from EVERY company.
                                                                                                                                                                                                                                                                                              • lilSebastian 5 years ago
                                                                                                                                                                                                                                                                                                > The language is terse

                                                                                                                                                                                                                                                                                                Only if you chose to write perl code in this way. The same could be said for many languages

                                                                                                                                                                                                                                                                                                • ether_at_cpan 5 years ago
                                                                                                                                                                                                                                                                                                  > I dropped Perl from my resume about a decade ago because I just frankly don't want to work with it.

                                                                                                                                                                                                                                                                                                  That's exactly why I've never mentioned Java on my resume (or in earlier times, Visual Basic) =D

                                                                                                                                                                                                                                                                                                • ether_at_cpan 5 years ago
                                                                                                                                                                                                                                                                                                  > I'm unclear why people continue to use Perl at all

                                                                                                                                                                                                                                                                                                  Because there's a huge amount of applications and websites still built in it, and it's still a great language so new projects are written in it all the time.

                                                                                                                                                                                                                                                                                                  source: my very prosperous career, which has been almost entirely in Perl for the last 15 years

                                                                                                                                                                                                                                                                                                  • notyourday 5 years ago
                                                                                                                                                                                                                                                                                                    > FWIW: I'm unclear why people continue to use Perl at all, I moved on in 2011.

                                                                                                                                                                                                                                                                                                    Because it works. Scripts/software that works does not experience bit rot. As long as it works, people will continue to use it.

                                                                                                                                                                                                                                                                                                    Edit: OK, fine. It seems the downvoters are convinced that the code does in fact experience bit rot, and spoils with time. Probably like fish.

                                                                                                                                                                                                                                                                                                    • curryst 5 years ago
                                                                                                                                                                                                                                                                                                      I would argue that becoming "legacy" is akin to bit rot. Sure, it still runs, but everyone that knew how it worked has left the company, and it's written in a language that is no longer in vogue and will require specifically hiring people with that skill to maintain.

                                                                                                                                                                                                                                                                                                      As a counterpoint, I think we can both agree that writing production software in one of the toy languages that pops up on HN frontpage every day is a bad idea. Writing in a language that is old enough that it has become niche has many of the same issues. It doesn't really matter whether the software is poorly understood because the language is new enough to be niche or old enough to be niche; the outcome is the same.

                                                                                                                                                                                                                                                                                                      • bifrost 5 years ago
                                                                                                                                                                                                                                                                                                        Sure but there's a reason that development has moved off of Perl.
                                                                                                                                                                                                                                                                                                        • lonelappde 5 years ago
                                                                                                                                                                                                                                                                                                          The environment changes, and old programs need to update to keep up with new data formats and remote services and security threats.
                                                                                                                                                                                                                                                                                                        • yellowapple 5 years ago
                                                                                                                                                                                                                                                                                                          I'm all about using the right tool for the job. Sometimes Perl is that tool, and thus sometimes I'll still use Perl.
                                                                                                                                                                                                                                                                                                          • folkhack 5 years ago
                                                                                                                                                                                                                                                                                                            Genuinely curious - and not trying to be a jerk... but where do you find Perl fits well? I can only imagine needing it if I'm stuck on a legacy OS/strictly governed environment where it's the only option I have. (ie: governmental work etc.)
                                                                                                                                                                                                                                                                                                          • pvaldes 5 years ago
                                                                                                                                                                                                                                                                                                            > I'm unclear why people continue to use Perl at all

                                                                                                                                                                                                                                                                                                            It does the job

                                                                                                                                                                                                                                                                                                            • rafaelvasco 5 years ago
                                                                                                                                                                                                                                                                                                              In several instances it's a matter of comfort zone, one of the biggest enemies of positive progress;
                                                                                                                                                                                                                                                                                                              • lilSebastian 5 years ago
                                                                                                                                                                                                                                                                                                                > FWIW: I'm unclear why people continue to use Perl at all

                                                                                                                                                                                                                                                                                                                Great language, large library on cpan, great eco system, people enjoy using it, they have a large code base that's run fine for decades. Choose 1 or more.

                                                                                                                                                                                                                                                                                                                > I moved on in 2011

                                                                                                                                                                                                                                                                                                                You're right, it's all about you and what you do...

                                                                                                                                                                                                                                                                                                                • dang 5 years ago
                                                                                                                                                                                                                                                                                                                  Hi, would you mind reviewing the site guidelines? I'm afraid your comments have already been breaking them quite a bit, and we ban accounts that do that.

                                                                                                                                                                                                                                                                                                                  The idea here is to post thoughtful and substantive comments, not aggressive ones, and to avoid the flamewar style, which degrades discussion quality and provokes worse from others.

                                                                                                                                                                                                                                                                                                                  https://news.ycombinator.com/newsguidelines.html

                                                                                                                                                                                                                                                                                                                  • DonHopkins 5 years ago
                                                                                                                                                                                                                                                                                                                    No, it's all about evangelizing and recruiting as many other people as possible to go down with the sinking ship you've committed yourself to.

                                                                                                                                                                                                                                                                                                                    The Evangelism Hole: Getting People Back to Perl

                                                                                                                                                                                                                                                                                                                    http://act.yapc.eu/lpw2014/talk/5758

                                                                                                                                                                                                                                                                                                                • lilSebastian 5 years ago
                                                                                                                                                                                                                                                                                                                  Not complete but enough to get the context

                                                                                                                                                                                                                                                                                                                  http://blogs.perl.org/users/ovid/2019/08/is-perl-6-being-ren...

                                                                                                                                                                                                                                                                                                                • 5 years ago
                                                                                                                                                                                                                                                                                                                  • eruci 5 years ago
                                                                                                                                                                                                                                                                                                                    A long overdue marketing move.
                                                                                                                                                                                                                                                                                                                    • guelo 5 years ago
                                                                                                                                                                                                                                                                                                                      If raku failed to catch on whilst it was named Perl it has even less chance to catch on now.
                                                                                                                                                                                                                                                                                                                      • dcompton13 5 years ago
                                                                                                                                                                                                                                                                                                                        raku is a type of pottery firing, also from Japan.
                                                                                                                                                                                                                                                                                                                        • davidw 5 years ago
                                                                                                                                                                                                                                                                                                                          It would be cool if Les Claypool played Larry Wall in the movie.
                                                                                                                                                                                                                                                                                                                          • 7thaccount 5 years ago
                                                                                                                                                                                                                                                                                                                            Will Zoffix return?
                                                                                                                                                                                                                                                                                                                            • 7thaccount 5 years ago
                                                                                                                                                                                                                                                                                                                              Not sure how to edit, but for those who don't understand this comment, Zoffix was a key Perl6 contributor who recently left because the community and Larry Wall wouldn't change the name to something else like "Raku" among other things I guess. Now that they have made this change, I'm curious if he'd ever come back and start running the test suites again.
                                                                                                                                                                                                                                                                                                                            • thetwentyone 5 years ago
                                                                                                                                                                                                                                                                                                                              Julia has a really great threading model coming in v1.3, which is likely to be released this month: https://julialang.org/blog/2019/07/multithreading

                                                                                                                                                                                                                                                                                                                              It already supports a variety of parallel techniques but it's about to get easier and safer (e.g. safe I/O).

                                                                                                                                                                                                                                                                                                                              • SQueeeeeL 5 years ago
                                                                                                                                                                                                                                                                                                                                Is Julia getting more stable? I remember that was the big issue a few years ago, especially since it calls so many weird CUDA apis.
                                                                                                                                                                                                                                                                                                                                • chrispeel 5 years ago
                                                                                                                                                                                                                                                                                                                                  Julia itself is stable. Julia allows writing libraries (packages) that are as performant as built-in libraries; in some cases it's hard to remember that these external packages are ... external and sometimes not as stable as the core language and standard libraries.
                                                                                                                                                                                                                                                                                                                                  • ChrisRackauckas 5 years ago
                                                                                                                                                                                                                                                                                                                                    There is no CUDA API in the standard language. The tools for automatically generating CUDA code from Julia code is the CUDAnative.jl package, which at this point is pretty stable and has fairly widespread use.
                                                                                                                                                                                                                                                                                                                                    • vanderZwan 5 years ago
                                                                                                                                                                                                                                                                                                                                      Well, that's what reaching 1.0 was supposed to represent, but I don't (get to) use it (for the kind of work I do) so I cannot say for sure if that actually worked out in practice.
                                                                                                                                                                                                                                                                                                                                      • ChrisRackauckas 5 years ago
                                                                                                                                                                                                                                                                                                                                        There were packages I wanted to add features to last week that I've used daily for years, and when I went to go check them out, I noticed they hadn't been touched since the 1.0 release which is now over a year ago. So I think the stability of 1.0 has worked out well since, in contrast to pre-1.0, these days core packages don't even need maitanance and will still continue to work perfectly well for years.
                                                                                                                                                                                                                                                                                                                                      • frankenbee 5 years ago
                                                                                                                                                                                                                                                                                                                                        Ok
                                                                                                                                                                                                                                                                                                                                    • droithomme 5 years ago
                                                                                                                                                                                                                                                                                                                                      The naming is a very good idea since it really is a totally different language and the numbering made it seem like an incremental upgrade. Whether it's too late will remain to be seen. Also, now maybe there is space for an actual Perl 6! :-)
                                                                                                                                                                                                                                                                                                                                      • tus88 5 years ago
                                                                                                                                                                                                                                                                                                                                        So will there be a Perl 6 then, or are Perl 5-ists stuck on that major version forever?
                                                                                                                                                                                                                                                                                                                                        • spyspy 5 years ago
                                                                                                                                                                                                                                                                                                                                          Apple and Microsoft have basically proven that you can jump major version numbers and no one will really care.
                                                                                                                                                                                                                                                                                                                                        • mrtweetyhack 5 years ago
                                                                                                                                                                                                                                                                                                                                          Good. Even less people will use it.
                                                                                                                                                                                                                                                                                                                                          • bipolar_lisper 5 years ago
                                                                                                                                                                                                                                                                                                                                            the programming community never ceases to amaze me
                                                                                                                                                                                                                                                                                                                                            • harikb 5 years ago
                                                                                                                                                                                                                                                                                                                                              http://tpm2016.zoffix.com/#/13 - There is so many good ideas to copy to Rustlang!
                                                                                                                                                                                                                                                                                                                                              • vinceguidry 5 years ago
                                                                                                                                                                                                                                                                                                                                                This should have happened with Python 2/3.
                                                                                                                                                                                                                                                                                                                                                • eranima 5 years ago
                                                                                                                                                                                                                                                                                                                                                  Perl 6 is WAY more different than Perl 5. Python 3 absolutely should not have been renamed.
                                                                                                                                                                                                                                                                                                                                                  • vinceguidry 5 years ago
                                                                                                                                                                                                                                                                                                                                                    Well right now I avoid using any tool written in python that doesn't have os-level packages because there still isn't a clean way to use python repos without deep understanding of how python works.
                                                                                                                                                                                                                                                                                                                                                    • m45t3r 5 years ago
                                                                                                                                                                                                                                                                                                                                                      I think this is more connect with the lack of familiarity with the language ecosystem than anything. I avoid tools written in node.js, even if installing is somewhat easy, most because I don't really know how to manage them later.

                                                                                                                                                                                                                                                                                                                                                      Btw, nowadays with a modern pip a simple `pip install --user package-name` works.

                                                                                                                                                                                                                                                                                                                                                  • Grinnz 5 years ago
                                                                                                                                                                                                                                                                                                                                                    The Python situation had a major difference: the current maintainers of Python 2 and Python 3 are the same, and Python 2 is still intended to be EOLd. A clean break would surely have avoided many problems but it's hard to speculate how it would have gone.
                                                                                                                                                                                                                                                                                                                                                    • cestith 5 years ago
                                                                                                                                                                                                                                                                                                                                                      I'm not sure I agree with you but I can't imagine why you're getting downvoted. It's definitely an argument worth making.
                                                                                                                                                                                                                                                                                                                                                      • vinceguidry 5 years ago
                                                                                                                                                                                                                                                                                                                                                        Nobody likes hearing their favorite language trashed.
                                                                                                                                                                                                                                                                                                                                                        • lilSebastian 5 years ago
                                                                                                                                                                                                                                                                                                                                                          You've made the mistake of thinking people vote rationally.
                                                                                                                                                                                                                                                                                                                                                      • anonu 5 years ago
                                                                                                                                                                                                                                                                                                                                                        Call me a pessimist, but its too little too late... I learned regex in perl so the language will always have a soft spot in my heart. But Python has trounced Perl for almost any task. There simply is no reason to learn perl unless youre in the unfortunate position of managing some legacy stack.
                                                                                                                                                                                                                                                                                                                                                        • xisukar 5 years ago
                                                                                                                                                                                                                                                                                                                                                          > Call me a pessimist, but its too little too late...Python has trounced Perl for almost any task.

                                                                                                                                                                                                                                                                                                                                                          Moving forward I'm assuming you're talking about Raku and not about Perl (or Perl 5).

                                                                                                                                                                                                                                                                                                                                                          Do you mean little too late to be endorsed by a multi-million company? Or little too late for everything (personal projects, academia, etc.)? I'm trying to clarify this because I've never understood this sailed ship mentality regarding programming languages. And I know you're not saying this but it almost sounds like Raku is supposed to be a replacement for Python. It isn't. They're different languages, both good in some areas and bad in other areas. These areas need not be necessarily overlapping.

                                                                                                                                                                                                                                                                                                                                                          Whenever I read this kind of comments, they always remind of the following phrase I came across:

                                                                                                                                                                                                                                                                                                                                                              There are two things that a programming language needs to be acceptable:
                                                                                                                                                                                                                                                                                                                                                                  - Be Python
                                                                                                                                                                                                                                                                                                                                                                  - Be a language I have used recently
                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                                                                                                          It's almost as if Python marks the pinnacle of programming language research which isn't the case at all. In fact, I daresay no language can since programming languages are a matter of compromises and trade-offs. A language's compromises and trade-offs you're willing to put off with might not be the same for another person. There's an interesting phenomenon I've observed in the Perl community (or at least the Raku for the most part) which seems to be rare in other places: Whenever a situation arises where Raku might not be the best candidate for, community members aren't afraid to consider/suggest/recommend other programming languages as viable options.
                                                                                                                                                                                                                                                                                                                                                          • jolmg 5 years ago
                                                                                                                                                                                                                                                                                                                                                            > But Python has trounced Perl for almost any task.

                                                                                                                                                                                                                                                                                                                                                            Well, I think Perl beats Python in quick and concise one-liners written from the command line, doesn't it?

                                                                                                                                                                                                                                                                                                                                                            Not that I know much Perl, though.

                                                                                                                                                                                                                                                                                                                                                            • petre 5 years ago
                                                                                                                                                                                                                                                                                                                                                              It does but it's still annoying to write on a line as opposed to Ruby or Lua. Writing Python one liners with significant whitespace is out of the question I guess.
                                                                                                                                                                                                                                                                                                                                                              • snapdangle 5 years ago
                                                                                                                                                                                                                                                                                                                                                                Raku includes an incredible amount of new tools for writing one-liners. Furthermore, you can convert your one-liner into a command line app simply by wrapping the code in a `sub MAIN($pos-arg, :$named-arg) { ... }`.