Q&A With Larry Wall, Creator Of Perl
(04/08/98, 5:03 p.m. ET)
By David Sims, Net Insider
Larry Wall is the author of Perl, an open source programming language embraced by Web developers and IT professionals to solve problems in serving environments, especially serving Web documents in Unix. Perl is optimized for scanning arbitrary text files, extracting information, and printing reports, as well as for system management tasks. Wall describes it as "intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal)."
He is also one of the most prominent spokesmen for the growing movement behind open source software development. He and other developers maintain that open source development creates better software than what is developed in a corporate or proprietary environment, and that companies can still make money supplying services around the software.
Wall created Perl while he was a programmer at Unisys. He now works full-time as a researcher, developer, and author at O'Reilly & Associates in Sebastopol, Calif., where he is developing a Perl Resource Kit.
Net Insider's David Sims asked Wall about Netscape's recent release of the source code for its Communicator client.
What's the significance for Perl of Netscape's offering to release its source code to the public?
Well, the significance to Perl is really the significance to the freeware community as a whole, and since Perl is just one example of freeware, it will ride along on whatever effects the announcement has on the entire freeware community.
I think there are several specific effects that we will have. One is hopefully this will result in increasing availability of freeware to consumers in general. Up until now, freeware has not gotten any respect, so to speak, and if it's possible that something can push the freeware movement over the edge into respectability, this could well do that. I'm hoping that it will do that.
On the other hand, what I think the biggest influence will be within corporate culture -- the effect of increasing the acceptance of people writing freeware within corporate America. When I started doing freeware 10, 15 years ago, I sort of had to do it surreptitiously and kind of publish it on the sly. I knew if I'd ask for permission back then, you know, they would have given it off to lawyers for six months and then come back and said, "No, you can't."
You were working within an organization?
Yes, and so nowadays I'm hopeful that with this announcement more corporate interests will become aware of the fact that you can actually make money on freeware. Certainly I've made a respectable living off of freeware.
What's the message? How do you make money off of freeware?
By providing services around it -- that could be anywhere from writing books about it, which is how I've made most of my money -- or providing support. Just in terms of good will, Netscape has always had a certain amount of goodwill for more or less giving away their browsers. And now they're just giving away the source as well, essentially. So, in a sense, what they're doing is not all that different from what they were doing already. They're just kind of admitting it.
What might a Perl-enhanced browser do and how might that work with other freeware software like an Apache server? How can we expect to see Perl implemented in a browser?
Well, Perl is quite embeddable, and it has been embedded in many things. The thing that is nice about Perl is it's a language for getting you, you know if your regular program is for getting you from zero to 60 miles an hour, Perl's the language for getting you from 60 to 100 miles an hour.
There are a couple of Perl slogans. One of them is "There's more than one way to do it," that's the main slogan. But the secondary slogan is more applicable here, which is "Easy things should be easy and hard things should be possible."
Your typical application makes easy things easy and makes hard things impossible. They've tried to do some of the hard things being possible by extending with other languages like Java, but the problem with that is that Java is a language that doesn't particularly make things very easy to do. So in a sense it should be easy to do the hard things, and Perl is, I think, going to find a niche there.
Particularly, some day this year we hope to release a version of the Perl compiler, which will spit out Java bytecodes. So it will be able to run in that environment.
Now I'm not too thrilled with Java as a language, but the idea of having a universal assembly language kind of appeals to me, and so if Java actually succeeds in getting that universal assembly language -- and this is still in doubt, of course -- if they do create that ecological niche, then that's just another architecture Perl will run on.
You said you're not too thrilled about Java as a language. Can you characterize some of the personality differences between Perl and Java, and maybe touch on why you don't like it as a language?
Well, I don't, certainly, try to discourage too many other people's languages. Language designers actually get along pretty well. It's usually their followers who get into fisticuffs. I'd say that Java, along with many other languages, falls into the trap of thinking that there's only one right way to do things. That's fine from a mathematical point of view, if you're trying to go for a minimalistic kind of definition of your language, but people don't actually think that way or prefer to work that way. People actually prefer to spend a little more time learning a richer language like English or Perl, which gives them more expressiveness. And so that's why the first Perl slogan is "There's more than one way to do it."
What are the chances that the popular freeware consortium of let's say Perl and Apache and Linux have against say Microsoft Suite of IIS with VB script and NT with its powerful marketing budget. Maybe this is another way of asking, "Where's the marketing budget for freeware?"
Well, two years ago the answer would have been basically "Nowhere." Two years ago Tim O'Reilly came to me and said, "You know, I believe in freeware. Half of the titles we publish are about freeware, we make a lot of money on freeware. We'd make more money on freeware if freeware did better. Therefore we're going to try and help freeware do better." So he came to me and said, "Do you want to work for us?" I was at loose ends at the time, so I said, "Yeah, let's look for those intermediate models where it's not on the one hand crass commercialism and not on the other hand religious freewareism."
There's an intermediate model there, actually multiple intermediate models, whereby the commercial interests can help publicize the freeware, support the development, and essentially do the things that commercial people are good at while letting the freeware people continue to do what they are good at, and get a symbiosis going rather than, as it was viewed back them, parasitism. Of course the commercial people figured the freeware people were parasites, and the freeware people figured the commercial people were parasites. This shows the basic symmetry of the situation.
The difference here seems to be that even where there's commercialism in marketing and commercialism in support and commercialism in documentation, developers seem to bristle at the commercialism that gets in the way of development.
Yes, the real strength of the freeware community is in the rapid turnaround and the rapid pace of interaction between the developers. And that's why it's so important to have source code that is open, at least to the developers, and preferably to everybody. I think that there's a new movement afoot called "the free software movement," "the open source movement" -- I don't know whether that's going to go anywhere. It's a little more precise in some ways, but a little less useful in a definition in others.
But if you have the sources available, you get a much more dynamic and complete development and testing, alpha testing kind of stuff. There's a paper that has been, a paper by Eric Raymond entitled "The Cathedral and the Bazaar," which you may have heard of, which is a fairly seminal paper on the differences between these different styles of development, and of course within those distinctions there's further distinctions to be made, and the freeware community around Perl works in a slightly different way than the freeware community around Apache, and they in turn work differently than the community around Linux. And yet they're all very similar in that people want to contribute, they want to make their mark on the world, they get their value out of it by increased stature within the community. You know, to be able to say, "Well I helped the Perl community do such-and-so" is a good thing on your resume, let alone just having Perl on your resume.
The problem with most computer languages is that all they do is lengthen your resume by a word and a comma, but Perl really has made a lot of people's resumes more valuable.
Can you characterize the differences in the development community or the styles of the development community between Perl and either Linux or Apache?
Oh, sure. Perl's development community is, well they're all of them very flat organizations, but Perl's maybe flatter than most. About the only bump in the organizational chart is me. Perl is a little different because being a language, it would be very easy to spoil the language by having everybody add their favorite feature. Everyone wants to make Perl into their own favorite language, and a language designer has to simultaneously be willing to borrow from all different languages and simultaneously resist the urge to borrow from all different languages.
I try to maintain artistic control over the development of the language itself, therefore I've reserved kind of an absolute dictatorial power over Perl. Within that, people can basically do what they want, you know, as long as I'm agreeable to it. And that's just talking about the core. The extension modules, I don't care what they do. I put the extension mechanism into Perl so that people could do whatever they want with it, as long as they work through that interface.
By contrast, the Apache model, they sort of have a dozen or so people who are all of the same level of authority in terms of the development of Apache. That works well for Apache. I don't think it would work well for Perl. It's sort of an oligarchy, if you will, where mine is more of a benevolent dictatorship.
Linux is almost more of a laissez-faire sort of thing. It's probably closer to the Perl model. Linus [Torvalds] keeps tight control of the center, then more toward to the periphery he gives people more freedom.
The feedback from the developer and user community, you were saying, is a lot quicker in this freeware environment rather than a corporate development environment. With that in mind, can you tell us what's coming up in the next version of Perl, and what's been asked for that isn't going to come so soon but might come later?
Perl version 5.005 will contain multithreading and it will contain a compiler. Let's talk about multithreading first. I don't think that most users will really care about multithreading, and so we'll make it easy to ignore if you don't want to. On the other hand, for performance reasons, a lot of people running servers would like to have multithreaded support for Perl for efficiency reasons. You can do multiple things simultaneously, and that's great, so we'll make it pretty easy to do the multithreading when they want it. That falls into the category of "hard things that should be possible."
The compiler, that's actually kind of a misnomer because Perl has always had a compiler, in the sense that it parses Perl down to an internal form and executes that. What we mean when we say "compiler" is a back-end, or actually a whole framework of back-ends, whereby we can do code generation to languages like C. With 5.005 will come the ability to generate C, the ability to generate a form of byte code that's used by Perl.
What we don't have yet and what is actually my current project is to write a backend that will spit out Java byte codes. I alluded to that earlier but that's hopefully going to come out sometime this summer. That's my pet project. In the meantime, from the perspective of O'Reilly & Associates, we put out a Unix resource kit last fall for Perl.
This spring we're coming out with a resource kit for Win 32, and that will have a number of interesting things in it including a visual debugger, which from the reports from the beta testers is pretty zoomy, and will essentially do for the Windows programmers what the Unix resource kit has done. And part of the purpose of the resource kits is to supply functionality to people in a convenient form.
Another purpose of the resource kits, though, going back to this marketing idea, is to actually legitimize Perl in the business community. Freeware has the reputation among some managers as being schlockware, which really aggravates those of us in the freeware community who do not produce schlockware. So having that box on the shelf legitimizes Perl in the eyes of the boss. He comes wandering in and says, "What is this Perl thing?" and you point up to the thing and say, "Well, here's the standard distribution of Perl, and the boss says, "OK, I know who to sue if it goes wrong."
Also, along the lines of legitimizing the language, the first Perl conference was held last summer in San Jose. What did you take away from that and are you going to have a second conference? What's planned for that?
Well, we thought we'd have a great conference if we had 300 people there and we had 1,000 people there. It was. I've never been to something that was so simultaneously energizing and draining. There was a great deal of excitement, and you couldn't tell that the conference had been thrown together in four months. It was just fabulous. It worked so well we're going to have another one next August, and we expect it to be even better. Just a lot of people there who really love to help other people. The Perl community is something else. It's a little bit of heaven, I think.
Was "The Cathedral and the Bazaar" written for that conference, or did that come out before then?
It actually came out -- it was presented at the Linux conference first -- but Tim O'Reilly heard of it and liked it so much that we had Eric Raymond come and present it at the Perl conference as well. It was tweaked suitably for the different circumstances, but it's definitely been a very important paper in the shaping of our thinking as to what exactly it is that drives the freeware movement, why is it so powerful when it is not, in effect, economically powerful on the surface of it. I know I was very impressed with it, and that was the first time I had met Eric. He's a character, but he's also a class act and real sharp. I see that he is probably going to be at the forefront of defining the freeware movement for some time to come.
One last sort of biographical question. While I was researching for this interview, a couple of programmers told me that you had once been a missionary. Is that right?
Well, I was definitely studying to be one. My wife and I were studying linguistics in grad school with the idea of going probably to Africa to study unwritten languages, figure out a way to write them down, and to translate various things including the Bible into new languages. I could not do that for health reasons and at the time that was a very difficult decision to drop out of that. But in retrospect, looking back, it was really the right thing. The organization I dropped out of now is using Perl to do a lot of their work. So I ended up doing more good for them by dropping out than by keeping on.
Do you see any parallels between missionaryism and your role in the free software movement?
Oh, certainly. The religious aspects of the Perl movement and the free software movement, particularly the Perl movement since I have control over that, I'd like to discourage and encourage those aspects simultaneously. There are positive aspects and negative aspects, and so there's a great deal of energy in people who think they have the gospel and want to spread it around. If you can keep a bit of the bailiff in there so they don't go out and beat up other people, then that's worth something.
= See our