Linux Journal interviews Larry Wall
jbc writes "Linux Journal's cover story for May was an interview with Larry Wall, which is now online. Some good stuff on the future of Perl, whether or not Open Source is a passing fad, and why Activestate is not necessarily evil. "
I use Perl a lot, and have a lot of respect for Larry Wall, Tom Christiansen, et. al. But Larry's comments about Perl being the first "postmodern" language are silly.
The Perl motto is cute, but it implictly sets up a strawman, because no language I can think of says "There's Only One Way To Do It." All languages, including Perl, put some restrictions on the programmer. That's pretty much what the word "language" means. Yes, in Python, you have to use whitespace as syntax. Oh, but in Perl you can't use whitespace as syntax. There may be more than one way to do it in Perl, but that ain't one of them. Yes, in Lisp you have to use parentheses. Oh, but in Perl you have to use "$", "@", and "%" to start names. Unpunctuated names aren't an option! There's only one way to do it!
Sorry for venting, but I get a little tired of the posturing in the Perl camp. They try to sell the language by implying that other languages are uncool, which is itself very uncool: "many programmers are still slaves of the cyber police." Give me a break.
I think the geek and coder community needs to make a calendar of all the heros of open source, open standards, the internet, etc. Larry Wall would have to be, Mr. June or July or something.
We could have Larry, Linus, the Samba Team, etc. A new face every month. And a couple good quotes to go along with them...
Perl is the reason i started using *NIX, i switched from ASP/NT to Perl on Linux/BSD, and i have never ever, not even once, looked back.
Once you get over the initial confusion of what all those wierd slashes mean, Visual Basic starts to look like a bad joke, at least for CGI programming.
Larry Wall, while i have never met him, and while he may have a nasty habit of making religious references all the time, is, in my opinion, a damn good guy, who has given me the most useful software tool i ever came across.
-Pete
Perl is a very useful tool, and when it came out it was a big improvement over awk/sed/sh, and it was free to boot. That's why it succeeded. Nowadays, most people simply use it because it's there (among other things, it's the only CGI language my ISP offers).
But far from being an advantage, Perl's haphazard error checking and "postmodern" syntax do cause problems in practice. For example, one of the big government projects Larry mentions lost a lot of data because Perl did not flag bad numerical input as an error but simply uses 0 by default (a design flaw that has since been partially corrected through addition of "-w"). And even the Perl system itself has problems with its syntax--there are many circumstances where Perl compiler or runtime error messages are way off.
The lesson I hope budding language designers will take away from Perl is that providing useful functionality in a timely manner and a free package is more important for success than clean design or robustness. But within the constraints of time to market, one should still strive for clean, robust designs, or one should at least aim to fix things up later. To Perl's credit, many of the initial design problems have been fixed.
And while Larry seems to think languages like Lisp and Python were designed by some CS types for thought control, reality is that, for example, Lisp evolved over nearly 40 years to meet the needs of its user community (and, in a twist of irony, Perl's syntax itself has followed a little bit of the same trajectory already; let's see where it ends up in another 30 years).
To me, Perl succeeded despite its quirks and problems, not because of them.
Python doesn't force you to indent any particular amount, and it doesn't force you to indent the same amount everywhere. All it requires is that your indentation structure reflects your block structure. It appears that most people pay more attention to indentation than to syntax (consider the classic nested if/else-with-incorrect-indentation example), so arguably this is a good thing.
Yeah, I was wondering about that. I don't know Perl, so I can't really comment, but it struck me (as an outsider, though I do know some Python) that his earlier comment about requiring extra punctuation (is it a $?) for variables making CS people mad is exactly the same thing as Python's whitespace. But it's just an example, I suppose. He's trying to say it's postmodern. I don't quite get that, but what the hey! If Python's only limitation is that your code can't look like modern art, I can deal with it.
Larry is a cool guy, but I really hate perl. Despite that I find myself using it - mostly because there is a perl module that talks to everything.
But perl makes for buggy code. Languages like Eiffel have endeavoured to make coding more rigourous. And the power, conciseness and structured way of thinking of Lisp makes for elegant and thus maintainable code.
But perl it's too easy to write bad code. In some cases it just plain encourages bad code. I think the main reason perl is popular is just because it talks to everything. And it talks to everything because it's popular. It lulls you into a false sense of security. Doing something small in perl is quick. So you start using it. Soon you're doing something big and serious and still using it. And then you're in a bit of a mess.
If perl is post-modern - then give me modern please. The purity of careful thinking really is better than a hap-hazard, do it in hundreds of different ways thinking.
I try to use Scheme and Guile whenever I can. I think it can do as good or better job for everything (I'm not a post-modern thinker). But to do everything better it needs to have as many modules as Perl. It's got quite a few, but not as many as perl yet. So that's why I use perl.
But having said that, I still think among scripting languages, Perl is one of the most useful, and it gets a lot of things right, and I certainly appreciate all the effort that has gone into it.
Larry has a very interesting take on language disign. I liked is postmodernism comments. Perl definitly feals more like english then other langauges, but maybe that's just because I'm addicted. I don't think, however, that we are at all ready for a ``universilly postmodern'' approach to computation or programming langauges as there is just too much which need to be rigorous. I think we will ultimatly need something more like the Lucky project for Haskell to do the parsing side anything. That is to say Larry's philosophy is importent even if we do need stronger theoretical building blocks then traditional imperitive programming provides.
Jeff
BTW> Lucky is a monadic parser. Monads are a very powerful way to resolve the contradictions between functional and object oriented programming philosophies. A monadic parser has all the elegance, flexibility, and raw power of a functional parser without the grammer constrains normaly imposd on a functional parser.
The Christian religion has been and still is the principal enemy of moral progress in the world. -- Bertrand Russell
Larry gave a great talk at Linux World on "Perl, the first postmodern computer language". The transcript is here (51kb) on the wall family website.
For those who have read _The design and evolution of C++_ by Stroustroupp (sp??) it is interesting to note that Perl and C++ share some design philosophies. Like "the user is always right" school of thought. Maybe that's why both of these languages are popular?
Anyway, you gotta admit larry Wall has a pretty big vocabulary:
and etc. etc... I sure would have got higher scores in school had I used words like that!
Posted by d106ene5:
I don't know how else to say it - his presentations at conferences are so offbeat, his interviews always entertaining.
Of course, perl is offbeat and entertaining. Its bizarre and obscure at times, but anyone who can write it with skill usually swears by it.
I used to work for the NSA. We used Perl for scripting tasks etc. But most of our filters were done in C. When i was in Menwith Hill, we had to do Sparc Assembly as well, you should now how hard it is to write software that has to monitor gigs per seconds, you have to tune your systems to perfection.
Larry has a consistent philospohy behind the design of Perl (or rather, the intentional lack of overall design.) It's an interesting idea, certainly, and one that I think hasn't been consciously applied to a programming language before. However, if Perl is the kind of language that that approach produces, then I think the experiment is a failure.
While Larry is a smart fellow, the problem is that he is also a linguist. And having spent a few years working with linguists (doing a natural-language understanding boondoggle), my experience is that linguists should never ever be allowed near computers.
Computer languages aren't really languages, not in the sense that linguists know languages. Computer languages are formal mathematical systems, which are a totally different beast. Computers are very literal-minded, not fuzzy at all, so one must talk to them precisely. The fuzziness that appears in human languages is inappropriate in a computer language.
The ``language'' of mathematics doesn't have linguistic drift. Where is the ``slang'' in arithmetic? Where are the ``dialects'' of algebra? It doesn't happen, because mathematical systems exist by design, not by evolutionary pressure and random mutation.
Accretion works well for some things, like DNA, forests, and cities. But I for one am glad that my car's engine was designed to be efficient and self-consistent, and I prefer the software I use (including languages) to be the same, rather than a sprawling Winchester Mystery House of a language like Perl.
Of course, I end up using Perl anyway, because often it's the most convenient tool for the job for any number of not-very-good reasons. The way Perl manages to suck so bad and yet still be marginally useful is probably what makes it the perfect complement to Unix itself. Worse is Better, after all.
Actually, now that I think about it, Tcl is even more horrible than Perl, so it's a wonder it hasn't taken over.
Maximal obscurity! Now!