What projects are currently taking up your time in the programming world?
The Perl 6 design project has been taking up most of my time in the last
few years: working with Larry on redesigning Perl, and then
explaining our ideas to the wider Perl community. Another part of that
job has been experimenting with the new features we're proposing --
prototyping them, sanity-checking them, and then backporting many of them to Perl
5.
And, of course, my restless brain keeps coming up with new modules that aren't in any way related to Perl 6. For example, in the last few months I've released a module for simplifying interactive prompt-and-reply programs, a module that provides a (sanitized) #include-like mechanism for Perl modules, a module that makes it easier to write maintainable regexes, and a module that makes comments an active and useful part of your program.
Other than that, I have an international training business to run and I'm also busy writing a new book on best practices in Perl coding, which will be published by O'Reilly in the first half of next year.
What project, module written, piece of code or work in progress are you most proud of thus far?
The project I'm most proud of is undoubtedly Perl 6. It's going to be a huge leap forward for Perl. And within that project, I think I'm proudest of my work on the concept of "junctions" which I hope will make it very much easier -- perhaps even painless -- for ordinary programmers to use parallel programming techniques in Perl.
There are two modules of which I'm equally most proud. The first is Parse::RecDescent, because it has been of so much benefit to so many people and is now used in some of the most exciting fields of business and research, from Wall St to NASA. The other module I'm especially fond of is Lingua::Romana::Perligata. In contrast to Parse::RecDescent, it's utterly useless in a practical sense, but its concept and execution have an intrinsic elegance that seems to delight many people, both within and beyond the Perl community.
What are your thoughts on the Australian Computer Society's idea to license software developers? Do you think this will create better quality software with more accountability?
I applaud the idea. It's an important sign of maturity in Australian IT, a big step in moving from what is still often a "cottage-based" industry to a more professional structure.
But whether licensing will result in better software or more accountability...of that I'm not so sure. Certification ensures that all registered practitioners have a minimal set of core skills and knowledge, but that doesn't necessarily translate into the experience, the understanding, or the talent required to solve large real-world problems any better.
PHP seems very much in vogue now compared to Perl for Web programming. Do you see Perl gaining more popularity in this area again or should Perl and PHP not be compared?
PHP's popularity for Web development isn't at all surprising. The language is
tremendously well optimised for those kinds of programming tasks, and
the implementation is very easy to set up. Perl, being a general-purpose
programming language, is nowhere near as highly specialised for Web-based
development. Comparatively few people seem to need the extra power that Perl
can provide (e.g. the enormous resources of CPAN), so PHP's ease-of-use wins
out most of the time. As it should.
No matter how much I enjoy programming in Perl, as a computing professional part of my responsibility is to select the right tool for each job. My earlier comments about the impossibility of having a single perfect tool for every design task apply just as much here as well. There is not (nor could there ever be) one single perfect implementation language. Every programming language is optimised for something, which means that every language has to compromise on something else: speed against flexibility, readability against expressiveness, standardisation against portability, portability against native optimisation (i.e. speed).
Unfortunately, many programmers only ever learn a few languages; increasingly, just a single language. Apart from the well-known consequence that "when all you have is a hammer, every problem looks like a nail", this high degree of specialisation also promotes the perception that the various languages are in competition, because as a specialist programmer I have to compete with specialists in other languages. But, to the multi-lingual programmer, languages are just tools, to be selected and used according to the task at hand. Saying that languages compete is as bizarre as saying that hammers and chisels and saws are in competition. For what? The carpenter's mind-share?
So I have no problem whatsoever with PHP being more popular than Perl for Web development. Or, for that matter, with Perl being vastly more popular for system administration tasks. As long as I'm allowed to continue using both of them for the jobs to which each is best suited.
As a professional instructor and senior lecturer at Monash University is there a golden rule or piece of advice you give to programmers?
I think the single most useful piece of advice I have tried to pass
on comes originally from Brian Kernighan:
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."
That makes it imperative to write the code as simply and as correctly as you can in the first place. That's what I try to teach.
What will you be talking about at the inaugural Open Source Developers Conference?
I'm really looking forward to telling the Australian Open Source
community about Perl 6, especially about the extensive new OO features
we're adding to the language.
I'm also excited to have the opportunity to talk about my minimalist approach
to developing user interfaces and software APIs: a philosophy I call
"Sufficiently Advanced Technologies". It should be fun.








Leave a comment