> Perl 6 performance has now gotten to the point where it's often comparable to Perl 5 or surpasses it. It still needs some work in this area, but the work is clear, the goals are straightforward, and Perl 6 is going to easily oustrip Perl 5 in terms of performance. If the Perl 6 community wants to rename, it's perhaps the perfect time to do so. It doesn't look like a bad choice if performance is a primary concern. P…
Is Perl 6 Being Renamed?
311–320 of 424 posts
Re: Is Perl 6 Being Renamed?
#312I don't get all this "Perl 6 is a different language" nonsense. It was created by Larry Wall and retains all the characteristics of Perl 5 whilst adding a lot of great stuff from other languages. Sadly, performance prevents it being taken seriously in production.
Re: Is Perl 6 Being Renamed?
#313Earlier quoted context omitted.
As per usual, the GP sees the matter from a purely technical perspective, which occludes the larger business insight that the top-level comment provides.
I very specifically pointed out that some of it was based on the relationship between the projects. I wasn't defending the situation, as much as providing context of why it was done that included non-technical reasons. To spell it out, Parrot the project started around the same time as Perl 6 the project. Initially, a lot of Parrot's purpose in reality was to be a VM for Perl 6, but Parrot also had a goal of being a…
This was, initially, for two reasons:
* allow Perl 5 code to run in process with Perl 6 code (without linking in libperl) * provide a unified VM on which Perl 5.12 could become Perl 6
Re: Is Perl 6 Being Renamed?
#314Earlier quoted context omitted.
That is exactly what the main architect of the compiler has been working on for the past couple of years. Performance has been enhanced by a few factors since it was released in 2015. For a lots of things the next stable release (as soon as the latest round of optimization have been merged) will be on par with perl5 / ruby / python ... The main slow thing remaining is Grammars which if I understand correctly are not…
Well, no, these are all slow interpreted languages. There is no reason to invest any time into another one just as slow in 2019.
Re: Is Perl 6 Being Renamed?
#315Earlier quoted context omitted.
I very specifically pointed out that some of it was based on the relationship between the projects. I wasn't defending the situation, as much as providing context of why it was done that included non-technical reasons. To spell it out, Parrot the project started around the same time as Perl 6 the project. Initially, a lot of Parrot's purpose in reality was to be a VM for Perl 6, but Parrot also had a goal of being a…
As parrot maintainer I could explain what caused the downfall: Stupid people. It was a CPS compiler, but after they drove the first creators away, a bunch of people who had no idea about compilers nor CPS started destroying it. First the destroyed the jit. The technical justification was bullshit. Then they destroyed the run loops, and finally the CPS (2007 YAPC workshop). This caused every function call to allocate…
Reini, it seems like you think everyone who disagrees with you is stupid. This isn't an explanation for anything.
We were boxed in for two really good not-primarily-technical reasons:
* we had users we didn't want to abandon or cause churn * we had architectural decisions we had to improve
Now I know I'm not as smart or as experienced or as knowledgeable as you are, but that doesn't mean I'm a drooling buffoon, and it certainly doesn't mean I don't have good reasons. Sometimes it means I make mistakes. Sometimes they're not even mistakes; sometimes they're just differences of opinion.
Re: Is Perl 6 Being Renamed?
#316Earlier quoted context omitted.
I very specifically pointed out that some of it was based on the relationship between the projects. I wasn't defending the situation, as much as providing context of why it was done that included non-technical reasons. To spell it out, Parrot the project started around the same time as Perl 6 the project. Initially, a lot of Parrot's purpose in reality was to be a VM for Perl 6, but Parrot also had a goal of being a…
As parrot maintainer I could explain what caused the downfall: Stupid people. It was a CPS compiler, but after they drove the first creators away, a bunch of people who had no idea about compilers nor CPS started destroying it. First the destroyed the jit. The technical justification was bullshit. Then they destroyed the run loops, and finally the CPS (2007 YAPC workshop). This caused every function call to allocate…
Re: Is Perl 6 Being Renamed?
#317Re: Is Perl 6 Being Renamed?
#318Re: Is Perl 6 Being Renamed?
#319Earlier quoted context omitted.
> if you insist on a language that is Perl-like but also modern Here's your perennial reminder that the word "modern" is a thought smell. > it's a language with a small ecosystem that doesn't seem to provide any groundbreaking advantage compared to existing languages I'd almost prefer this conception went uncorrected, because Perl6 is not just Ruby or Python in different clothes, and it's not just Perl5 with nicer ae…
> "modern" is a thought smell Sometimes it's a thought smell, but sometimes it's shorthand for "has learned the lessons of recent history", which is indeed valuable.
Re: Is Perl 6 Being Renamed?
#320Earlier quoted context omitted.
This is by far the most important thing they could be doing right now. It should have been done 10-15 years ago, and is arguably the dominant remaining reason for why the work done on both Perls since Perl 6 has failed to payoff the way it should have. There is a certain contingent of developers who should have been all over Perl 6 and very excited about it. We should have been seeing the stream of "$COMMON_LIBRARY b…
I believe Perl 5's decline and Perl 6's failure to catch on is evidence of the failure of their common underlying TMTOWTDI philosophy, which encourages write-only "creative snowflake" Perl code that's an inscrutable, unreadable, unmaintainable nightmare. (The sigil-heavy line-noise syntax sure doesn't help, either.) https://en.wikipedia.org/wiki/There%27s_more_than_one_way_to... http://wiki.c2.com/?ThereIsMoreThanOne…
For example, if you have a simple function that kicks backed cached values:
sub foo ($bar) {
if %cache{$bar}.defined {
return %cache{$bar}
}
}
Is an absolutely correct way of doing things. But it's messier then using a postfix: sub foo ($bar) {
return %cache{$bar} if %cache{$bar}.defined
}
Or simplifying: sub foo ($bar) {
return $_ with %cache{$bar}
}
While it's true that sub foo ($bar) {
.return with %cache{$bar}
}
is possible, I don't tend to use it too much because the dot syntax isn't as pretty with postfixes ha. But each of these options has a place where it is the better option, but none of them is universally the one and only best option. Nested ifs with multiple statements may go better with the first one, but if several conditionals have similar elements and are simple statements it might behoove to line them up with whitespace. But the placement of return right at the outset (as opposed to nestled in an if statement) to me makes it clear the return value is a gate-keeper of sorts. Ditto for using 'die if [cond]' which much more in your face then 'if [cond] {die}'.All of the above code is readable though. Of course, a functional approach could be just as valid and readable, and clear:
multi sub foo ($bar where %cache{$bar}.defined)
{ %cache{$bar} }
multi sub foo ($bar) { ... }Or taking advantage of traits:
sub foo ($bar) is cached { ... }
Almost inevitably the unreadable code is where someone is trying intentionally to be cute and write unreadable code. But that can be done in languages like C too, or with any language that allows single letter variables.