Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Perl Programming

Larry Wall On Perl, Religion, and... 1305

Not only did Larry Wall answer your questions, but he said they were excellent questions. You've got to love Larry Wall, not just because he's a nice guy and created Perl, but also because he is the first Slashdot interview guest ever to send his answers preformatted in squeaky-clean HTML. We appreciate this like you wouldn't believe. They're great answers, too -- straightforward, heartfelt, and entertaining. Enjoy!
1) Perl as a "scripting" or a "programming" language
by Marx_Mrvelous

I've been using perl for a very long time, but primarily as a scripting language. I indeed mostly use it for extraction and reporting. With the recent developments in perl, however, there seems to be the trend that perl is able to do much, much more (while retaining compatibility to be "just" a scripting language).

What do you think about how people are using Perl today? Are you satisfied that most people use it for simple tasks like log parsing? Would you like to see more advanced applications being built with Perl verses a compiled language?

A:

I am perfectly happy for Perl to continue parsing logfiles. Perl has always been, and always will be (I hope), a humble language. When I am 80 years old, even if everyone in the whole world puts me on a pedestal and thinks I'm the renaissanciest man that ever lived, I still intend to take out the trash when my wife asks me to. Just because I'm learning Japanese doesn't mean I have to stop speaking English.

But just as people grow (and are stretched), Perl continues to grow (and be stretched). Perl has acquired new skills over the years, and people have been using Perl to do all sorts of things that are arguably at the limits of its capabiliites. The solution to that is not to stop people from doing that, but to increase Perl's dynamic range.

The thing is, people are already building more advanced applications with Perl. But there are some aspects of that process that aren't as easy as they could be. They're hard. In times past we were proud of the fact that the hard things were even possible with Perl5. We often chant the slogan: "Easy things should be easy, and hard things should be possible."

But as with any slogan, there are some qustionable assumptions hidden behind the sentiment. We assume that it's obvious which things should be easy or hard, and that the things that are currently easy are the things that ought to be easy. We assume that making the hard things easy will necessarily cause the easy things to become hard. But sometimes it's not obvious what should be easy or hard. Sometimes the wrong things are easy. And sometimes there are ways to make the hard things easier without making the easy things harder.

Some of the complexity in a Perl5 program is necessary to the solution, and some of it isn't. We can't eliminate the necessary complexity, but we can hope to get rid of some of the needless complexity. That will make everything easier. Well, most everything...

I'm really under no illusions that we can make everything easier at once. There's no such thing as a perfect language. Merely making a more expressive language means it's in some sense more difficult to learn to express yourself responsibly. That's the price of power. Manhattan will always be more difficult to understand than a set of beads.

But in any event, let me assure you that Perl6 will not be as difficult to learn as Japanese. :-)

2) Perl Beginners
by KoopaTroopa

I'm a CS student who's recently become very interested in Perl along with other languages. However, I don't really have too much everyday (or even occasional) need to actually USE much Perl. I am big into learning as much as I can about it for its own sake.

Now, for the question: Given this approach to learning Perl (just for a general working knowledge, maybe light usage,) is it really worth spending a lot of my time learning Perl now, or should I wait for the big Perl6 revision?

A:

I don't think you would be damaged by learning Perl5, though I'm sure there are those who would disagree--or at least choose to be disagreeable.

It really depends on your curiosity level, I think. Some people would learn both Perl5 and Perl6 merely to see how a language design evolves over time. Those folks are pretty hardcore. Count yourself lucky if you're not one of them. But despite appearances, Perl5 isn't a totally horrible language, and we're hoping to save all the good bits of it in Perl6. People moving from Perl5 to Perl6 shouldn't find it too difficult to unlearn the naughty bits, especially since it's the naughty bits that tend to be frustrating. And if you're ever in a situation where you need to use Perl6 for real, it's likely you'll have to deal with legacy Perl5 code anyway. So as usual the answer is: "It depends..."

Gildor was silent for a moment. 'I do not like this news,' he said at last. 'That Gandalf should be late, does not bode well. But it is said: Do not meddle in the affairs of wizards, for they are subtle and quick to anger. The choice is yours: to go or wait.'

'And it is also said,' answered Frodo: 'Go not to the Elves for counsel, for they will say both no and yes.'

'Is it indeed?' laughed Gildor. 'Elves seldom give unguarded advice, for advice is a dangerous gift, even from the wise to the wise, and all courses may run ill. But what would you? You have not told me all concerning yourself; and how then shall I choose better than you? But if you demand advice, I will for friendship's sake give it. I think you should now go at once, without delay; and if Gandalf does not come before you set out, then I also advise this: do not go alone. Take such friends as are trusty and willing. Now you should be grateful, for I do not give this counsel gladly.'

3) Structured programming and perl
by slashnot007

The reason I like perl is it is not a structured programming language. In my work I find it is 50% a get the job done parsing language and 25% sequencer of programs and deamons and 25% major ojbect oriented programming effort often a cgi.

Thus I worry that perl has Python-envy. I've tried to use python several times but always go back to perl. The reason is my daily need for a parser dominates my choice of language and maintains my fluency, since I dont want to have to be fluent in both, perl becomes my language of choice for advanced tasks too, even though python might be better for strcutrued programming.

So my question is, is perl6 making make perl a structued language like python? Would it be a good idea if perl did not develop any further for fear of becoming too complicated and thus disorganized? (witness the evolution of java from clean slate to giant mess with intricate redundant libraries half of which are deprecated).

A:

Er, what do you mean by "structured"? 25 years ago all of these languages would have been considered "structured", in the sense that a block generally has only one entrance point. (There were also people who thought that a block should only have one exit. Thankfully these folks did not prevail, since functions representing decision trees often have one entry but multiple exit points.)

But you obviously mean "structured" in a different sense, or perhaps several different senses. Syntax is structure, and different languages have different syntax, but I don't think that's what you mean.

I'll assume you mean "structured" the way a grade school teacher means it, as in "structured play time", as opposed to "free play time". Python's slogan is "There's only one obvious way to do it." That's fine from the computer's viewpoint, but kinda sucks from the human viewpoint. "You can play any game you like, as long as it was organized by the teacher."

Java was, in that sense, much less structured than Python, I think. That's part of the reason for Java's success, but it came at a price. One of the problems with Java is that they swept a bit too much of the innate complexity of life under the carpet of the libraries. And so now they've had to replace the carpets several times.

So, yes, Java started with a "clean slate", but it was a rather undersized slate, methinks. But as for "structured play time" in Java, the structure has been imposed more by cultural norms than by the language itself.

As for Perl, it has never been "structured" in that sense, though it has always been structured in the sense that you can create as much structure as you like. The whole point is that the structure is optional, not imposed externally. If you're playing with your schoolmates at recess, you can always choose to organize a football game, but the teacher isn't making you do that.

Playing football is like programming in the large. You have to agree on a lot of rules to do it with other people. Perl5 doesn't make it terribly easy to agree on a set of rules, and we hope to make that easier in Perl6. You have to have discipline to do programming in the large, but you'll choose the discipline by turning up the big discipline knob yourself, not by having someone else turn it up for you. Perl6 will give you the big knob.

I am philosophically opposed to turning up the knob for you, because I don't know how fast you want it turned up. (Perl6 will turn it up for you a little by default--if you write a module or class, it'll automatically default to a stricter mode than it uses for your main program.) But the reason I don't like doing it for you is that you know how fast you want to learn, and I don't. As Gildor says, you haven't told me enough about yourself for me to give you advice. If I don't know how hard you can paddle, I can't tell you how big of a wave to try to catch. We all have to start with the small waves.

We find the same problem in teaching reading to kids. Some people shout "Whole language!" while others shout "Phonics!" Well, guess what, they're both oversimplifying. You have to learn some phonics, and then you learn some larger bits based on that, and some larger bits based on that, and eventually you find that you're intuiting whole language. The whole language folks fall into what I call the "Expert Fallacy". You look at how experts do something, and assume that's how everyone should do it. There are some people who are natural readers. They naturally figure out the bits and pieces themselves. But if you try and teach everyone that way, half your kids never figure out the phonics.

Programming is the same way. Language designers tend to look at how experts program and then think that everyone ought to learn to program that way from the start. That's a bit like expecting a new surfer to do well on 40 foot waves. Some will make it, but most will wipe out.

Perl is designed to help people learn the bits of programming they need right now without forcing them to learn the techniques they aren't ready for. But when they are ready for them, Perl tries to be there too. We just don't tell the beginners that the speedometer on their golf cart wraps around several times.

4) What will you *not* put into Perl 6?
by TreyHarris

What would you say has been the number one requested feature that you will not put into Perl6, and why not?

A:

That depends on what you call a feature, and what you call a request. If you look at all the RFCs at dev.perl.org, you'll find that most of the feature requests are bogus on some level or other because they tend to suggest bandaid solutions. Nevertheless, I think it's best to treat them all as a "cry for help". With computer languages, about 75% of the bandaids have a bullet hole underneath.

So, for instance, I officially rejected the RFC asking for multiline comments, while actually accepting the underlying premise that it was too difficult to do block comments. But the better solution is not to introduce more syntax, but to fix the POD syntax to do what people want.

But this is Perl, after all, so there has to be more than one solution. The other solution is to make the Perl grammar malleable enough that the user can install their own multiline comment mechanism anyway via a pragma, so there! That's fine by me, as long as the syntactic warpage is lexically scoped. "All is fair if you predeclare."

Another often-requested feature that's not going into Perl6 is implicit lexical declarations. That's one of those features that seems like a good idea when you're looking at small snippets of code, but it breaks down when the scopes get larger than you can see in a glance. Scoping by indentation has the same problem, but nobody has seriously requested that for Perl6, for some strange reason...

Now you might think that getting rid of the $, @, and % sigils would be the number one requested feature, but typically that is suggested only by people who don't know Perl and probably wouldn't use Perl even if we did get rid of them. The folks who know Perl tend to like the sigils.

5) perl vs other languages
by larry bagina

Whenever perl pops up in slashdot, there are plenty of language zealots claiming perl is obsolete and you should really be using php or ruby or python instead.

What are your thoughts on these other scripting languages? What do you like about them, what do you dislike?

A:

Well, in general, the thing I don't like about other computer languages is that they're not Perl. :-)

Seriously, Perl matches the way I think pretty well, because what I mostly want in a computer language is a wide dynamic range. I want a language in which you can say both dirty, low-level stuff and fancy, high-level stuff. I want a language where both baby-talk and fluency are acceptable. Other computer languages tend to try to level those distinctions.

As for specifics, I must say that the example of Ruby is the main reason I decided against implicit lexical scoping for Perl6. We'll be sticking with explicit my declarations. But I have to like the majority of Ruby simply because that's the part that was borrowed straight out of Perl. :-)

I also liked Ruby's unary splat operator, so I borrowed it for Perl6.

The main problem I see with Ruby is that the Principle of Least Surprise can lead you astray, as it did with implicit lexical scoping. The question is, whose surprise are you pessimizing? Experts are surprised by different things than beginners. People who are trying to grow small programs into large programs are surprised by different things than people who design their programs large to begin with.

For instance, I think it's a violation of the Beginner's Principle of Least Surprise to make everything an object. To a beginner, a number is just a number. A string is a string. They may well be objects as far as the computer is concerned, and it's even fine for experts to treat them as objects. But premature OO is a speed bump in the novice's onramp.

I confess, I have a soft spot in my heart for inside-out languages like PHP. The first real compiler I ever wrote was for a sort of text-processing macro language in which the commands were embedded in the data. This is part of a more general class of programming languages in which a peculiar form of processing is assumed by default, such as the pattern/action syntax of awk that assumes an invisible outer loop.

Perl can do that, but it's not the default. I think languages like awk and PHP hobble themselves in the long run by attaching themselves to a particular ecological niche, particularly when a generalist like Perl can effectively occupy the same niche. So I've never felt tempted to even try PHP. I'd only be speaking second-hand if I said that PHP has some serious namespace and extension mechanism issues. So I won't say that. :-)

Python is cool to look at small bits of, but I think the "outline" syntax breaks down with larger chunks of code. I'm with Aristotle on the structure of discourse--a story should have a beginning, and middle, and an end. So should blocks.

There's something to be said for forcing everyone to code in the same style, but that's not the Perl Way. At least, it's not the default Perl Way. But all is fair if you predeclare. It's perfectly fine for you to import a pragmatic module that enforces a certain style policy. It's even fine if your company forces you to import that pragma. Of course, if you want real programming discipline, I'd suggest you use Damian's Klingon module...

6) Perl and .NET
by prostoalex

What is your opinion of .NET in general and Perl's role in it? Given that .NET supports Perl as one of the languages would you recommend actually using it for any projects? Do you see good future for this tandem?

A:

As far as I'm concerned, .NET is just another architecture that we need to port Perl to run on natively. The current approach to .NET interoperability is a bit of a hack, I think. That is partly Perl's fault for not having a sufficiently powerful type declaration system, but it's also a problem that .NET doesn't really support dynamically typed languages very well. I foresee that we'll have something like a Parrot interface that functions as a (hopefully thin) layer of glue over other VMs such as .NET or Java machines. The less impedence mismatch there is, the thinner the layer can be.

I recommend that you use Perl where it makes sense to use Perl, and avoid using it where it doesn't make sense. I am not the judge of whether it makes sense to use Perl on .NET, simply because I'm way too ignorant and stupid to be making those kinds of decisions for you. Sorry.

As for the future, I really don't know. Long, long ago (when our galaxy was far away) I shoehorned Perl and Java into the same process, and it never aroused much excitement. Certainly the Java folks tend to turn up their noses at non-100% Java solutions, but it got a pretty chilly reception from the other end as well. By and large, Perl programmers don't seem to have much appreciation for Java. I think the language architects who aren't living in reality tend to like multi-language solutions a lot more than ordinary folks do.

Which is, of course, why we're doing exactly the same thing with Parrot. Go figure. :-)

6.5) From a project managers prospective
by mustangdavis

What are your thoughts on the comments made by people that Perl is not designed for projects that require more than one programmer? Many people have stated over and over again that Perl code can not be managed by more than one person ... what are your thoughts on that statement? How would you manage a large Perl project? Do you think Perl should be used for large projects? (or should it be used strictly as a "quick and dirty" programming language?) BTW: I love your work (someone had to say it)

A:

I do not manage any large projects, appearances to the contrary notwithstanding. I haven't an executive bone in my body. All my managerial skills are delegated. Ask anyone I've delegated to...

However, those who claim that Perl code cannot be managed by more than one person are obviously smoking something worse than crack. They're simply ignoring the many examples of people who have done just that. But you wouldn't expect to hire random people off the street to come in and collaborate on writing a novel. You can do it by hiring a few good novelists who already know how to figure out how to work together, or at least how to fight with each other productively. In the absence of that level of expertise, you can also do it by setting up policies under which random people can work, rather like the rules for writing about the world of Liavek, in which, for instance, every story has to mention a camel.

That being said, there are things we can do to make Perl6 better at helping managers and architects set up such policies for programming in the large. Having a standardized opaque object type will help there as well. Nobody is going to claim that Perl6's OO is "bolted on". Well, except maybe for certain Slashdotters who don't know the difference between rational discussion and cheerleading...

7) Role of Religion?
by Anonymous Cowdog

I remember reading at some point that you are a Christian, and there have been suggestions that some of your early missionary impulses (a desire to do good, help others) are perhaps part of the zeal you have put into Perl over the years.

Preferring a scientific view, I am not religious, and have no desire to be. Perhaps there is a God, but if there is, I think he/she has no opposable thumbs; in other words, has no power to change anything; reality is just playing out according to the laws of physics (whatever those are).

Please tell us how in the world a scientific or at least technical mind can believe in God, and what role religion has played in your work on Perl.

A:

Well, hmm, that's a topic for an entire essay, or a book, or a life. But I'll try to keep it short.

When you say "how in the world", I take it to mean that you find it more or less inconceivable that someone with a scientific mind (or at least technical mind, hah!) could chooose to believe in God. I'd like to at least get you to the point where you find it conceivable. I expect a good deal of the problem is that you are busy disbelieving a different God than the one I am busy believing in. In theological discussions more than any other kind, it's easy to talk at right angles and never even realize it.

So let me try to clarify what I mean, and reduce it to as few information bits as possible. A lot of people have a vested interest in making this a lot tougher to swallow than it needs to be, but it's supposed to be simple enough that a child can understand it. It doesn't take great energetic gobs of faith on your part--after all, Jesus said you only have to have faith the size of a mustard seed. So just how big is that, in information theory terms? I think it's just two bits big. Please allow me to qoute a couple "bits" from Hebrews, slightly paraphrased:

You can't please God the way Enoch did without some faith, because those who come to God must (minimally) believe that:
A) God exists, and
B) God is good to people who really look for him.

That's it. The "good news" is so simple that a child can understand it, and so deep that a philosopher can't.

Now, it appears that you're willing to admit the possibility of bit A being a 1, so you're almost halfway there. Or maybe you're a quarter way there on average, if it's a qubit that's still flopping around like Shoedinger's Cat. You're the observer there, not me--unless of course you're dead. :-)

A lot of folks get hung up at point B for various reasons, some logical and some moral, but mostly because of Shroedinger again. People are almost afraid to observe the B qubit because they don't want the wave function to collapse either to a 0 or a 1, since both choices are deemed unpalatable. A lot of people who claim to be agnostics don't take the position so much because they don't know, but because they don't want to know, sometimes desperately so.

Because if it turns out to be a 0, then we really are the slaves of our selfish genes, and there's no basis for morality other than various forms of tribalism.

And because if it turns out to be a 1, then you have swallow a whole bunch of flim-flam that goes with it. Or do you?

Let me admit to you that I came at this from the opposite direction. I grew up in a religious culture, and I had to learn to "unswallow" an awful lot of stuff in order to strip my faith down to these two bits.

I tried to strip it down further, but I couldn't, because God told me: "That's far enough. I already flipped your faith bits to 1, because I'm a better Observer than you are. You are Shroedinger's cat in reverse--you were dead spiritually, but I've already examined the qubits for you, and I think they're both 1. Who are you to disagree with me?"

So, who am I to disagree with God? :-) If he really is the Author of the universe, he's allowed to observe the qubits, and he's probably even allowed to cheat occasionally and force a few bit flips to make it a better story. That's how Authors work. Whether or not they have thumbs...

Once you see the universe from that point of view, many arguments fade into unimportance, such as Hawking's argument that the universe fuzzed into existence at the beginning, and therefore there was no creator. But it's also true that the Lord of the Rings fuzzed into existence, and that doesn't mean it doesn't have a creator. It just means that the creator doesn't create on the same schedule as the creature's.

If God is creating the universe sideways like an Author, then the proper place to look for the effects of that is not at the fuzzy edges, but at the heart of the story. And I am personally convinced that Jesus stands at the heart of the story. The evidence is there if you care to look, and if you don't get distracted by the claims of various people who have various agendas to lead you in every possible direction, and if you don't fall into the trap of looking for a formula rather than looking for God as a person. All human institutions are fallible, and will create a formula for you to determine whether you belong to the tribe or not. Very often these formulas are called doctrines and traditions and such, and there is some value in them, as there is some value in any human culture. But they all kind of miss the point.

"Systematic theology" is an oxymoron. God is not a system. Christians are fond of asking: "What would Jesus do in this situation?" Unfortunately, they very rarely come up with the correct answer, which is: "Something unexpected!" If the Creator really did write himself into his own story, that's what we ought to expect to see. Creative solutions.

And this creativity is intended to be transitive. We are expected to be creative. And we're expected to help others be creative.

And that leads us back (finally) to the last part of your question, how all this relates to Perl.

Perl is obviously my attempt to help other people be creative. In my little way, I'm sneakily helping people understand a bit more about the sort of people God likes.

Going further, we have the notion that a narrative should be defined by its heart and not by its borders. That ties in with my linguistic notions that things ought to be defined by prototype rather than by formula. It ties in to my refusal to define who is or is not a "good" Perl programmer, or who exactly is or isn't a member of the "Perl community". These things are all defined by their centers, not by their peripheries.

The philosophy of TMTOWTDI ("There's more than one way to do it.") is a direct result of observing that the Author of the universe is humble, and chooses to exercise control in subtle rather than in heavy-handed ways. The universe doesn't come with enforced style guidelines. Creative people will develop style on their own. Those are the sort of people that will make heaven a nice place.

And finally, there is the underlying conviction that, if you define both science and religion from their true centers, they cannot be in confict. So despite all the "religiosity" of Perl culture, we also believe in the benefits of computer science. I didn't put lexicals and closures into Perl5 just because I thought people would start jumping up and down and shouting "Hallelujah!" (Which happens, but that's not why I did it.)

And now let's all sing hymn #42...

8) Thanks Larry
by wdr1

Like many others, I love Perl. I use it both professionally and personally. You've not only helped make my career, but also given me a very pleasent past-time. I was wondering what I can do to say thank-you? Can we give you money? Dontate something to someone, etc.?

When the new Programming Perl came out, I didn't really need anymoe (viva perldoc!), but wanted to make sure I was putting a few bucks in the pockets of those who made Perl great. What else can I do to say thanks?

A:

Hmm, what timing! You must be from one of those churches where they pass the offering plate right after the sermon... :-)

Even just saying thanks is much appreciated. But if you want to help out more, there are lots of places to donate time or money. Unfortunately, it takes time to figure out how to donate time, since you have to hang out with various interest groups until you get, er, interested in one of them. But it's part of Perl culture to value contributions to Perl culture, so don't hold back just because your contribution is not somehow technical. That's not how we work.

Donating money is easy (except, of course, for the money part). Tax-deductible contributions can be made to the Perl Foundation. Much of my support for this year has come through the Perl Foundation--my full-time work on the Apocalypses would have been impossible without it. If you can persuade the companies you work for to make donations or to match your donations, that's also a worthwhile investment of time (and in some cases, agony). Please allow me to express my sincere gratitude here for everyone who has contributed already. This program is made possible by viewers like you.

9) perl 6 niche
by maraist

perl 1-5 have been great UNIX configuration/management languages. This includes small-scale webserver platforms. It's very difficult to find any other language that is as versitile in this respect where it reigns in it's niche. It is the perfect combination of speed, power, simplicity and huffman encoding (especially given the co-UNIX-tools look-and-feel).

Perl6 on the other hand, changes this formula around; favoring a more general solution that potentially reduces performance (due to abstractions), and deviates substantially from the UNIX-family-syntax - Namely: c-ish-syntax ( colon, question mark, select, exception-handling, etc), awk/sedish reg-ex's, raw c-libray-wrappers, etc. It was these very similarities that made learning and accepting perl so trivial since learning CIS and UNIX administration was sufficient to master perl in 2 days.

My question is: does perl6 have a niche in mind? Or is it spreading itself too thinly; competing more and more against Java/python/C# and thus losing it's identifiable niche?

A:

Excellent question. I love the evolutionary biologists' way of talking about organisms as if they're evolving on purpose: "I think I'll develop feathers now and become a bird...", though in Perl's case, of course, there is some amount of purpose in my head (some would say "not enough"), not to mention the heads of other Perl developers (some would say "too much" (or is it the other way around?)), but it's still great fun to talk about Perl as if it were its own beastie, or as if it were a character in a novel that runs away with the plot despite the intentions of the author, kinda like this sentence has.

Anyway, from the start, Perl has never really been satisfied with staying in any one particular ecological niche. That's not terribly healthy approach in evolutionary terms, especially when your niche goes away. Perl's been pretty lucky so far to land in stable niches, but if some of its current niches dry up someday, that's really only to be expected, and indeed almost hoped for. It's probably the fault of closing ecological niches that we aren't all still swinging from trees, after all. (Of course, some of us still are, but that portion of us isn't heavily represented on Slashdot. Er...appearances to the contrary notwithstanding.)

Perl started out as just a text processing language--a better awk and sed--but it very rapidly spread to the ecological niche of system administration. On Unix, at least, a lot of system administration is text processing. With version3, however, Perl very intentionally escaped the text-processing-only niche by adding the capability to process binary data. Perl4 UNintentionally spread from the sysadmin niche into the CGI/Web niche. Perl5 accellerated that trend by intentionally occupying the extensible-glue-language niche, which had the unforeseen (by me) but predictable result of enabling Web sites to hook all their backend databases to the various textual Internet protocols.

But if you're worried about Perl trying to inhabit the "good for everything" niche, that's actually been Perl's intention since Perl5 came out. After all, you can't add OO to any language without making it perfect. ;-)

Seriously, I think that, for many of the people who use Perl today, the ecological niche they're thinking of is already labeled "everything", even if it isn't quite. For those folks, trying to make Perl better for the "everything" niche is not really an issue--they're already panting for it. These are the people who will actually carry Perl over to the next ecological niche it spills into, and the ones after that. I just made Perl a glue language, and other people applied it to bootstrapping the Web. Making Perl the best tool for growing programs from small to large is actually one of the underlying design goals of Perl6. But other people will use that to inhabit, or even create, other ecological niches. I hope to be surprised again as I was with the Web. I could, of course, be completely wrong.

10) How to get people to take Perl seriously
by kin_korn_karn

I'm a perl programmer who uses it daily. The push is on from the C?O types to get rid of Perl, even though a bunch of us here know it and are very proficient and fast with it. The new standard is Java with web services and all that other BS. This sickens me, because a) I'm biased towards Perl and b) I know Java is simply a fad language and the overhead/infrastructure only serves to give do-nothing architect types jobs.

The high-level technical people in my company don't take Perl seriously. They see it as some kind of super-Awk or an artifact of the early days of the web. Smart people know better, but we're not in charge.

What do you think it would take to get people to take Perl seriously as a programming language [again]? Is widespread use of Perl a goal of yours, or do you not care?

A:

Well, if Java really is a "fad" language, we don't have to do anything to beat it, now do we? :-)

Leaving that aside, my goal is (and has always been) for Perl to be as useful as possible. It naturally follows that if people are avoiding Perl for artificial reasons, Perl is not being as useful as possible. So there's a place for advocacy. It is an unfortunate fact that, human nature being what it is, an ounce of cheerleading often beats a pound of rational discussion.

However, my job is not to lead cheers, but to make sure that Perl is designed to be maximally useful. It has never been a direct goal of mine to be "taken seriously". For good or ill, I am composed of far more levity than gravity. And I'm afraid some of that rubs off on Perl, too. But if Perl is everything it ought to be, it will naturally attract serious attention over the long term. If ecological niches are natural, and if nature abhors a vacuum, it follows that ecological niches abhor vacuums too. I expect to hear some great sucking sounds over the next ten or twenty years.

This discussion has been archived. No new comments can be posted.

Larry Wall On Perl, Religion, and...

Comments Filter:
  • by dpt ( 165990 ) on Friday September 06, 2002 @12:22PM (#4206994) Journal
    Perhaps that's something for companies to consider. Every place I've worked, large and small, has had some Perl working away in the background in some capacity - from humble one-off tasks like formatting the odd bit of text through to being the driver for the automated test framework or managing the corporate web infrastructure.

    We seem all too willing to throw money at licenses for Office, but my team uses Perl in many interesting, fun and labour saving ways every single day - even though ostensibly we're coding in C. I think I might make a case to my manager on Monday that a small donation has *already* paid for itself ...

  • Excellent (Score:5, Interesting)

    by totallygeek ( 263191 ) <sellis@totallygeek.com> on Friday September 06, 2002 @12:22PM (#4206998) Homepage
    Always great to read something from Larry Wall. I chuckled a bit recently when I saw the "Wall Nut House".


    Excellent interview; would like to see more with him in the future. My dream list right now would be:

    • Steven Hawking
    • Bill Joy
    • Bill Gates
    • Steve Jobs
    • Mark Horton
    • Eric Allman
  • by phorm ( 591458 ) on Friday September 06, 2002 @12:26PM (#4207032) Journal
    I was somewhat wondering who might actually have suggested this, probably not anyone who has made a serious use of Perl.

    When I first used Perl, I found the $%@ symbols confusing as all heck, and wished it was more like PHP.

    Now that I've used a lot of Perl, I wish PHP would make more use of the $%@ symbols for clarity sakes. Actually, it would be a lot nicer in many languages to use symbol-defined clarifiers, I certainly get tired of "Dim Somevar as sometype" and "sometype somevar" when somebody makes an extremely ambiguous name which doesn't differentiate an array from a scalar or reference variable.

    Ignorant people keep educated people employed! - phorm
  • Re:Good point on PHP (Score:3, Interesting)

    by twoshortplanks ( 124523 ) on Friday September 06, 2002 @12:27PM (#4207037) Homepage
    Domain specific languages are really good. They allow you to think more about the task at hand than the task of getting the language you are using to do the task.

    Of course, one such example of a domain language is the Template Toolkit [tt2.org] which is a language that's inside out and designed to be used in places like webpages and config scripts. It's used in Slashdot, and written in Perl (and can call perl routines really easily called.) There's a good justification why not to use pure Perl in the template in the manual [template-toolkit.org]

    Of course, come Perl 6 we'll be able to redefine our own grammers. By using a module (technically a grammer) we'll be able to dynamically switch in anohter rule (er, perl 6 regex able to match grammers) in the current scope to parse the current section - essentially our own little mini langauge.

  • Re:Good point on PHP (Score:5, Interesting)

    by twoshortplanks ( 124523 ) on Friday September 06, 2002 @12:33PM (#4207082) Homepage
    Personally? Because I find that PHP is too powerful for an embedded language. You end up with this large chunks of code in the middle of your HTML making it really hard to maintain.

    Give me a simple language like the Template Toolkit that can connect to a more powerful language (er, Perl) to do the difficult stuff any day.

    Of course, you may disagree, and you're not stupid or evil for doing it. You just have a different point of view...I'm certainly not going to start bashing PHP.

    Of course, wat I'm really waiting for is Parrot to be completed, both with the ability to run Perl 6 and PHP generated bytecode, so we can both use whatever we want, call each other's code all over the place, and play nice together...

  • by Jeppe Salvesen ( 101622 ) on Friday September 06, 2002 @12:36PM (#4207112)
    You can't please God the way Enoch did without some faith, because those who come to God must (minimally) believe that:

    A) God exists, and
    B) God is good to people who really look for him.

    That's it. The "good news" is so simple that a child can understand it, and so deep that a philosopher can't.


    As much as I respect Larry, I have one thing to say : "The Devil is in the details". "God exists" sounds so simple. It's not. Ethics are fundamentally different in the presence or absence of a God. In the absence, ethics are based around pragmatism and as such adaptible. In the presence, ethics are given to us. Look at history. Which case has proven the better approach? I'd rather God not existed, but if he does, I hope he has foregivness for me since I do in fact live by many of his rules - only out of pragmatism. I expect to burn in hell if there is such a thing, though.
  • by bravehamster ( 44836 ) on Friday September 06, 2002 @12:36PM (#4207113) Homepage Journal
    Hmmm. Seems to me that could equally be the basis for an argument against an "Author". If you look at life on earth, there is basically only one way to do it. It's all genes and DNA and every complex living thing shares something in common with the others. There is no "artistic expression" that shows up at all.


    It's hard to see the diverse creative gifts of an author when you're only looking at a single page of a novel.

  • by Longinus ( 601448 ) on Friday September 06, 2002 @12:45PM (#4207182) Homepage
    Let's not forget J.R.R. Tolkien and C.S. Lewis.
    Not exactly hackers, but staples of any geek's diet.
  • Re:Good point on PHP (Score:3, Interesting)

    by Telastyn ( 206146 ) on Friday September 06, 2002 @12:48PM (#4207199)
    Oddly enough, I use php for most of the stuff people use perl for: log parsing, process handling, and general scripting use. Mainly I've not had the need or time to learn perl, despite the fact it's generally nicer; more stable; and a hell of alot faster.
  • wall and morality (Score:3, Interesting)

    by Anonymous Coward on Friday September 06, 2002 @12:56PM (#4207254)
    Larry Wall ses: "Because if it turns out to be 0, then we really are the slaves of our selfish genes, and there's no basis for morality other than various forms of tribalism"

    there it is again! Religionists, including christians, believe they have a monopoly on morality! this is ignorant and insulting, and you should be ashamed of yourself. Here's a couple of alternatives upon which to base a morality:
    1) The Golden Rule: Treat others as you would like to be treated.
    2) Homo Sapiens is a social animal, but it is not possible to put any number of animals together in a society without establishing rules of engagement; i.e. a moral code. Call it tribalism if you wish, but since every religious cult seems to have its own moral code, i don't see how religious tribalism is in any way superior to secular tribalism. If there really is an omniscient, all-powerful creator, he/she has done a really shi--y job of getting across a consistent message.
  • Re:Hmmm... (Score:3, Interesting)

    by dystrophy ( 95144 ) on Friday September 06, 2002 @12:58PM (#4207273) Homepage
    From the Christian perspective...

    God is Omnipotent, Omnipresent, but NOT Omni-controlling. Bad stuff happens to good people because we're not preprogrammed to a set of only good behaviors. We have free will that affects us and others. That doesn't stop the fact that He (God) loves us, and is willing to forgive us in the case where we make life changing decision(s) and turn away from that (and other) wrong.

    I thought Larry did a wonderful job of distilling the Bible into two bits. If more pastors, priests, and normal Christians had as simple and life changing a belief, a lot of the ugliness between each other (inter-Church), and other belief systems (Christian vs. neo-paganism or atheism) would be resolved. Agreeing with others outside of your personal views is definitely not required in Christianity, but loving them is.

    Given the condition that the two bits that Larry proposed are set, I believe that two more bits are in order. Whereas the previous two bits relied on God to view and set them, these two are set by your response to God:


    A) Love God with everying you are
    B) Love the people around you like you love yourself

    These two bits, when set, change your life.

    -darren
  • WWJD?? (Score:2, Interesting)

    by Anonymous Coward on Friday September 06, 2002 @01:07PM (#4207333)
    Wow. Larry said what I've been thinking for a long time - this whole "What Would Jesus Do?" business.

    I'm a Christian, been that way for a long time (in the Protestant Evangelical sense of the word). Frankly, the answer to WWJD?? is "Probably not what I'm going to do." It may be morally motivational for some, but frankly for me it's very hard to imagine "What would (the Son of) God do here??" when you consider both a macro (in addition to micro) view of God.

    Anyway, great interview.
  • Re:Good point on PHP (Score:3, Interesting)

    by Kaz Riprock ( 590115 ) on Friday September 06, 2002 @01:09PM (#4207347)
    Using both perl and PHP for my various needs, I find that they have equally valid uses for me. I am much happier programming my PHP for WWW-to-DBI applications. If I have my postgresql DB up and running, then I find it more intuitive to use PHP commands that I've learned to access that data and then use its scripting to do any data manipulation (rather than pass it off to another language, etc).

    When I'm not accessing my database and just need to parse output or setup other sorts of webpages and things, I find perl to be exceptionally talented as well. It all depends on the entire context of my problem and the involvement of databases and DBIs for me. I know that perl has DBI capability, but I find PHP's DBI commands and things to be a bit more intuitive to the way I think.

    This is very similar to Larry's reason for Perl in the first place: Anything to make the user happier about programming the way they want to program...

  • Re:Sorry Larry (Score:3, Interesting)

    by tweek ( 18111 ) on Friday September 06, 2002 @01:17PM (#4207423) Homepage Journal
    Depends on what you consider "good".

    Was God good to Job, his most faithful of servants?

    Good is a relative term. Many health and wealth preachers will try and tell you otherwise but it's simply not the case.

    I would consider God being good to me if I wake up in the morning or if I don't die on the way to work because of some jackass who doesn't understand the concept of a loop exit.

    The Bible never promised riches to those who were faithful. Well not unless you count the ones that we store up in heaven. Hell, Jesus himself said that.
  • Axioms (Score:4, Interesting)

    by Jerf ( 17166 ) on Friday September 06, 2002 @01:20PM (#4207448) Journal
    I love it when religious arguments that purport to be "logical" include statements like this.

    You need to go back and study your logic more.

    All logical arguments contain statements on the order of "God told me." They are called axioms. Axioms are the foundation of a given logical system and cannot be proven inside of the system. If they can be "disproven", we call the system "inconsistent", but for any non-trivial real-world philosophical system, it's effectively impossible to disprove the axioms, either.

    You cannot avoid the need for axioms. Some common axioms that most of us accept include "We are not just brains in a vat being fed sensory information with no 'real world'", "Other people are concious entities as I am (non-solipsism)", more generally "The real world really exists, for some definition of 'real'". None of these statements can be proven; we take them on faith.

    Things get especially fuzzy when talking about personal experiences. How would you know if God is speaking to you, if he exists? How do you know he didn't? You end up needing to axiomize here, too.

    To stay on a meta-level, few people examine their philosophies well enough to uncover their axioms, and few people ever compare their axioms carefully enough to the real world to see if they match, or if their own behavior matches. Worse yet, a lot of people accept on an axiomatic level that "I am correct", writing the ability to question beliefs right out of the equation. (While often also simulataneously accepting the contradictory axiom that they are "open minded"!) With respect, if you can make statements like that, I would strongly suggest that you may be one of those people.

    To me, one of the worst things about people accepting the "strict materialist scientific" viewpoint is how rarely they examine it closely enough to realize how little they live their lives that way. That viewpoint essentially precludes all ethics or morality, since that viewpoint completely eliminates any concept of "good" or "bad". (Some people patch it up by defining some concept of good or bad, but it's usually boils down to hedonism, on one level of sophitication or another, which is unsatisfactory to most people, even when their system says that's all they can hope for.) If you (the reader, not our dear friend "Anonymous Coward" here) have examined your philosophy and feel you have answers to this issue, then fine; you'd probably agree that it's not a common thing to do.

    A highly consistent system can be built around accepting God as existing, in my non-humble opinion, much more consistent and logical then any such system that does not. I strongly recommend the works of Francis Schaeffer [google.com] for a good treatment of that. (Several seperate books combine to form one whole, plus other books which then build on that foundation.) Until you have examined this foundation, plus the foundations that others believe in, in particular Larry's (since you attack him in particular in your message), you probably shouldn't be tossing accusations around. (I don't know Larry's though it sounds familiar based on this small snippet I see; I don't want to jump to any conclusions, though.)

    In particular, it is importent to first examine the system in its own context before passing judgement on it. Examining a philosophical system from the point of view of another one is a waste of time... OF COURSE it will look like it has holes, there's a serious mismatch. That tells you nothing. Believe me, the scientific strict materialist has its own share of wholes from other points of view, too!

    In summation, you should put your own affairs in order and learn more about how logic REALLY works before accusing others of being illogical. Logic is not on anybody's side, not even the scientific strict materialists. It is a tool that works for all equally, based on the axioms input into it. (Of course, all but one system will be logically flawed, except the true system, but determining which system that is in real life is not something to be done causually. Some may be patently obvious, but the better-thought-out varients of Christian theology/philosophy are IMHO not one of them.)
  • Re:Hmmm... (Score:4, Interesting)

    by Erore ( 8382 ) on Friday September 06, 2002 @01:31PM (#4207551)

    If you want to combine this discussion of free will and the writings of JRR Tolkien, read chapter 2 of the Silmarillion.

    You'll see that it is a story about free will. Free will for the dwarves, free will for Aule. Parallels to the Bible as explanations of why God created us and gave us free will, as well as the free will choice of Abraham to "begat" Ishmael, to "begat" Islam, to "begat" future conflict between the Jewish and Islamic people. (I'm not trying to start any flame wars here about the Jewish and Islamic faiths, I'm trying to show how the choice of one man led to some pretty big things years later.)

    Free will "begat" an awful lot of future strife in both the Silmarillion and the Bible-real life. But, that free will never altered God's perfect plans for his creation. Which is exactly what the opening sequence, called Ainulindale, of the Silmarillion is all about.

    "...and often strife will arise between thine and mine; the children of my adoption and the children of my choice."

  • "Hymn #42"? (Score:3, Interesting)

    by Mendax Veritas ( 100454 ) on Friday September 06, 2002 @01:32PM (#4207562) Homepage
    That would be the Jethro Tull song of that name, right?
    Oh, Father high in Heaven,

    Smile down upon your Son,
    Who's busy with his money games,
    His women, and his gun.
    (Oh, Jesus, save me!)

    And the unsung Western hero
    Killed an Indian or three,
    And then he made his name in Hollywood
    To set the white man free.
    (Oh, Jesus, save me!)

    If Jesus saves,
    Well, he'd better save Himself
    From the gory glory seekers
    Who use His name in death.

    Well, I saw him in the city
    And on the mountains of the Moon;
    His Cross was rather bloody
    And he could hardly roll his stone.
  • by abischof ( 255 ) <alex&spamcop,net> on Friday September 06, 2002 @01:33PM (#4207569) Homepage
    It's especially odd that you get "403 Forbidden" if you try to run it through the Validator [w3.org] :-/.
  • Re:Sorry Larry (Score:3, Interesting)

    by tweek ( 18111 ) on Friday September 06, 2002 @01:41PM (#4207622) Homepage Journal
    That's simply not the case. Can you REALLY measure happiness? Some things are immeasurable. You're getting hung up in the tangible. Wind is not tangible. You can't touch it. You can feel it's effects and see it's effects but is it tangible in the same sense as a glass of water?

    I'm alot like you in that I think too much about things. It's a blessing AND a curse.

    Take something like love. Is my love for my girlfriend measurable? Sure I can buy her gifts and tell her I love her but there is no true measure of love because by nature it is intangible. It's this ethereal concept.

    Something interesting that the Bible talks about is faith vs. works. Meaning are we given salvation because of our faith or the "good" deeds we do.

    Paul says that your faith in God is enough to save you but that the end result of TRUE faith is good works. A TRUE faith is evidenced by the works of the person who has that faith. It's a natural by-product.

    And now here's another twist to the whole thing. Not only are good works the offspring of your faith but you yourself aren't even doing the good works. God is doing them THROUGH you. Pretty neat.

    In the end, if you don't honestly WANT to believe in God, you aren't. Nothing can change your mind about that. But if you are a true seeker of truth, I feel that WHATEVER the real truth is (Jesus, Buddah, Allah) will reveal itself to you.
  • by knodi ( 93913 ) <softwaredeveloper.gmail@com> on Friday September 06, 2002 @01:50PM (#4207661) Homepage
    I think he meant "from the point of view of people who really look for him, God is good".

    You are all refuting and arguing the OTHER interpretation, "God gives good benefits and preferential treatment to those who really look for him."

    Kinda ironic, people accuse PERL of being impossible to parse without an author to consult.
  • by FreeUser ( 11483 ) on Friday September 06, 2002 @01:52PM (#4207688)
    God is good to people who really look for him.

    This is actually a premise we can test, and it's simply false. Many studies have been done comparing religious and non-religious people, and it's never been found that religious people end up with "better luck" (better health, better livelyhood, better children, etc) that non-religious people.


    You are absolutely correct.

    The beauty of religion, and why it can persist in the face of reason, and even seduce intelligent people like Larry Wall, is that the parameters of every definition are endlessly malleable.

    Remember that mustard-seed sized bit of "faith?" That provides all the wiggle room required for any religious premise, no matter how prima facia absurd, to withstand argument, provided you argue on their terms (which is almost always what is expected and demanded). "Faith" means acccepting something which defies logic, so the theologens are correct when they say a tiny bit of faith is all that is required. A tiny bit of willingness to defy logic and accept the absurd is all that is required to promote, and buy into, any belief system at all, no matter how absurd, how self-destructive (remember the now-extinct Shakers? How about the People's Temple?), or how simply plain wrong it is when illuminated by the cold light of reality.

    In this particular case, the non-religious people end up being burned 'alive' for all time, while the religious people enjoy a profoundly boring existence playing harps in the presence of the universes most stodgy old man (which of course, makes one wonder what happens to those whose harp-playing skills aren't up to snuff).

    Or some variation thereupon, the key ingredients being "the faithful" (there's that word again) get to live well, while the "non-believes" (that would be you and I) are tormented forever.

    Given that, god really is good to those who look for him, at least in comparison to his treatment of those who do not.
  • by opk ( 149665 ) on Friday September 06, 2002 @02:33PM (#4208064) Journal
    It baffles me as to why it remains the case that scientists and a belief in god are still regarded as incompatible.

    The level of scientific discovery a hundred years ago was such that it appeared that everything could and soon would be explainable my the laws of physics. These laws of physics as they then stood didn't particularly lend themselves to explaining a god. Since then with quantum physics and that stuff it now seems more likely that discoveries in physics will go on infinitely both as we look smaller and look bigger and that it won't be possible to apply laws of physics to predict the state of something given the parameters of its initial state. This makes it easier to believe in something which can't be explained by laws of physics.

    Darwinism is also often quoted as being incompatible with the idea of creation. However it very elegantly puts distance between the creator and the created. If you imagine building a robot, you couldn't honestly claim that the robot has free will because it will be doing what you programmed it to do. That we have free will is very important to my beliefs. I find it hard to take the idea that everything is predetermined by fate and that my mind should just be an automaton. I'd also find that case very depressing.

    I agree with the point that there are many "irrational/ignorant/intolerant Christians in the world". Many give the religion a bad name. I am quite prepared to admit that I am only a Catholic because my parents were. I don't take everything the Pope says literally but the religion is based on 2000 years of thinking by many people far cleverer than myself so I wouldn't gain by dismissing it completely. I also keep an open mind to many other religions. When travelling in South-East Asia I read up on Buddhism and the fundamentals are very interesting and were very compatible with my other beliefs.

    I currently share a house with a very religious muslim and in discussions we tend to find there is much more we can agree on than disagree. There isn't really that much difference between the two religions. Islam basically started out as a Christian sect and in that it wasn't unique at the time for not believing in the divinity of Christ.
  • by Anonymous Coward on Friday September 06, 2002 @02:41PM (#4208106)
    Well I agree with the bad spelling. It did have insight. If you actually followed Logic and studied MATH. It is a true statement.
    if X is true then God exists.

    lets say X is false.
    God can still exist.

    the truth table
    X God if X then God
    --|---|---------------
    T | T | T
    F | T | T
    T | F | F
    F | F | T

    Study math it helps. It also stops you from making the converse error that you have made.
  • Re:Hmmm... (Score:2, Interesting)

    by doggo ( 34827 ) on Friday September 06, 2002 @04:35PM (#4209072) Homepage

    "Perhaps God no longer acts in obvious ways like this because they simply don't work. "

    Or perhaps God no longer acts in obvious ways like that is BECAUSE IT'S A BOOK! It's fiction. Parable. Written by men. Men interested in controlling the behavior of other men in order to maintain power over them.

    I am so sick and tired of Christians pointing to the Bible as though it provides incontrovertible evidence of the existence of God, the will of God, and the godhead of Jesus. It's no more proof of God than The Adventures of Huckleberry Finn is.

    And another thing! Jesus is the messenger, not the message. Why do so many Christians insist on worshipping Jesus? Isn't that putting Man before God (If Jesus ever really existed).

  • Re:Hmmm... (Score:2, Interesting)

    by EthSoma ( 136344 ) on Friday September 06, 2002 @04:42PM (#4209121)


    Yes, but this isn't a perfect analogy. God is supposed to be both omnipotent and omnibenevolent. You have no such constraints.

    We are capable of commiting "evil" acts, and God isn't. Thus, the simple observation that there is evil in the world commited by humans implies that humans are more powerful than God. It's not simply that god chooses not commit evil acts, omnibenevolence requires that he does not commit evil acts.

  • Without God, NOTHING has meaning.

    Why do you think anything HAS to have meaning? To be honest, I gave up on the idea of anything anyone does having any intrinsic "meaning" a long time ago. The only reason anything matters at all is because we are genetically programmed to assign meaning to thing in order to maximize our survivability through a stable society.

    But hell, isn't that enough? Can't we take pleasure in the "grand machine" that is the universe, and the random chance (through the process of evolution) that produced us? Why do we need a "clockmaker" behind the curtain?

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...