Perl 6: The Sky Isn't Falling

pudge on 2002-04-27T10:46:53

Damian writes "Many people have been quietly anxious about the major changes to Perl foretold in the Apocalypses. In a recent TPJ article I ported five real-world Perl programs to Perl 6. Many people have found the results surprisingly reassuring." ... or so the Australians would have us believe! ;)


One thing bugged me:

Matts on 2002-04-27T15:39:59

"Of course, you'll never actually have to write anything like that yourself, since the Perl 6 distribution will come with a fully generalized source code translator program."

I wish Damian and others would stop saying that. Perl 6 itself is completely vapourware, so lets not build vapour on top of vapour, please. The Perl 5 translator module is the least appealing job of all the possible perl 6 tasks. So it's likely to get done last, if at all.

Re:One thing bugged me:

Simon on 2002-04-27T16:14:43

The Perl 5 translator module is the least appealing job of all the possible perl 6 tasks.

Oh, I dunno. Writing the Perl 6 parser is going to be an incredibly unpleasant job for someone. (That's why I really wish people would stop claiming that the Perl 6 syntax is going to be "more regular". It's not. It's going to be harder to parse than Perl 5. Believe me, I've tried.)

The translator shouldn't be that bad. If you can go from Perl 5 to Python, I don't see going from Perl 5 to Perl 6 to be that difficult.

Of course, it'll only be useful if someone ports all those XS modules that all our code depends on, but we can get to that in time...

Re:One thing bugged me:

chicks on 2002-04-27T16:40:05

The Perl 5 translator module is the least appealing job of all the possible perl 6 tasks.


Oh, I dunno. Writing the Perl 6 parser is going to be an incredibly unpleasant job for someone.


So I guess this is why we haven't seen any code written other than the core, huh? Sheesh. It's such a bummer. I was looking forward to a new perl.

Re:One thing bugged me:

hfb on 2002-04-27T18:04:44

Shameless self promotion should be familiar to you and many others as, at least in US parlance, to talk about something makes something real even if it isn't. People can say anything they want about Perl6 as, until it's delivered, there really isn't anything to discuss.

The biggest mistake was making it a 'community rewrite' since it will be the most successful death by committee the software world has ever seen. Hundreds of little project managers cackling upon the flames of hope and good intentions. Everytime someone even mentions Perl6 these days it causes a tiresome, boring pedantic conversation that is mostly meaningless and unproductive and this is just in vapour, just wait a few more years and see what the prodigal language brings. Hopefully my transition to ruby will be complete by then.

Re:One thing bugged me:

raptor on 2002-05-04T21:12:47

i will ask u again when we go "next-turn" i.e. when other languages start coping Perl6 features en masse as they did with current Perl to become popular :")

And u forgot the main thing why Perl community use Perl ...
!!! Because it is FUN !!!
If it was not fun for you shouldn't learn it, in the first place..
(about learning new language it is not that hard to learn new language those days, the hard/time-consuming thing is to learn technology around it i.e. object-repositories, OSes and Products API's ..etc).

And about the "next-turn" I sed other language-users will say again that they are implementing this and that feature of Perl6 but do it more ceanly and rightly, w/o all those noise ..... as we hear now :")

no offense...

perl-developers keep the good work we are with U..

Re:One thing bugged me:

Elian on 2002-04-27T18:07:00

The perl 5 front end is no less appealing than most of the other work involved in parrot--certainly not annoying enough to make a difference. It'll get done.

Re:One thing bugged me:

gnat on 2002-04-27T18:09:56

"Perl 6 itself is completely vapourware, so lets not build vapour on top of vapour, please."

I have to admit that I get a little frustrated by the hypocrisy in the "perl6 is vaporware" statement. Sure there's no code. We're designing. You remember design. It's what we get flamed for if we don't do. Oh look, now we're getting flamed for doing it.

We could have leapt right in and started coding. We'd certainly have some parsing code and a language of sorts by now. But would the pieces fit together in any planned way, or would there be the same mixture of frustrating edge cases that crop up in perl5? I'm picking the latter.

As for "let's not build vapor on top of vapor" ... the translator has always been just as much a part of the perl 6 plan as the perl 6 parser. We're not adding plans for anything--we've always said that we'll need to translate perl5 to perl6. You might as well say that "better object support" is "building vaporware on top of vaporware".

--Nat

Re:One thing bugged me:

wickline on 2002-04-27T19:01:14

> I get a little frustrated by the hypocrisy
> in the "perl6 is vaporware" statement

You tell 'em!

To all the perl6 nay-sayers: the lack of respect shown to those pouring their hard work and precious time into this project saddens me.

OK, maybe that comment isn't really appropriate to direct to *all* the nay-sayers, but those who say "nay" without attempting to contribute constructively really chap my hide.

Know ye contributors to perl6 that there is a large body of mostly silent programmers salivating over the chance to use the fruits of your labor. When you read the trash talk, please think of us. We may not be vocal enough often enough, but we're quite glad you're working on this.

-matt

Re:One thing bugged me:

Matts on 2002-04-28T09:41:46

I have never once argued for BDUF for the perl 6 process. And I've said before that I think the design by committee approach was a mistake. So I don't really think you can call me a hypocrite for that.

I am however really mixed up about Perl 6. And for that I appologise to those working hard on it if I hurt their feelings - I should try and remove my passion from discussions of it. I think it has a lot to do with going through the almost exact same process as I went through as part of the Amiga community about 5 years ago. Ultimately I hope the same fate does not befall our tribe. I honestly didn't mean vapourware in an insulting way - if there were a better word to choose for a product being announced before anything tangible exists then I would use that.

I don't think it's wrong to question the wisdom of our elders' choices in this process from the outside. Yes, I should probably be involved in the whole perl 6 development process. Were it not for this damned 24 hour day I surely would be. I'm sure there are others who are in the same boat as I am.

Re:One thing bugged me:

Elian on 2002-04-28T22:38:52

Perl 6 isn't design by committee, and neither is Parrot, so there you can feel comfortable. Or less uncomfortable, at least, and that's something.

And while it's not wrong to question the wisdom of the choices made by the people in the middle of development, it's something to be careful about if you're not in the middle of that development. Not because criticismis inherently wrong--it's not--but because if you're not at least mildly up to date you'll find yourself worrying about nothing, or inadvertently building up strawmen to knock down.

That you're as worried as you are does imply that we are not getting the word out about what's going on with perl 6 and parrot development. That's an issue that we definitely need to address. We've been trying, but it's clear we've not quite gotten it yet.

Re:One thing bugged me:

modred on 2002-04-29T12:30:38

My feeling is that most of the Perl6 documents released to the public (Apocalypses and Exegeses) are written for a very small subset of the people using Perl on a daily basis. How about a status update on Perl6 for those programmers-who-aren't'superstars-and-probably-will-never-be?

Gnat said in another reply that Perl6 is currently in the design stage and that is why there is not a rudimentary parser and the ilk. I understand the need for time to get the design right but the timetable for the design table seems to be quite open ended. It would be heartening to hear something like "Larry expects to have the first pass of the design done by 200X." I certainly expect and hope that once all the Apocalypses are done that there will be a certain of changing needed to make the design consistent with itself.

A lot of the initial momentum that was around when Perl6 was announced seems to have disappeared. I think the cause for this is simply human nature: two years ago it was a new shiny, big idea but now it is still a big idea but there isn't a whole lot of new Perl to play with. Sure, there is Parrot but how many Perl programmers are also going to be excited by an assembly-type language, a few but I would guess that most of the people using Perl are doing so to stay away from the assembly level.

Another status item that does not get addressed is how much more design is needed before it is feasible to start the parser et al. Also, how many more features are needed for Parrot until it is considered ready to support all the features of Perl6?

Re:One thing bugged me:

Elian on 2002-04-29T16:21:57

I've been trying to get things out in The Perl Review but that's not enough. Bryan Warnock's doing perl6 list activity summaries when he's got the time, but like all volunteer activities the real world sometimes gets in the way.

I'll see if I can't get more frequent updates as to what's going on posted to use.perl. Perhaps a regular Q&A session, too.

Re:One thing bugged me:

erikharrison on 2002-04-28T06:20:13

Some thoughts:

  1. A Perl 6 to Perl 5 tranlator is certainly non trivial, but not exactly hard. Remember: the translator is not forced to write idiomatic Perl 6. So, all we need to do is fix the funny characters, fix open to use the new returned file object syntax, change special variable names, a couple of operators, and boom, your set. This seems like a long list, but since syntactically much is the same translator could (almost) be a dumb regular expression.
  2. I would write the dang thing if I knew anything other than basic C. I'll certainly write tests for it. Certainly it could be done concurrently with writing the Perl 6 parser. Hell's bells, we already HAVE the hard part - a Perl 5.x parser. All that needs to be done is gut the thing and tell it to do something slightly different.
  3. The real interesting project is not the p52p6 utility, but porting Perl 5.x to Parrot. Perl programs that depend highly on eval will probably need at least a little non automatic porting. But by bringing Perl 5 to the Parrot Virtual Machine Perl 5 bytecode can freely comingle regardless. If language design goes bottom up Parrot will still be there, a virtual machine for Perl, even if it never delivers it's multilanguage promise, could at least give Perl 5 true garbage collection and an easier way to handle the B::* modules.
  4. "Everyone is happy, and peace spreads over the whole Earth" - Larry, on Perl 2

Re:One thing bugged me:

james on 2002-05-10T12:03:22

The real interesting project is not the p52p6 utility, but porting Perl 5.x to Parrot. Perl programs that depend highly on eval will probably need at least a little non automatic porting. But by bringing Perl 5 to the Parrot Virtual Machine Perl 5 bytecode can freely comingle regardless. If language design goes bottom up Parrot will still be there, a virtual machine for Perl, even if it never delivers it's multilanguage promise, could at least give Perl 5 true garbage collection and an easier way to handle the B::* modules.

I'm already working on this, although I think I'm probably my own worst enemy here. I'm trying to do it without using parrot as a stack machine as much as possible, but there are places where this proves to be difficult. However, once we have symbol tables in Parrot it will be far less so.

I have about 4000 other projects on at the moment, so until the point that we have some more perl-like features in parrot my time to work on this is little. However, I've got the basics done, so that when that point is reached the work will be (relatively) trivial.

There are a couple of lingering questions in my head, for instance regexs and the like, but as I've said in the past, if I can get 80% of perl 5 opcodes working, I'm a very happy chappy.

Regards,
James.

Reminds me of the poll on Perlmonks

cascadefx on 2002-04-27T16:28:50

I read the article, Damain, and it was very good. I feel a little less aprehensive now, I have to admit (even if the new perl won't parse the old).

However, all this reminds me of the poll that is on perlmonks.org right now:

  • Perl 6 will primarily be:
  • The coolest language ever. I may never go outside again.
  • Like Perl5, only slicker.
  • Whatever I configure it to be. My own private Perl.
  • Even more annoying to uptight language grannies.
  • Something I worry about when it arrives.
  • The leverage Parrot needs to conquer the world.
  • A mixed bag. Some ideas I love, some I fear.
  • Frustrating; I've worked hard to learn Perl 5, dang it!
  • Finished just in time to teach to my grandkids.
  • Like APL, only not as easy to read. Hmm... where's the ∌ key?
  • Perl's downfall. Woe! Despair!
  • None of the above; see my rant below.
  • I'm waiting to hear what paco thinks.
My response is in bold. I am late to the perl game and I love it... but I am still new. Perl 5.6 is all I know (what little of it I do) and I have spent considerable time (and money) getting up to speed. I have a fear that this would be lost. I was going to wait to learn Perl 6, but I had pressing needs and there are still books being published without Perl 6 involved. I figured it was a ways off. Hopefully I was right.

I would like to get to the point that I know Perl 5.6 well enough that the Perl 6 jump won't be painful. I hope I can!

Re:Reminds me of the poll on Perlmonks

chaoticset on 2002-04-29T18:16:35

I'm waiting to hear what paco thinks.