Hi, folks. I've started a weblog on the O'Reilly Network, but I also wanted a weblog on use.perl.org, because it felt weird to talk about Perl stuff away from a Perl audience.
What kind of stuff do I want to talk about? Mainly the
random thoughts I have every day.
I can't emphasize enough that in this column I generally
will not be speaking ex cathedra
about Perl 6, I'm just asking for your feedback on some
crazy ideas. I'll be pointing out cool things, or
suggesting things that are either stupid or smart, I just
can't tell which.
For instance, graduated levels of Perl syntax. If you
want to be a Perl programmer, you must know a whole
lot of Perl to be able to read other people's code
and/or fix it. That sets a high bar. It also scares
some companies, who worry that the code left behind by
their Perl hotshot programmer will be unmaintainable
except by a God.
A graduated system would let a programmer say "this code
is written to B level, anyone who knows B level can
maintain it". I'm picturing three levels: C is beginner,
B is regular programmer, and A is advanced.
I can hear your objections already! (a) it's certification,
which is bogus. (b) any such system would necessarily be
arbitrary ("sort is B? sort's easy!"). (c) there's more
to programming than knowing random language features.
My response to (a) is that this is not certification. It's
just a categorization of language features. I'm not
suggesting anyone try to "certify" a programmer at a
particular level. Anyone can claim whatever competence
they want, as they do now. The point is to classify
programs, not programmers.
(b) gets my full nod. Yup, it's arbitrary. But I think
it covers the 80/20 rule. Most bits of Perl are easily
categorized into easy, intermediate, or hard. There might
be some arbitrary picks, but I think that's more than
offset by the value.
(c) is true. I have no sly rebuttal, just agreement.
I don't think this has to stop a categorization, though.
Such a beast would still be useful.
Another question about it in my mind is whether a
checklist of features, kind of like the Geek Code,
wouldn't be better. That way you'd describe a program
with a string like:
roAp
I want to know what you think. Give me a call. My
number is ... well, just hit the [Reply] button and leave
the phone alone :-)
Nat