5 ms·
I absolutely love Perl, and I think that the newest versions of Perl 5 have taken much of the good things that Perl 6 promised and added them. I really think th
by cms07 11y ago
I absolutely love Perl, and I think that the newest versions of Perl 5 have taken much of the good things that Perl 6 promised and added them. I really think that Perl 6 misses the point and removes all of the charm of Perl. Why change sigils and all of these operators? The people who don't like them aren't using Perl anyway, and they won't be using Perl 6 just because it implements them in a more obvious but less meaningful way.
I also don't think the addition of a more mainstream object system is a positive thing, but that's a debate for another time.
Edit: And it's not just about sigils, but about changing things for no meaningful reason, especially things that set Perl apart and make it what it is.
- MadcapJake 11y agoName some things that they changed for "no meaningful reason". As you state, Perl 5 has added a number of things that Perl 6 promised. So why would you want Perl 6 to just be what Perl 5 has become? They're two completely separate languages with some shared syntax/semantics.
- hayksaakian 11y agoFrom an outside perspective, the distinction between Perl 5 and Perl 6 is confusing. Are they literally separate languages? Did Perl 5 come after Perl 6?
- kbenson 11y agoPerl 6 is like Python 3, but they decided early on that if it wasn't going to be backwards compatible they might as well go wild with enhancements and fixes to earlier mistakes. As such, while Perl 6 is seen as a successor to Perl 5, it doesn't obsolete Perl 5. There's still plenty of active development and new features happening in Perl 5 (after a lull in development, likely because of Perl 6). It's widely accepted at this point that the name could and would have been better off as something else, like Perl NG (there is good reason to want to retain some Perl mindshare, it is very related at a language level) or something, but by the point that was realized the damage was done. People still argue over whether they should change it to clear this issue up for the layman, but there are good reasons to not want to give up the long past associated with the Perl 6 name. It's becoming slightly less important now that Perl 6 can now inline a lot of Perl 5 code and modules (including modules with compiled code)[1]. 1: https://github.com/niner/Inline-Perl5 https://github.com/niner/Inline-Perl5
- jasonjayr 11y agoPerl 6 started around when perl 5.8 was released. Then Perl 5 went stagnant while most of the core language developers were working on Perl 6. After a few years where there were competing implementations of perl 6, and still some wild ideas being tested, folks that still were using Perl 5 watched the rest of the languages develop, and the growing buglist against perl 5, and starting poaching ideas from Perl 6, ruby, python, and improving the Perl 5 runtime. Eventually, The Perl 5 camp committed to regular releases, and continued renewed development in the engine, and it is still pretty good. But the damage has been done @ this point -- a lot of the community has wandered off to other 'cool' languages and frameworks. The confusion will continue, especially since it's become clear Perl 6 is quite the departure from Perl 5, and there is a LOT of code in the wild using Perl 5. I've seen some talk of the Perl 5 folks asking Larry Wall to rename Perl 6, but he's declined to do so. With perl6's grammar support, some folks are working on importing the perl5 grammar into perl6[0]. Fortunately, there's a very rich testing environment(in the form of CPAN) to ensure this effort will be stable. [0] https://github.com/rakudo-p5/v5/ https://github.com/rakudo-p5/v5/
- kbenson 11y agoThe alternative to v5 is Inline::Perl5[1], which instead of defining a mode that understands Perl 5 syntax and maps it to the underlying Perl 6 runtime, actually embeds a Perl 5 interpreter and handles all the back and forth automatically. The benefit of this approach is that XS modules still work (you can use Per 5's DBI in Perl 6 using Perl 6 syntax). 1: https://github.com/niner/Inline-Perl5 https://github.com/niner/Inline-Perl5
- inopinatus 11y ago> a lot of the community has wandered off to other 'cool' languages and frameworks I am just one such. Half my career was writing Perl. But these days, most of my work is in Ruby and as a longtime fan of Erlang (but never having had the opportunity to use it in production), I'm taking a long look at Elixir+Phoenix. This tutorial wasn't enough to entice me back to Perl, and I'm wondering if there is anything at all that could. In general we choose a language for their applicability to the problem domain. The focus on text manipulation in Perl 4, and then extension of this with an object framework in Perl 5, made it a shoo-in in the 90s and early C21 when we all needed form parsing, HTML template stuffing, and email mangling tools. In these days of dynamic DOM manipulation and event-driven microservices, it doesn't seem so relevant; whilst Node and Go and Elixir look entirely on point. If you go look at the Perl 6 FAQ, there's a section, "Why should I learn Perl 6?". It lists a grab-bag of language features, rather than a set of problems that Perl 6's new design can solve. As a result it feels much like a solution in search of a problem. That wasn't even ever true of JavaScript, even though JS took years to come of age. If I was designing a language today, and I am not, but if I were, I would look at how dominant Java seems to be in the big data community and try knocking it off that perch with appropriate language primitives, constructs and libraries. It seems to me this is the modern problem domain homologous to the bulk text mangling for which Perl originally became famous.
- MadcapJake 11y agoAn old but informative article on Perl 6: http://www.perl.com/pub/2006/01/12/what_is_perl_6.html http://www.perl.com/pub/2006/01/12/what_is_perl_6.html And a brief blurb from the Perl 6 FAQ that helps explain it a bit: > Perl 6 is still a very perlish language, following the same underlying ideas as previous versions (sigils for mini-namespaces, There Is More Than One Way To Do It, caring about both manipulexity and whipuptitude, taking many ideas from natural language (like disambiguation through context)) > Perl 6 code feels very perlish. A Perl 5 program using Moose or a similar object system feels closer to Perl 6 than to Perl 1 code > "Perl" is still a strong brand name, which we don't want to throw away lightly > It is very hard to find a good alternative name. And no, "camelia" and "rakudo" are not good names for a programming language (even if they are fine for our mascot and the leading compiler) > Even if Perl 6 changed its name, an incremental update to Perl 5 likely couldn't claim the version 6, because the name Perl 6 sticks in people's head, and will long be associated with what it is today
- cwyers 11y agoI mean, if Perl 6 didn't want to be confused with being the same language as Perl 5, it didn't have to increment the version number by one and keep the name. As far as why one would want Perl 6 to just be Perl 5 plus some new stuff, that's really how most languages handle keeping the same name and incrementing the version by one. People who have Perl 5 code and want to keep writing in the same language but with more whathaveyou probably want Perl 6 The Completely Separate Language to go away so that Perl can get the kind of Perl 6 any other language would've gotten by now.
- liveoneggs 11y agoAre you talking about changing $foo[0] to @foo[0] ?
- keeperofdakeys 11y agoAs someone who is relatively new to perl, I think perl 6 is definitely a positive direction. It removes lots of inconsistencies, while providing a clean base for future expansion. For something like the sigils, what's more important - to know that a variable is a scalar, or that it's some kind of hash/array? The second would definitely be less confusing when learning the language. There are also definitely some good things coming out of perl 6, like this https://www.youtube.com/watch?v=JpqnNCx7wVY https://www.youtube.com/watch?v=JpqnNCx7wVY