Main Menu
· Home

Things to do...
· Visit the forums
· LXF Team Blog
· Edit the Wiki
· LXF Newsletters
· Search this website
· See latest News
· Sections
· Submit a news story
· Top 10 lists
· Other sites to visit

Linux Format Magazine
· Subscribe to LXF
· Back issues
· Contact us
· Write for us!

Nat Torkington (LXF 86)

The full text of the Nat Torkington interview, some of which we couldn't fit in the magazine...


Linux Format: Could you tell me what your role is at the Perl foundation?

Nat Torkington: I am on the board at the Perl foundation; we oversee the activities that the executive director sets up. We advise and connect with the appropriate people where necessary.

LXF Do you get the chance to do much hacking?

NT I didn't used to. My job at O'Reilly would keep me very very busy, but this year I've started carving out more and more time to get back in. So I taught myself Ruby, and I'm loving that. I'm working my way through programming contest puzzles - some of them are arithmetic, some are graphs, some of them are pictorial, so it's just fun. Having fun with code again.

LXF Do you do much with Perl?

NT All of the conference stuff that I do is supported by a whole bunch of tools that I wrote in Perl. So for example when I lay out the sessions at the conference we have about 170 speaking spaces that I need to fill, so that's fourteen rooms over five days, and all of that - the gridding, the laying out on the grid, and the sync of that grid with the database is all done through my Perl tools.

LXF So despite learning Ruby these are things that you'd still prefere to do with Per

NT Well, these are tools I wrote a while ago, but yes, I'd still prefer to do that using Perl. If I had to do it all over again, it would depend on whether I was doing in for speed or for fun. It would take me longer to learn how to do it in Ruby - there are things in there like CGI scripts that I haven't played with yet. Whereas I'm perfectly comfortable with that in Perl.

LXF How did you get into Perl in the beginning?

NT I ran the first web server in New Zealand. I was messing round with the web before there was a web, while it was still people shipping information around using Gopher, and Archie.

LXF Yeah, I can remember that.

NT That was some fun stuff. Then I caught wind of the httpd web serving browsing world, back when there was just a line-mode client from CERN, and the stuff that Tim Berners-Lee had written was what we were using, and I was like: "Great, this is so much better than Archie. There's not as much information on there yet, but it's going to be great." And I convinced the university to use it as the basis for their campus-wide information system. Which is what we called the website before there was a web.

LXF This was what, '92?

NT Ninety.... end of '92 I got the job, so end of '92 onwards, and I'd been playing with it since... '91 I think. End of '91, start of '92. And the campus-wide information service was running what was effectively the first website in New Zealand, and that was for outside, external use as well. That led me into wanting to do dynamic web pages, even though we didn't think of them...

LXF Even at that time?

NT Well I didn't even think of it like that, but that was exactly what I wanted to do.

LXF It took eight years for the idea to even dawn on me.

NT Well, the classic need within a university is the roster - to be able to search for somebody's name and get a list of results. And the only way you could do that in those days was by running a web server in Perl called Plexus. So I had to learn Perl in order to do this. And I learned Perl from Programming Perl, the original one, the pink camel, and it was fun. I'd learned C from the Kernighen and Ritchie book [The C Programming Language], and it was a lot easier than C. [Laughs] much much easier than C. So I got into it from there. When I moved to the US in 1995 to be with my wife I got a job at an ISP as a systems administrator using Perl, but quickly started doing their website construction business. Building websites for newspapers, for example, to take their content, reformat it and put it on the web as HTML with a browsable, searchable article archive and a front page.

LXF So you were still doing a lot of Perl?

NT Exactly. While I was in America (I was living in Colorado, about an hour away from Tom Christiansen, a Perl God) and suggested: "Hey, sounds like you need help with the Perl FAQ. Happy to work on that with you." And that led into the Perl Cookbook. And that was my apprenticeship. I though I was pretty good at Perl, I thought I knew what I was doing, But sitting down with the master tought me all the tricks that I had no idea existed - and the bits where I was right by luck. And the bits where I was wrong but didn't know it - he really set me straight. So when I came out of the book I really did know Perl inside and out.

So I worked as a trainer, and got a job in 2000 with O'Reilly as a book editor. And at that point I stopped doing quite so much Perl.

LXF So you were able to see the community grow up aroung Perl. What was the biggest catalyst for growth?

NT Without a doubt CGI. When Steven Brenner wrote cgilib.pl and cgilib.pm, it made it very easy for people to make these dynamic websites. It was the PHP of its time. And that's what got thousands, tens of thousands of people into programming. I don't want to learn to be a programmer, I just want to do some programming ask. And so they were playing with Perl, copying and pasting, cutting bits out of it, using bits from other scripts and slowly getting the hang of what they were doing. And that was the rationale of the Perl Cookbook: these people wanted immediate answers to their questions. Instead of just giving them the immediate answer, maybe we can teach them a bit of Perl along the way and make them a better programmer. So we did that.

LXF: Do you get the chance to do much hacking?

NT: I didn't used to. My job at O'Reilly [he is an editor] would keep me very, very busy, but this year I've started carving out more and more time to get back in. So I taught myself Ruby, and I'm loving that. I'm working my way through programming contest puzzles, having fun with code again.

LXF: You studied and taught at the Victoria University of Wellington, New Zealand, back in the nineties. Is that how you got into Perl?

NT: Well, the classic need within a university is the roster - to be able to search for somebody's name and get a list of results. And the only way you could do that in those days was by running a web server in Perl called Plexus. So I had to learn Perl in order to do this. And I learned Perl from Programming Perl, the original one, the pink camel book, and it was fun. I'd learned C from the Kernighen and Ritchie book [The C Programming Language], and it was a lot easier than C. [Laughs] Much, much easier than C.

LXF: Do you think that PHP has stolen any of Perl's thunder?

NT: Absolutely, yes. What it did was provide an easier way to create dynamic web pages, and the people who had been coming into Perl because of dynamic web pages are now going into PHP. But that's fine. I don't think there's a whole lot of rivalry between those languages any more.

At the top of the food chain, the creators of those languages, like Guido [van Rossum] from Python, Rasmus [Lerdorf] from PHP, Larry [Wall] from Perl, they all respect each other, they all talk, they all like what the others are doing. They all like one another and hang out, and it's not a competitive thing at all. Sometimes the users can be competitive, the programmers can be competitive, but even that's getting less and less.

LXF: Do you think that's peculiar to the open source kind of world?

NT: Do you mean the competition, or the diminution thereof?

LXF: I mean the respect, the openness. You learning Ruby, for example.

NT: I think it happens a lot in the technological world as well. The AT&T Bell Labs guys who invented Unix and C and so much of the technology that we now take for granted, they're just as open to smart guys and smart systems built by IBM, built by Linus Torvalds, built by anybody. If it's a clever piece of engineering, if it does something, it gets respect.

LXF: How close are we to a release of Perl 6?

NT: I think the joke for a while was that it would be Christmas. We're just not going to tell you which Christmas.

LXF: I imagine you're asked this every single time you talk about Perl...

NT: Right. It'll be done when it's done, and if I give you a date, I'll be a liar. Either it will be earlier or it will be later, I can't win either way.

LXF: Does there need to be a release?

NT: So you're thinking of it as some sort of aspirational ideal - if we never release Perl 6 we'll just get people continuing to build it.

LXF: It seems to be doing OK as it is - there are plenty of books on it.

NT: Well, you can play with Perl 6 right now. You can go play with the Pugs system, which is the Haskell-based Perl 6 interpreter. It's an amazing system; Larry is actually using it as his main platform for figuring out the rest of the language. So when Audrey [Tang] built Pugs, Larry was able to say, "All this stuff that had been floating around in my head, let's actually write some test cases for it." And he started to realise, "Whoa, that's a bit difficult in real life, how can we make that easier?" And when it became tangible and experimental the design started to settle down. It's now at the point where people are also porting some of that Perl 6 functionality back into Perl 5, and it's really kicked the Perl 5 development community back into gear again.

LXF: I have to say I don't know anything about Haskell. Why was it chosen?

NT: I don't know a thing about why Haskell was chosen, you'd probably have to talk to Audrey, but I know that it has proved exceptionally good for the task. I was talking to Audrey and Max [Maischein, Perl hacker] last night, and she was saying that it's so good that she would use it for any project in the future.

LXF: It looks fascinating, I really like the idea of it.

NT: It's a bit like Perl 6. Perl 5 was amazing because it brought technology from academia into everybody's hands, so a lot of people got their first exposure to - for example - closures in Perl. It took a long time for Python to have closures that were true closures. Perl programmers were able to play with them and learn about that aspect of computer science. If you're a Lisp programmer that's your bread and butter, you grew up with that stuff. But if you're a programmer coming at it from the ground, that kind of non-obvious concept that wasn't built into the language, you never encountered it.

Perl has always done a great job of making available the concepts that are one step beyond the current state of what the mass-market programming languages are doing. And Perl 6 is continuing to do that. I think Haskell is probably one step beyond Perl 6 at the moment. There are some concepts in there that are just too scary for Larry at the moment.

LXF: So the fact that Pugs uses Haskell is not that important in itself?

NT: No, absolutely not. Haskell turned out to be an absolutely amazing, rapid development platform for the concepts of Perl 6. So Pugs was written very quickly because it was written in Haskell. If it had been written in C, we'd still be trying to get to Hello World.

LXF: Is the increasing importance of object-oriented functionality a response to the way that people want to program, or does it signal something more - a change in direction for Perl?

NT: Perl has had objects since Perl 5 came out - I think that was '93, '94[Perl 5 was released in 1994] - so Perl has always had the ability to create objects and call methods on those objects.

LXF: It's becoming more formalised, though.

NT: It's becoming more formalised, exactly. I learned object-oriented programming [OOP] through Perl. I had done some object-oriented programming in my university classes, but none of it really stuck.

LXF: You didn't go from C to C++ then?

NT: No, I was the last year we did C, then they jumped straight into Java. We did Pascal in our first year, which is even more barbaric.

LXF: We did Modula-2.

NT: We did Modula-2 in our second year, aren't we fancy? We used the Metrowerks C Compiler, and it was ghastly, dreadful software.

Perl has always had OOP. One of the lessons we learned is that it has to be easier. OOP is one of the higher-level concepts that people talk about now. You can't emulate it, you can't break it down into smaller pieces and let people assemble objects from those smaller pieces - which is what you have at the moment in Perl, where a method is a function, a data structure can have a class associated with it, and that makes it into an object. Right now it's very visible how the inner working are. In Perl 6, it says, "Take objects and make them first-order, first-class citizens, so that you can program directly in objects without having to worry about the inner details." Though Perl being Perl, the inner details will be there if you need them.

LXF: Would you use objects as a quick script, or would you be expected to use Perl as you always have done?

NT: You can still use objects as a quick script in Perl 5 - a lot of the functionality now is exposed through objects. For instance, the quickest and easiest way to do socket-based networking, TCPIP stuff, is to use the I/O socket class. One line gets you the object that you can then print to or read from just as over a file handle. And it's easier than doing it the old-fashioned Unix way where you construct a socket and you associate protocols to it, you bind it to a port and... yeuchhhchchch.

LXF: I was going to ask Alison [Randall]: where does Ponie fit in?

NT: Ponie was a really important lesson in the internals of Perl 5 and the internals of Perl 6 and how to make them play together. The Perl 5 people have been borrowing steadily from that work and the Perl 6 people have been borrowing steadily from that work, to the point where we think: "There's not much point having a separate project. Let's just keep the Perl 5 and the Perl 6 stuff in parallel." And so Ponie itself won't continue as a separate project, but all of the work that's been done is being folded back in to either Parrot of Perl 5. It was really good for us as a glimpse into the future, the different mindsets between Perl 5 and Perl 6, and how they're going to play together in the future.

LXF: I've read a lot about how Perl 6 is being driven by the community. Other than in terms of making the whole process a lot longer, how has that changed things like ratifying standards? Has the effort been worthwhile in the fact that it's community-driven rather than being driven by just one or two people's ideas?

NT: It's hard to say. It's hard to answer because there is no other way to do open source software.

LXF: But it's a transition for Perl.

NT: The big difference for Perl 6 was that we were trying to get away from the squabbling that had been in the Perl 5 'port this' list in the late nineties. Some people say that we solved this problem by drawing all the crackpots to the Perl 6 design process. I Iike to think that we had a calming influence on everybody. The status of the Perl 5 and Perl 6 mailing lists is that both are extremely healthy and mature now. The problems that plagued the 'port this' list in the late nineties just aren't there any more.

LXF: Because people feel like they've got a role to play in Perl 6?

NT: And they feel like they can see where things are going, they know who to talk to, they know that their questions and their comments are being listened to and acted upon. There was a bit of... [pauses] I've been thinking a lot about open source projects. I think that every open source project has to deal with attrition. Programmers come, programmers stay, programmers leave. And I used to think that was a bad thing. I remember the first time I noticed it I became really worried that the people who had been pushing really hard to get version 5.004 out were gone by the time of the 5.005 release; they weren't contributing at all. I thought: "We have a problem with consuming people and burning them out like this." But then by 1998 I was realising that if people don't leave when they're ready - if people don't leave when they've made their valuable contributions - you end up with people who have no valuable contributions to make. And that's far worse. You really have to accept that people will come, people will leave and that's healthy. A sign of disease is when nobody does anything and everyone talks and harps and nags.

We had a problem in Perl 5 where there were what I thought were a lot of oldbies, not newbies. Open source is often pitched against newbie participation, and our problem in Perl was that we had a lot of oldbies who hadn't left yet. I'm happy to have said, "I'm done, I'm walking away. I'm happy to help if you need me, but I'm not going to stay on the mailing list, I'm not going to pipe up with every opinion that I have, I've stopped doing things, I'll step back." I think that was needed.

We've got a much healthier community now than we had in the late nineties. It's been rough getting there, but I love the energy we're seeing now.

LXF: That's a really good point, because I've been involved in projects and you do just naturally get bored with them, even though you still love them.

NT: And the worst thing you can do is stick around and impose your 2006 ideas on a 2009 project. Open source is developers scratching their itch. And if it's not your itch you're scratching, you're probably not doing a very good job of it, and your opinions probably aren't as relevant as those of people who are scratching their itch.

LXF: Can I just ask you a bit about OSCon, which of course began life as a Perl conference. How much effort do you put into it?

NT: A lot. I get a couple of months off after OSCon in which I can recharge, but by November we're writing the call for papers again. February we are selecting the papers, by March...

LXF: Can anyone contribute an idea?

NT: Absolutely. It's an open call for papers, so anybody can submit a talk proposal or a tutorial proposal. I have a programme committee who I work with. They are experts in Linux and Java and Perl and Apache and Python and all the topics that we cover, and I get them to pick the best papers and the best presentations.

LXF: So it's all peer-reviewed?

NT: After a fashion. Ultimately I get to be the evil dictator. I get to say, "That's great but I don't want four tutorials on almost identical topics." Tutorials are the scarcest space that we have after keynotes, and I try to make sure that we have a healthy balance and a healthy mix.

LXF: How much is driven by the sponsors?

NT: Very little. We try to keep a very clean editorial line between the technical programme and the sponsorship side of things. For example, I don't sign sponsors, I don't work with them on that stuff. If they... our sponsors get the products and services track, in a programme, which is different from the editorially-selected stuff; it's labelled 'products and services' for a start, which is a pretty give-away indication. If you are a top-level sponsor you get a keynote spot, but I have to be able to talk to the person who's going to give the keynote and verify that they are in fact going to be interesting, relevant and not marketing. That's a policy that's [working] really well.

I've been at conferences with significant blowouts in the sponsorship speaking space, and we had one or two of those ourselves in the early days. This has worked a whole lot better: being able to talk to people and say: "Let me help you with the audience, let me help you with the way that your message is coming out so that you don't have 15 minutes of hostility."

LXF: The corporate speakers can stick out like a sore thumb!

NT: Exactly. I've sent people back and said, "Can you get me a better speaker than this? I don't want to inflict somebody this boring upon the audience!"

LXF Is there a theme that you go with, or are there any kind of ideas...

NT Loosely, yes. This year's theme was Opening Innovation, so we selected the best topics that were interesting to us, representing the new stuff in far more weighted towards the new stuff in open source than the established. We still covered the important established projects, but we covered... video processing, for example, the Kamaelia project from the BBC.

LXF I'm interviewing him later.

NT Michael's a great guy, and it's a wonderful project. Be sure you ask him about the macro system.

LXF I'll write that down actually. It's funny that I've had to come half way across the world to interview him.

NT There's a guy from New Zealand who I only meet at O'Reilly conferences every year. He came to Web 2.0 last year and OSCon this year... some day we'll have to hook up, but we live in the same country and travel across the world to see each other.

LXF I don't know if I interrrupted you there - you were talking about the theme of innovation.

NT Yeah, so we pick the best ones that represent innovations. At the conference we always try to look at the one-year, two-year period for the information, so it has to be immediately actionable information that you learn in a session. I don't want people to come along and hear something in a session that they can't act upon. So for that reason... people ask me, "Can I talk about my company's product?" You can if it's open source; if you're going to talk about your closed-source product you can bugger off - we can't immediately act on it. And if you're going to talk about technology, I don't want to know what technology is going to be like in 2020; I don't care about your projections of open source's dominance in the year 2015. What I care about is what do I tell my boss in 2007 when we start setting budgets. What should we be looking at, what should we be exploring? What do I come away with and say to my MySQL guys, "OK, this is thing that we've got to do? This is what I learned will save our butts."

LXF Really proactive stuff, I guess.

NT Yeah, it's immediately relevant information. That's what I try to be able to present at talks.

LXF Do you have any particular highlights that you're looking forward to?

NT Do you have a programme there? It's now become too big for my head...

Damian's talk tonight [Damian Conway] is going to blow my mind, I can't wait. Let me have a look here... We've got a lot of Ajax and JavaScript here, we've got a lot of back-end, web application, web framework kind of talks. I'm really excited to have Avi Bryant, who wrote the Seaside framework. His is Smalltalk based, and it's fascinatingly different from every other web framework - there are just so many different ideas.

For the same reason that Ruby's unique nature made Rails what it is, Smalltalk's unique nature makes Seaside what it is. And he's widely regarded as the genius guy on the edge of this work, so I'm really happy to have him here.

LXF I don't know anything about it.

NT Ah, well you should come to the session then! I've got Adrian Holovaty from The Washington Post, and he's a fascinating guy. He describes himself as a journalist for software. So most journailists write words to take ideas and the public information and get them out to people. He writes software to take ideas and information and get them out to people. He's the guy behind the Chicago Crime website, which really lets you get into crime. At The Washington Post they let you research the votes of every nationally elected representative. You can subscribe, for example, to an RSS feed of a given senator's votes, so as soon as your senator votes you can find out and hold those buggers accountable. It's really excellent, bringing democracy closer to the people. And that's classic journalism stuff; letting people know how the people you voted for, voted. And he's doing that with software, not words. Fantastic stuff.

So his will be a really interesting talk. I've got him keynoting at EuroOSCon on the same subject.

LXF How much correlation is there between OSCon and EuroOSCon? Do you organise that as well?

NT Yes, I organise that as welll. This year we have Nikolaj Nyholm, who does reboot as a coach area, at the reboot conference. And it's taken a turn to encompass more emerging technology areas as well. So our theory for EuroOSCon is that open source is just the beginning. Open source teaches other areas of life how to bring participants in and change the rules. So the same techniques you use in open source you can use in democracy, you can use in culture, you can use in government - you can use in all sorts of different aspects. We're looking at open standards, we're looking at the MySociety folks, who have done very similar vote database work to Adrian, they work for you. Those kinds of systems - really neat stuff. We're looking at the EU and various European governments in their attempts to figure out what to do with open source.

LXF So it sounds like there is a very different emphasis.

NT Very definitely yes. We always wanted to be conscious that Europe is not America, and we shouldn't assume that the same things that drive American audiences will drive European audiences.

  



This web site was made with PostNuke, a web portal system written in PHP. PostNuke is Free Software released under the GNU/GPL license.
All contributions made to this site, as comments or forum posts, reviews, links or other words and images are assumed to be the property of the person submitting it. All submissions are accepted on the basis of a non-exclusive worldwide right to publish and to license others to do so. Original content (c) 2005 by Future