Welcome

gnat on 2001-03-23T06:07:13

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


to show that it uses references, objects, AUTOLOADing, and process control. Coming up with the axes would be the hard part, and would it just end up as another random set of bogus letters that Perl programmers would have to learn?



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