TPC5: Be a Better Programmer

gnat on 2001-04-18T17:11:46

(woohoo! Registration is open for The Perl Conference!)



There are a lot of different types of conference. Some try to be cutting-edge and research-oriented, while others are little more than trade shows. I've had a bunch of O'Reilly staff ask me where TPC and OScon fit in this continuum, and so I've been giving it some thought.



The guiding focus for me is that the information has to be practical. This rules out pure sales presentations and pure theory. If there's theory, then the applications (and the "how to apply") had better be discussed as well. The conference should be like Perl: a tool to help you do your job better. And, like Perl itself, the conference is a heap of fun while still being good for you. :-)



One of the themes that came out of the conference talk selection this year was "becoming a better programmer". What techniques, tools, or other knowledge will help me do my job better?



Mark-Jason Dominus's "Perl Program Repair Shop and Red Flags" tutorial will show you a few simple techniques for making your programs easier to read and maintain. By analyzing real world programs and pointing out the warning signs that say "something's wrong here" or "this could be done better", you'll learn to approach your programs (both old and new) with a more critical eye.



Michael Schwern, who stepped forward to take the Q&A position with perl6, will teach some "best practices" for software engineering in his "Disciplined Programming: Or How to be Lazy without Trying" tutorial. The first half is full of immediate benefits: how to write good tests, reconciling styles, writing testable code, rules of optimization, etc. The second half touches on project management issues, and plants the seeds for future benefits: smoke testing, how to hire good programmers, code reviews, skunk works, change control, and more. And if you've seen Michael before, possibly at a YAPC conference, you'll know he's not one to drown you in management newspeak. Schwern's a really down-to-earth guy and a lot of fun.



In case you think that all I ever do is shill tutorials, get off my case because now I'm going to shill some talks :-)



Schwern is also giving a couple of interesting talks: one on refactoring, a set of standard techniques for taking crappily-designed code and evolving it into a better design. I know from recent posts he's make that he's been working on some B:: tools for analyzing code, and they might make an appearance in the talk. In another talk, he'll be showing Pod::Tests, a module that lets you embed tests in your POD. This lets you have one file containing your code, its documentation, and tests to prove that the code works.



And in the Open Source track, there's chromatic's two talks on eXtreme Programming and open source. The first talk outlines the basic principles of XP, while the second discusses how XP might be applied to an open source project. I read the first XP book and was both enthused and skeptical, as I know many Perl folks were. How do you do pairwise development (pair up programmers, with only one typing) in a networked open source project? I look forward to seeing how he tackles that.



And those are only the general talks. There are a crapload of talks on regular expressions and the RE engine. Well, 3. Mark-Jason Dominus has a paper on a RE debugger, as does Michel Lambert. Mark will also talk about some of the nasty optimizations that go on inside the RE engine. This promises to be like those surgery specials on the Discovery Channel--grisly and stomach-turning, but you can't not watch. Hmm, I should probably have checked with Mark before saying that :-)



There are some cutting edge talks, though. Dan Sugalski's going to talk about the perl6 innards, Jarkko will talk about the latest Perl release, and we'll have hours of Damian Conway talking about his projects (step over to the Conway Channel for a preview).



And in other news, I just did a mail count. I've saved over 5000 messages while planning the Open Source Convention, and there are bound to be more to come. Yow!



--Nat