Linked by David Adams on Sun 7th Dec 2008 02:03 UTC, submitted by HugoS
General Development Version 6 of the popular Perl programming language will not be compatible with previous versions, but will open up a new world of custom "languages" and interpreters, according to its founder Larry Wall. Wall and his co-developers are doing with Perl 6 -- starting again. "It will break backward compatibility [but] in order to simplify it we have to get rid of old cruft, particularly the regular expression cruft," Wall said. "A lot of the unreadability of Perl is related to the regular expression syntax " and we didn't do that, we got it from Unix. It needs to be end-of-lifed."
Thread beginning with comment 339481
To read all comments associated with this story, please click here.
Confused
by Moochman on Sun 7th Dec 2008 07:49 UTC
Moochman
Member since:
2005-07-06

Admittedly, I have almost no experience programming Pearl (total extent is editing a Unix script once), but damn, I'm left with no clue what Larry Wall was trying to say! Perhaps my imagination is simply too limited... But "Perl 6 is many languages"... "The “Kewlness” of Perl 6 includes a parser that uses stringwise "surreal" precedence" ... "Perl 6 has no “core”, pre-defined operators and support for user-defined operators." (The last two quotes aren't directly from Wall--and the second one has really strange/bad grammar. I'm guessing it means that all operators are user-defined? ...maybe the article is so confusing because the author has no clue what he's writing about....)

And also... first Wall says he wants to make Perl 6 easier to read, then he says this:
"The idea with Perl 6 is you start with a standard language and you can mutate it. As long as you follow that refinement process there isn't the problem of ambiguity. There is the problem of multiple dialects, but that will always be a problem."

I'm sure that's going to help readability a whole lot, allowing programmers to customize the language so that other programmers have that much less of an idea what's going on in their code....

Edited 2008-12-07 08:09 UTC

Reply Score: 5

RE: Confused
by Lennie on Sun 7th Dec 2008 09:40 in reply to "Confused"
Lennie Member since:
2007-09-22

I think the writer of the article didn't know to much about it either. Also Larry Wall wasn't clear enough, probably because most people there actually knew what he was talking about.

Perl 6 is based on Parrot, Parrot is a VM kinda like a Java VM, but for dynamically typed (script-)languages like Perl, JavaScript, PHP, LISP, Lua, Python, Ruby, etc. So Parrot is the part that can understand and run different languages.

With Parrot a language-syntax is defined in a definition file for the parser. So the language can be extended.

And I don't think the next version will break compatibility, the syntax of Perl 6 will be different, but Parrot will also understand Perl 5.

To make confusion full circle, Perl 6 actually has a formal language specification about what Perl 6 is, so there can be and are several implementations, one written in Haskel and one for Parrot. That's why there is also a Perl 6 test-suite to check the implementation.

Well, that's what I've come to understand about Perl6/Parrot.

Edited 2008-12-07 09:55 UTC

Reply Parent Score: 9

RE[2]: Confused
by Moochman on Sun 7th Dec 2008 10:22 in reply to "RE: Confused"
Moochman Member since:
2005-07-06

OK, that makes things somewhat clearer--it sounds like the Parrot VM is moving in the same direction of the Java and .NET VMs in supporting a wide range of languages.

I also get the part about the test suite--it sounds similar to the idea behind the Java test suite.

What I still don't get, though, is what Perl 6 *the language* actually is. Is it similar to Perl 5, and what are the differences? Also, what did Wall mean about dialects being likely? To me it sounds like every programmer will effectively end up extending the language into their own personal dialect, which would make code review by others that much more painful... But I'm not sure I understood correctly...

Reply Parent Score: 3