Why? Because I plan on rewriting every class I have in Perl6 as soon as possible. I hate Perl5's OO system. With a passion.
I have this same view, only moreso. Not only do I
fully intend on rewriting all my Perl OO stuff in
Perl6 the minute I can get my hands on a working
Perl6, but I have been actively avoiding writing
some OO stuff that I would really like to write,
because I don't want to write it in
Perl5. I choose other paradigms. I
use closures. I just put stuff off; if I can
manage to procrastinate long enough, Perl6 will
save me hundreds of hours of the needless painful
toil that would be required to adapt the woefully
inadequate Perl5 OO model to implement
certain
things.
And it isn't just the OO model that's inadequate,
either. If you hang out for two days in
comp.lang.scheme (for example), you'll discover
that Perl5 only supports very limited aspects of
the functional programming paradigm. As a
programmer totally sold on the value of the
multiparadigmatic approach to programming (one
of the chief advantages of Perl over other
languages), I definitely look forward to having
a broader range of functional programming
functionality at my fingertips.
And then there's the paradigm that's more-or-less
the defining native paradigm of Perl, contextual
programming. Kludges like "0 but true" only go
so far; sometimes I need to be able to return a
value that's "0" in string context but true in
boolean context. And I'm tired of worrying about
whether my numbers will overflow; strings don't;
numbers shouldn't either -- they should automagically
promote themselves to bignums as necessary.
As a programmer, I eagerly await these features.
The incremental improvements in Perl5 have mostly
not interested me; the differences between 5.005
and 5.8.4 are to my way of thinking mostly not
worth upgrading, and so I've only bothered when
I upgraded whole systems, otherwise leaving an old
version of Perl in place -- but when 5.6.0 is out,
I'll be installing it (alongside of, not in place
of, Perl5) the instant I can get my grubby little
fingers on it. Threads? Who cares? We already
have a perfectly cromulent fork builtin that doesn't
create "thread-safety" issues. Unicode?
I live in a small city in Ohio; Unicode is right
up there with unicorns and fire-breathing dragons
on the list of things I read stories about but
don't actually have to be concerned about. The
defined-or operator would be really nice, but to me
it's not worth compiling my own perl and sacrificing
all pretenses of compatibility. (Maybe it would be
if I made extensive use of tied variables or lvalue
methods that are not idempotent to evaluate, but
I don't, so it's not.) But Perl6? I drool in
anticipation. I want it even more than I wanted
Emacs 21, when Emacs 20 was current -- and I compiled
my own copy of 21.0.105 before it was technically
released, and this was before I was really comfortable
compiling software from source. Oh, yes, I'm looking
forward to Perl6. I lay awake at night thinking
about it.
As far as selling management, I'm not convinced it
will be a major problem. If management's already
sold on Perl and the developers are sold on Perl6,
they'll pitch it as a major and important upgrade
to keep the company current with technology, and
enough managers will buy that pitch that Perl6 will
gain the momentum to become a dominant market force,
at which point the more reluctant managers will start
seeing stuff about it in trade magazines and whatnot.
(When hosting companies all advertise that they
provide Perl6 as a major feature, it'll get noticed,
even by people who aren't in the market for hosting.)
I think the hard part is selling a large percentage
of Perl programmers on learning Perl6 and writing
their code in it. There will be some early adopters
such as myself, but I suspect a lot of otherwise
very sensible people will resist learning Perl6
for months or even years, just because it breaks
some Perl5-based expectations. (I must admit, the
first time I saw the Apocalypse on regexes
I wanted to shake
the author and ask him what drugs he was on; later
I read it again and started to understand better...
I do still think making character classes harder
is a mistake (not because of [A-Za-z] but because
of amazingly common stuff like [0-9 .]),
but rules more than make up for it.) I don't know
a solution to this problem, other than word-of-mouth.
;$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}}
split//,".rekcah lreP rehtona tsuJ";$\=$;[-1]->();print
| [reply] |