Jeff,

Greetings all. I've followed perl6 development since the beginning, and have tried to stay at least somewhat informed along the way. I'll confess to being puzzled at some of the design decisions, but knowing my own limitations have had faith in @Larry to do the right thing.

This topic would be m,ore appropriate for perl6-advocacy, if it existed, but rather than pestering the language designers with it, I thought I'd look for the user perspective on it.

As one of the lead perl programmers here, I've been tasked with introducing some of the changes to people. Something short of sending them off to read the Synopses. While I can discuss features like MMD, strong typing, Roles and the like, you don't get too far before you start introducing the new operators, and the fact that we've got Unicode operators (yes, with ASCII equivalents, but they're terrible IMHO).

I have one coworker known for her stubbornness. I've been hit with the following several times, and honestly don't have a good reply:

"My bigger concern with the Perl6 syntax is that they expect humans to write it. This is a similar problem that Forth and Lisp had. You see how widely used
those are now..."

Since I came to programming after the days of Forth and Lisp being prominent languages, I can't dispute nor concur with her statement. How would you respond?

Well.

Perl5 is hard to read, and so will Perl6 be. That (mostly) comes form the gazillion tons of syntax sugar we have, and from the lots of DWIMmery. So yes, your coworkers are partially right, at least IMHO: Perl6 syntax is way overloaded, and that can give you some headache. I do not like the unicode operators, either, for example.

However, a par excellence programmer, who actually *writes* code, might never experience issues like this. I mean you do not have to use what you do not need to use. How many here know, for example, the exact syntax in Perl5 regex for, say, "zero-width look behind assertion" without looking it up in the man pages? :) Perl5 is like three languages combined into one. Perl6 is like 5 languages combined.

A mathematican will love to use the sum sign (http://www.w3.org/TR/MathML2/glyphs/022/U02211.png) in his Perl6 program, for example - but you don't have to. You will never even see it. And so on and so on. Yes, readibility might suffer, when you want to "decode" code someone else wrote - however, at this point one should consider that this overloaded syntax also mean much dense code, which *usually* means that the code you are looking at can fit to one screen, which might worth more than some more understandable code that fits twice as much. Just compare
my $a = $b . $c;
to
String a = (new Integer(b)).toString().concat((new Float(c)).toString()); /* I don't do Java, so this is probably wrong here :) */



Just my two cents.

- Fagzal




Reply via email to