26 ms·
Larry Wall has approved renaming Perl 6 to Raku
- Ovid 7y agoThis 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 ...
- lliamander 7y 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.
- tombert 7y agoFor that matter, Erlang has been around for like almost 30 years and has had multicore support since 2007, and has always been dynamic.
- zzzcpan 7y agoIn 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.)
- tombert 7y agoI don't really know what "differentiate" means, but Clojure has support for CSP-channel style with core.async, shared-memory with transactions using atoms/refs, and actor-ish style with the agents.
- cstrahan 7y ago> I don't really know what "differentiate" means [...] Probably “set themselves apart from others”.
- davidw 7y agoErlang 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.
- tombert 7y agoHeh, escript isn't so bad once you get used to it. Clojure would be a great language for small-ish scripts if it weren't the dog-slow startup times, and has excellent concurrency support. I hear that GraalVM might fix that but I sadly haven't had a chance to play with that yet.
- jdminhbg 7y agoGraalVM does in fact fix that. There's a (new-ish) project called babashka that lets you do some basic scripting for example: https://github.com/borkdude/babashka https://github.com/borkdude/babashka
- didibus 7y agoYa, GraalVM fixes it. But it requires a compile step, so it's not as nice for scripts. My favourite for scripting right now is Joker: https://github.com/candid82/joker https://github.com/candid82/joker Joker is a Clojure dialect which is interpreted, thus it starts super fast (but runs slower, but fast enough for scripts). Its design is to be batteries included for all things scripting. So it's just a self contained executable with everything you need for scripting. It's implemented in Go. I use it wherever I would have used bash or powershell prior. There is also Babashka: https://github.com/borkdude/babashka https://github.com/borkdude/babashka which is a similar idea, it's an interpreted dialect of Clojure with fast start times designed for scripting. The difference with Joker is that it is newer and more experimental, and it is implemented in JVM Clojure, compiled with GraalVM and has no Windows support for now. Anyways, I really recommend the use of Joker. Its awesome for scripting. I just put its binary in all my bin folders and script with it. It's great.
- cutler 7y agoEven if GraalVM fixes startup times aren't JVM languages just too long-winded for scripting? Perl, Python and Ruby dominate the scripting world for a reason - standard libraries for file, dir and pathname manipulation written in a concise language. Scripting is a style of coding, not just a means to an end. It is here that dynamic languages excel. Clojure is the leanest of the JVMs but doesn't it still rely on Java for file, dir and pathname manipulation?
- lliamander 7y agoOh 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.
- 7thaccount 7y agoWhen 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.
- weff_ 7y agoI'm trying to understand, what kind of scripting requires first-class concurrency that isn't fulfilled by say Python?
- Grinnz 7y agoI am not that familiar with Python, but the GIL has long prevented any real in-process concurrency. Perl has concurrency but it's complex, heavy, and poorly supported. Raku's approach to this is built to avoid all these problems (like Elixir).
- weff_ 7y agoI agree the GIL is a problem but it's only an issue for CPU-bound problems. Is there really an important amount of CPU-bound work that is written in a scripting language? If it's CPU-bound, wouldn't you want to use something lower level?
- karmakaze 7y agoIt's not just CPU bound problems, handling multiple overlapping i/o operations is more trouble than it ought to be.
- weff_ 7y agoCan you expand a bit on that? I'm not familiar with the issue you're describing.
- Grinnz 7y agoIndeed and as a Perl developer I make use of XS/external libraries, cooperative multitasking (event loops/promises), and forking to cover these use cases. It doesn't preclude wanting the additional option to take advantage of threads in a useful way, since they do exist.
- dimitar 7y agoClojure has a focus on concurrency, is functional and it embraces JS and Java, the dominant platforms.
- jolmg 7y 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.
- sigzero 7y agoThey'll probably skip to 7.
- dwaltrip 7y agoThat is probably the best solution, but at the same time it is such a hilarious thing.
- KSS42 7y agoWhy not Perl 10 or Perl X?
- rurban 7y agono, 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.
- ether_at_cpan 7y agobwahahahahaha
- b2gills 7y agoI think it would be a better idea to make the minor number be the major number. So skip to 32.
- joshlemer 7y agoIt's not uncommon to leap frog versions in such cases. PHP went from 5 to 7, for instance.
- msla 7y agoAnd 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 7y 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 7y 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.
- Jach 7y agoThe 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 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.)
- bborud 7y 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 7y agoI 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.
- 7thaccount 7y agoHey 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 7y agoThe https://taustation.space/ 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)
- Causality1 7y agoRather 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 7y agoIf only the Python community could learn something here
- overcast 7y agoCan someone give the rest of us some context on this?
- bifrost 7y agoPerl5 -> 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 7y agoIn 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."
- overcast 7y agoDefinitely not anecdotal, that's the story from EVERY company.
- lilSebastian 7y ago> EVERY company Not sure you know what the word every means.
- lilSebastian 7y ago> The language is terse Only if you chose to write perl code in this way. The same could be said for many languages
- ram_rar 7y agoCan someone explain to me, for what kinda of new projects would they use Perl/Raku in 2019 at all?
- gillesjacobs 7y agoA 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.
- julienfr112 7y agoSpacy, the new kid on the block, is in python...
- gillesjacobs 7y agoThere 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 http://picto.ccl.kuleuven.be/index_engspa.php
- julienfr112 7y agoYou are indeed taking your fair share of the trend ...
- make3 7y 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 7y agoMore 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.
- smacktoward 7y agoFifteen years too late. But I suppose better late than never.
- rubinelli 7y agoHad 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 7y agoI don't think the name change was the problem here, rather it wasn't complete until recently.
- lilSebastian 7y agoSee the section about waiting for perl 6 before doing more work... http://blogs.perl.org/users/ovid/2019/08/is-perl-6-being-renamed.html http://blogs.perl.org/users/ovid/2019/08/is-perl-6-being-ren...
- rz2k 7y 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.
- kbenson 7y agoI'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.
- guelo 7y agoIf raku failed to catch on whilst it was named Perl it has even less chance to catch on now.
- opens3 7y agoHallelujah! Great decision :) it will give Raju a chance to be viewed without the "line noise" lens of Perl 5.
- DonHopkins 7y agoI'm disappointed they didn't take my suggestion to rename Perl 6 to "$#_@;\>&%}`[*~!^)".
- chipotle_coyote 7y agoI'm disappointed that's not executable. :)
- thetwentyone 7y agoJulia 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 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 7y agoIs Julia getting more stable? I remember that was the big issue a few years ago, especially since it calls so many weird CUDA apis.
- frankenbee 7y agoOk
- vanderZwan 7y agoWell, 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 7y agoThere 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.
- chrispeel 7y agoJulia 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.
- 7y ago
- vinceguidry 7y agoThis should have happened with Python 2/3.
- eranima 7y agoPerl 6 is WAY more different than Perl 5. Python 3 absolutely should not have been renamed.
- vinceguidry 7y agoWell 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 7y agoI 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.
- vinceguidry 7y agoNo, it's due to two reasons. Devs don't ever think about who might be interested in using their tools and just assume that everyone who might want to use their work has just as much knowledge as they have in their particular mineshaft. Second, the creators of the language didn't bother thinking about how people are supposed to ship software when they were dreaming up the language. Languages are cool, maintenance and support aren't. I'm not even saying my pet language is immune, I don't know that I'd use Ruby tooling that didn't have OS packaging if I didn't have deep knowledge of Ruby. I plan on figuring out just enough of python to be able to use python tooling, but I think it's super-stupid that no one thinks of that use case and so requires that everyone has expertise before they can use at a basic level. Should I have python 2 or 3 installed on my machine? Why can't I have both and have the language just choose and default sanely? Python seems to be utterly stupid in this regard. Stupid, but that's the world as it is right now. I single out python because there's more devs writing more interesting python projects that are totally useless to anyone who isn't a python dev than any other lang. Also then again, Ruby devs/teams who do make tools for broader consumption usually package their stuff up because everybody knows Ruby tooling is total shit. Python devs don't seem to have this awareness of this limitation of their ecosystem, beaten in myopia only by the juggernaut of uselessness that is the nodejs ecosystem. Then again is ruby really that bad? Everybody knows you have to use a ruby version manager, you can't get very far at all in Ruby without one. I don't think they're really all that hard for an even mediocre dev to instrument. Is it really worth setting up virtualenv or whatever the heck pythonistas are using for env management these days for basic usage of a project written in python? How much of it do I have to know? Is it going to bite me in the ass one day like nodejs does just about every time I have to deal with it? Questions I don't want to deal with, so I strongly consider rewriting python tools in ruby at a bare minimum level because I don't want to take the time to ship personal tooling.
- sys_64738 7y agoWhat utility does Perl provide in a world dominated by python?
- ncmncm 7y agoLegit 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.
- matthewowen 7y agohttps://wagtail.io/ https://wagtail.io/
- smacktoward 7y agoThere are static site generators written in Python you could use to publish a blog, like Pelican (https://blog.getpelican.com/ https://blog.getpelican.com/) and Lektor (https://www.getlektor.com/ 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 7y agoIt is hard to imagine why anyone would want to generate blog pages on the fly, but somehow it is what everyone does.
- wumpus 7y agoOne 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.
- edflsafoiewq 7y agoFrom 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").
- amptorn 7y agoIt's a pretty good name I think!
- rcthompson 7y agoThis is exactly the type of linguistic naming shenanigans I'd expect from the Perl community.
- tvaughan 7y agoAnd 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 https://en.wikipedia.org/wiki/Programming_Perl
- aflag 7y agoI'm curious, how do you learn languages now?
- chmod775 7y agoI read a blog post with the basics, then Google everything else as I need it.
- aflag 7y agoInteresting. A good book is very efficient at teaching you how to think in that particular language, rather than translating the ideas you have in another language into the new language. How do you learn that with your method? It sounds to me that it would require a long time programming in the new language to come to the same realisations by yourself.
- andreygrehov 7y agoIf anyone is interested in working with the language, AFAIK, DuckDuckGo's backend is primarily written in Perl.
- ricardobeat 7y agoPerl 6 / Raku introduces so many new constructs that is almost an entirely new language.
- rollschild 7y agoI 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.
- meesles 7y agoI 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 7y agoI meant popularity wise.
- deleted 7y ago[deleted]
- resonantjacket5 7y agoAssuming 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 7y agoPerl 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#.
- Upvoter33 7y agoI'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.
- theonemind 7y agoI 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 7y agoThe 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.
- kbenson 7y agoAgreed. 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.
- hnick 7y agoIt'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.
- 7y ago
- natch 7y agoThis 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.
- Grinnz 7y agoPerl 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 7y agoWhy 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.
- deleted 7y ago[deleted]
- xisukar 7y 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/ https://docs.perl6.org/routine/! [2] https://docs.perl6.org/language/variables#index-entry-Twigil https://docs.perl6.org/language/variables#index-entry-Twigil [3] https://docs.perl6.org/language/variables#index-entry-$ https://docs.perl6.org/language/variables#index-entry-$! [4] https://docs.perl6.org/language/faq#Why_sigils?_Couldn't_you_do_without_them https://docs.perl6.org/language/faq#Why_sigils?_Couldn't_you...? [5] https://docs.perl6.org/language/faq#Is_Perl_6_fast_enough_for_me https://docs.perl6.org/language/faq#Is_Perl_6_fast_enough_fo...?
- tus88 7y agoSo will there be a Perl 6 then, or are Perl 5-ists stuck on that major version forever?
- spyspy 7y agoApple and Microsoft have basically proven that you can jump major version numbers and no one will really care.
- anonu 7y agoCall 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.
- jolmg 7y 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 7y agoIt 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 7y agoRaku 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) { ... }`.
- petre 7y agoYes but it has a VM penalty for at least more than 500 ms in my box, which is kind if dissapointing.
- xisukar 7y 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.
- harikb 7y agohttp://tpm2016.zoffix.com/#/13 http://tpm2016.zoffix.com/#/13 - There is so many good ideas to copy to Rustlang!
- kbd 7y agoNaming 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.
- pvaldes 7y agoAgree. 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 7y 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 7y agoI 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.
- droithomme 7y agoThe 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! :-)
- rhabarba 7y agoMay Perl 5 live forever. Amen.
- scythe 7y agoI 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.
- kizer 7y agoIs that from the Bible?
- kizer 7y agoI know he’s a man of faith as they say. No judgement of any kind intended.
- deleted 7y ago[deleted]
- giancarlostoro 7y agoDoes 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.
- vgetr 7y agoIt is - the book of Matthew, specifically.
- giancarlostoro 7y agoYou'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...
- Grinnz 7y agoI think the comment was asking about the quote in the linked comment, not the name (which was chosen as an alias many months ago).
- jdporter 7y agoOf course it's from the Bible -- as a quick google would have told you. It's Mark 2:21-22.
- eruci 7y agoA long overdue marketing move.
- mikece 7y agoKudos 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 7y ago> Kudos for making this change! Rakudos, even!
- wodny 7y agoIt 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 7y agoNot "z raku"?
- deleted 7y ago[deleted]
- wodny 7y agoNo. "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").
- bipolar_lisper 7y agothe programming community never ceases to amaze me
- davidw 7y agoIt would be cool if Les Claypool played Larry Wall in the movie.
- bbanyc 7y agoI 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 7y agoI 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 7y agoDidn't CTAN predate CPAN?
- bbanyc 7y agoIt 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.
- deleted 7y ago[deleted]
- deleted 7y ago[deleted]
- mberning 7y agoI 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.
- 7thaccount 7y agoWill Zoffix return?
- 7thaccount 7y agoNot 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.
- deleted 7y ago[deleted]
- codesections 7y agoOne 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.
- mrtweetyhack 7y agoGood. Even less people will use it.
- halis 7y agohttps://cnet4.cbsistatic.com/img/DaSY-sXB3xqiXQZImbypEvHPdec=/1092x0/2019/05/22/1b710a6b-5f4d-4987-a046-c23674b221a3/picard-meme-facepalm.jpg https://cnet4.cbsistatic.com/img/DaSY-sXB3xqiXQZImbypEvHPdec...
- x62Bh7948f 7y agoI 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.
- blondin 7y agoso, 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.
- lacampbell 7y agoGood 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.
- ksec 7y agoThe 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#issuecomment-520216578 https://github.com/perl6/problem-solving/issues/81#issuecomm...
- Grinnz 7y agoraku.org is no longer available because it is controlled by the Raku project.
- gpvos 7y agoLarry'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#pullrequestreview-300789072 https://github.com/perl6/problem-solving/pull/89#pullrequest...
- janeroe 7y agoIn Russian "raku" is a genitive of cancer / a derogatory term used for noob users.
- dcompton13 7y agoraku is a type of pottery firing, also from Japan.