[Israel.pm] Perl 6 Critique

Shlomi Fish shlomif at iglu.org.il
Fri Feb 20 09:56:36 PST 2004

On Thursday 19 February 2004 00:48, Yosef Meller wrote:
> Shlomi Fish wrote:
> | Check:
> |
> | http://vipe.technion.ac.il/~shlomif/perl6-critique.html
> |
> | for a criticism of the way Perl 6 is headed and why it isn't good for the
> | people.
> |
> | Comments, suggestions, corrections, and much more importantly - flames
> are
> | welcome.
> I won't flame you, if you won't flame me :)
> But I will comment, by all means:
> I have on my computer two operating systems: RedHat Linux 9 is my
> primary workhorse, and I also have win98 installed. Ask me why. Come on,
> ask me...
> Ok, since you've asked:
> It's true, windows 98 sucks. Deeply. The only sollution for making it
> better is rewriting it in Finnish (he he). But there's one "killer
> application" that keeps me on it - it's called QText 8, and it's
> definitely the best Hebrew word processor on the face of this Earth
> despite getting old and lacking in features.
> In fact, when I first started to use Linux I did it only so I could run
> a domestic web server. I did everything else on windows and only when I
> slowly learned more and more about Linux (and quickly fell in love with
> it) I moved more and more of my work to it.

Right. I expect Windows code to be used for years to come in a similar fashion 
that people still use DOS, CP/M, Netware, Mac OS Classic, VAX VMS, and many 
other operating systems that became depracated. That's still not enough of a 
reason to believe that anything that is newer is better than the older one.

For instance, UNIX is over 30 years old now; Windows NT had been around for 
about 10 years or so. Which one do you think is better? I think NT is a step 
backwards in operating system design. It is getting better in time, but UNIX 
and Linux are still much nicer. (and becoming better). 

> Lema Hadavar Dome? (in short - to the perl5->perl6 transition)
> You say in your article that perl 5 has a huge user base and codebase
> that can't be left behind. You say that moving the perl community to
> perl 6 will pull the rug under the feet of countless milions, and you
> make it sound like Larry Wall in person will run mke2fs (that's format
> c: for you Winnies) on the hard-drives of CPAN the day perl 6 will be
> released.

I did not say or imply it. I know Perl 5 will persist and not go away. But I 
still think the Perl 6 initiative is a bad idea, as it will amount to 

> The transition will of course be slow. Even very slow. Some modules will
> be left behind. We will suffer code casualties :)

> But does that justify dragging around obsolete code which is said by
> some to be almost too complicated to maintain? Should we have to live
> with all the quirks that will never be repaired because some scripts are
> ~ counting on them? 

"Obsolete" code which is very complicated to maintain can easily be refactored 
or revamped to make it much easier to maintain:


Even ESR in "The Cathedral and the Bazaar" says he always prefer to start from 
something someone else had already written.

> Sometimes writing from scratch is very healthy. 

Sometimes, but usually not.

> Now, when I moved from win 98 to linux I broke backwards compatibility.
> So much so that I still keep it on the side so I could run QText 8. I
> will keep doing so untill Dvir Software release converters for
> OpenOffice (which will never happen). So should I have not moved to
> Linux? Should I have moved to Windows XP instead?

The Analogy is wrong. Windows sucks badly from many reasons. Perl 5 is very 
good and people love it and swear by it. It's like saying "ANSI C is a 
horrible language, so everybody should rewrite their code in Ada 95 or 
Modula-3.". Is it going to work? No, ANSI C has its faults, but it's a nice 
language which people like a lot. And it's practically everywhere... 

So is Perl 5. Granted, it has its faults. And revolving everything to Perl 6 
is going to do the world little good.

> Now, analogies aside, perl 6 will offer very exciting features, while
> still keeping the perl 5 spirit. At least that's what the Exegeses say.
> I personally am eager to see it in work (and in fact already have parrot
> 0.0.13) and I'm sure I'll find the time to convert my few modest CPAN
> distros although I'll probably be quite busy starting next week. A quick
> review of what's planned on Perl6:
> * A unified object system (you talked about it in your article).
> * Changing sigils so that they are accessible to beginners ("A sigil is
> for life, not just for value type" - Exegesis 2)
> * A bunch of new operators (I esp. like the 'leftmost defined' //
> operator). * Lazy evaluation of ranges and input reads.
> * new control structures
> * A decent error management mechanism.
> * whole new regex engine with support for complex grammars
> * compile-time language, finally!
> * some other neat stuff.

These things are very nice. However:

1. They can be built into Perl 5 incrementally without breaking too much 

2. Perl 6 will also be vastly different than Perl 5. Many times compatibility 
was broken on purpose, without a good enough reason. Most people will lose 
their mind if they have to maintain codebases in both Perl 5 and Perl 6 (or a 
mixture thereof). So my guess is that people will simply just stick to Perl 

> It's true that some of these things can be implemented in perl 5 using
> pragmatic modules (that's why the current app I'm writing has more than
> 25 use statements). It's also true that the perl5 language is constantly
> being improved. But can't you see how messy this all gets?

It need not get messy. If you wish, you can submit a patch to the perl core 
implementing some of these features there. Or create top-level directives 
that will do things better.

> Also consider that some of these modules are Avoda Ba'einaim, e.g. when
> you 'use constant' it's the same as creating a 'constant subroutine' as
> the docs call it. A simple 'use base' will get quite a lot of code
> executed (try `perldoc -m base`). Away with that mess I say! Let me have
> it built in!

I think "use constant" in PONIE can be implemented much better. And so are 
many other pragmas. Or we can break compatibility in the old perl5 codebase, 
and implement better things. 

As for "use base" - who cares how much code is executed? It just works. Even 
"#include <stdio.h>" will do a lot of junk.

> Conclusion:
> 1. Although perl 5 has a lot going for it, and a lot of users who will
> find it quite hard to move, this should not be a deterrant from starting
> a (possibly slow) move in the right direction.
> 2. Rewrites are good. They just take a lot of energy.

Rewrites are almost never good. And I was not referring to the Parrot rewrite 
(which I have nothing against). I was talking about the Perl 6 redesign which 
I heavily disapproves of.

> 3. Abandonware will happen. We can afford it.

Well, the Parrot dream is that old Perl 5 modules can be used as is from Perl 
6. I have heard someone who was heavily skeptical about it. (he said that in 
creating bindings for high-level languages he spent most of time on making 
them behave in their native conventions and not as much on creating the C 
callbacks themselves). I just think that most people will not even think of a 
mixed Perl 5/Perl 6 environment because it would be too downright confusing. 
(not to mention that the Perl 6 equivalent of the Camel book will probably be 
the size of the Encyclopedia Britannica).

> 4. The promised virtues of perl 6 is in my eyes enough of a draw to pull
> the weights in 6's direction. The more it will deliver on its promises,
> and the fastest, the faster and swifter will the move to perl6 actually be.
> ---------
> An aside for the unweary reader: backwards-compatible techs we're stuck
> with:
> * The Intel x86 processors.

I expect the Linux revolution to change that. Once everyone use Linux, porting 
a software to a new architecture would be a matter of recompile. Then we'll 
see a proliferation of alterantive architectures that will try to grab as 
much marketshare as possible from Intel and AMD.

And, BTW, I heard that now Mac OS X-based computers sales in the U.S.A account 
for %50 of the computer sales.

> * Treeware (I actually like books, don't get me wrong here).

> * <FONT> tags (how thinner would your browser be if it only needed to
> understand DIV, SPAN and CSS ? )

I never use <font> tags in my sites. I expect browsers ten or twenty years 
from now not to support them at all.

> * Brit Mila ("It's barbaric but my child IS a Jew!" I hear you say. And
> you're right too.)

Circumcision was shown to be very hygienic. I fully support it. 

> * Hebrew (and I'm not going to speak anything else, I'm fanatic about it).

Hebrew is a very nice language. I think we should continue speaking to 
preserve our national identity, and differentiate ourselves from the 


	Shlomi Fish

Shlomi Fish      shlomif at iglu.org.il
Homepage:        http://shlomif.il.eu.org/

I don't believe in fairies. Oops! A fairy died.
I don't believe in fairies. Oops! Another fairy died.

More information about the Perl mailing list