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. "
It's available on every platform, it's as easy or hard to use as you want to make it, and there are literally hundreds of different ways to accomplish a task - all of them as "valid" as the next.
It also smells great!
--
# Nevertheless, Perl blows
Huh huh, OK Beavis.
# and I think its design philosophy is why, rather than some
# implementation detail or other accident. It was interesting to see what
# kind of language we would end up with with the design principle of no
# design principles. Well, the language we ended up with is one that I
# find egregiously bad.
But there were and are design principles. I imagine you know this, though.
# Obviously I was stating my opinion, not trying to offer a proof of why
# Perl is bad.
It was not obvious. Usually, in my experience, when intelligent people express their opinions publicly, they try to offer some reason why others should agree. I am not insinuating you are unintelligent, but the opposite: I assumed that because you are intelligent, you were trying to offer some evidence of why Perl is "bad". I assumed incorrectly. I won't do so again.
# The ``X'' that Perl is is ``sucky.'' I hold that truth to be
# self-evident.
Nonsense. That all men are created equal and are endowed by their Creator with cretain unalienable rights can be said to be self-evident (and in fact, I believe it was). That Perl is "sucky" is not. Are you kidding here, or are you trying to hurt your argument^Wopinion?
# But don't confuse the act of giving the programmer freedom of
# expression, and the act of giving the programmer a simple, consistent,
# easy-to-undertand tool. You can do both.
I don't find consistency to be that important, or simplicity. Some of our more complex and inconsitent tools are our most powerful. Like Unix itself. Then again, you probably don't like Unix.
Regardless, Perl is pretty simple. It is also very complex. It is what you want. Babies can speak English, and yet it is rich enough for the most complex expression of ideas.
# Just because a tool is a simple
# and easy-to-understand device (like a lever, or rope) doesn't mean it
# restricts the artistic expression of those using it. Help, help, I'm
# being oppressed!
No, but a canvas and paint offers more room for expression than a rope does. That's why the Louvre has ropes protecting the paintings and not vice versa.
# I consider simplicity, consistency, and orthogonality to be good things
# in a tool. I think that when you want to provide a tool to solve a
# problem, you should think the problem through, and cover all the
# permutations. Figure out what's needed, and do it in a simple way.
# That's not the Perl approach. The perl approach is much more haphazzard
# than that, and usually involves a new line-noise syntax and some regular
# expressions.
If you are talking about the approach of some Perl programmers, that's true. If you are talking about the approach of the developers of perl, that's false.
# Perl most assuredly does encourage a particular programming style. It
# does this by the shortcuts it provides. Perl encourages you to think
# about everything as text manipulation, when (news flash!) most things
# aren't. It encourages use of regular expressions, even when they would
# be inappropriate (which, news flash, is almost all the time.) It doesn't
# force you, no, but it makes one path easy and the other path hard, and
# that's all it takes.
Perl does not encourage bad programming, it attracts bad programmers (and good ones, too). The language cannot be reasonably faulted for allowing bad programmers to program badly with ease. You are wrong to say that regexes are easier than other methods.
And, sure, bit manipulation in Perl is not the easiest (though if you understand bits, it isn't exactly difficult, either). But substr and rindex and index and split are very simple functions to use. I daresay they are significantly easier to use than regexes. The problem with people using regexes when they shouldn't is not technical or linguistic but social. People are incorrectly taught, one way or another, to use regexes when they don't belong. Again, you're talking about bad programmers. They are bad in any language. I'd rather have bad programmers using Perl regexes inappropriately than using C pointers inappropriately.
# Furthermore, ``There's more than one way to do it'' is not a virtue in a
# multiple programmer environment. When someone else is going to see your
# code (and unless you're doing an art project all on your own, someone
# will) your responsibility as a programmer is not only to make the
# program work, but also make it maintainable.
You have not demonstrated that TMTOWTDI is the enemy of maintainability. Maybe it is just your opinion, but unless you are going to back it up, don't expect anyone to care what your opinion is.
As someone who got a degree in Literary Theory (BA, and MA), you're absolutely orrect, and so is Sokal.
I knew I was in a scary field when my graduate advisor said "the future is a scary thing" and he MEANT it!
However, fear of science really isn't the motivating factor in most of the pseudo-scientific gibberish you see lit folks spouting -- it's JEALOUSY of science. They think that, by repeating the phrases of science, they somehow imbue themselves with the aura of Science, and therefore Real Knowledge.
After all, these are folks who seriously believe in the power of Words, and frequently seem to hold that saying something is the same as DOING something.
Consequently, saying the words that scientists use is, to their mind, logically the same as being scientists themselves. They envy the respect that Hard Science gets, and want to get it for themselves.
Instead, they just look stupid.
. . . but really, I'm not bitter. I promise.
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.
--tom
Perl seems to my mind to actually
.sig block and then all the
help readability in many ways. the
fact that you can tell at a glance
that $array is a scalar variable and
@variable is an array
is (again depite the name) and array
is easy.
I do write a lot more Perl than I have
to read but I've been told by those
who have to maintain my old code that
they can tell what is going on and modify
it when they need to. It's
the only language that I trip across
old embarrasing code of mine in on the
net that sucks rocks, but it does still
work.
The "write only" aspect of Perl can be seductive
though. At the moment I'm writing piles
of code for the pharmaceutical biz and I
try really hard to write in "baby talk" so that
if I get hit by a meteor any random hacker
with a smattering of perl can pick it up
and run with it, but.. jeez. I could compress
that 200 line program down to into something
that would fit in a
grrls would think I was k3wl... but that's the
Dark Side.
garyr
-- your Web browser is Ronald Reagan
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...
I just finished reading Scott Meyers' "Effective C++" and "More Effective C++". I can assure you that the C++ user is always wrong! ;-) C++ is far too complex for mere mortals to grok. No surprise that so much "modern" software sucks!
(If you do program in C++, I highly recommend you read Scott Meyers' C++ books. They are indispensable.)
cpeterso
I was more surprised to see Wall focus on the rather minor feature of whitespace; syntax is only part of design philosophy, and Python's primary feature isn't its use of whitespace, any more than Algol-68's primary feature was its introduction of the "fi" keyword. Instead, Python's primary idea is really namespaces. Modules are namespaces. Classes are a bunch of namespaces with rules on how to look through them, and instances are namespaces on top of classes. It's noteworthy that Python's object model could be mapped to Perl fairly straightforwardly, influencing Perl 5's OO features.
Rather, it's a consequence of the observation that people indent their programs anyway, even though in the languages which use various symbols for marking "blocks" (whether {/}, begin/end, if/fi/do/done, ...) don't require it. You could say Python enforces the readability people normally would add to their code.
(The only reasonable argument against it, IMHO, is that it makes looking for "block end" slightly more difficult than to look for '}'.)
The following question and answer really make
Mr. Wall seem foolish. Whitespace in Python == A boot coming down in the face of mankind, forever?!
Marjorie: In what way is Perl better than other scripting languages such as Python and Eiffel?
Larry: Perl is unique, not just among scripting languages, but among computer languages in general. It's the only computer language consciously and explicitly
designed to be postmodern. All other computer languages are still stuck in the modern era to some degree. Now, as it happens, I don't normally use the term
``postmodern'' to describe Perl, because most people don't really understand postmodernism, even as they embrace it. But the fact is that American culture has
become thoroughly postmodern, not just in music and literature, but also in fashion, architecture and in overall multicultural awareness.
Modernism was based on a kind of arrogance, a set of monocultural blinders that elevated originality above all else, and led designers to believe that if they
thought of something cool, it must be considered universally cool. That is, if something's worth doing, it's worth driving into the ground to the exclusion of all other
approaches. Look at the use of parentheses in Lisp or the use of white space as syntax in Python. Or the mandatory use of objects in many languages, including
Java. All of these are ways of taking freedom away from the end user ``for their own good''. They're just versions of Orwell's Newspeak, in which it's impossible
to think bad thoughts. We escaped from the fashion police in the 1970s, but many programmers are still slaves of the cyber police.
In contrast, postmodernism allows for cultural and personal context in the interpretation of any work of art. How you dress is your business. It's the origin of the
Perl slogan: ``There's More Than One Way To Do It!'' The reason Perl gives you more than one way to do anything is this: I truly believe computer programmers
want to be creative, and they may have many different reasons for wanting to write code a particular way. What you choose to optimize for is your concern, not
mine. I just supply the paint--you paint the picture.
I work with C /C++ ( used to be ASM on various platforms) and anytime I look at something written in PERL it just makes me sick. It is quite possible that this language is perfect but its syntax seem to be designed to scare off people. It sort of resembles to me output generated by encrypting software ...
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.
The cool thing that gets everybody all charged up about Perl (at least the people I've shown it to) is regular expressions. The ability to say "hey, give me every line that has 5 entries, separated by spaces, with the 2nd entry containing either 3 letters or starting with a letter that isn't in this list" seems impressive to people who've only coded in C. It's like showing a hammer to people who've lived their lives driving nails with a pair of vice grips. A cool tool for a particular set of problems, and a decent one for lots of others. One big problem with Perl is that you may return to your code and find it utterly unreadable.
Given that the Palm is far better at displaying text than graphics, I'd say Perl would be a natural for it.
Except that writing code with Graffiti would sort of suck.
"There is a diminishing return on caution."
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.
I was very excited about PHP when I first came across it. It was easier and faster then Perl for CGI stuff. But then I kept coming to spots where I really needed a function or language contruct that PHP just didn't have. In the end I went back tp Perl full time. it's a much more full-featured and mature language. I'm still watching PHP development closely though and may use it for other projects in the future.
Time to break out the Jack Chick comic books!
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.
Yeah! One of my favourite sites! Check out The Trick! Wild!
http://www.chick.com/catalog/tractlist.a sp
Woah, what's up with Larry and the religious references? I have nothing against people believing whatever they want to believe, and sure don't want to start a /real/ religious war, but how exactly does a missionary become a coder?
(Ever notice how the best coders often had career plans totally different than what they ended up doing?)
Later,
A.C.
exactly. I know I've had to decode stuff written
by psycho-looser-poor-ass-excuse-for-a-programmer.
What I was saying is that even if they do use
terrible names the "line noise" of perl at least
gives you a hint. sure, $first_name could be
a reference to an array of first names but at least its a hint.
garyr
-- your Web browser is Ronald Reagan
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.
I liked the point where he was looking for a name for his language. To actually fumble through the dictionary at every 4 letter word. THAT'S dedication.
"We're not just talking about dinosaurs here, but also snail darters and cheetahs and a bazillion beetles in Brazil---not to mention Visual Basic."
HEH.
-- Give him Head? Be a Beacon?
-- Give him Head? Be a Beacon? :P)
(If you can't figure out how to E-Mail me, Don't.
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
With one exception, you've just described JavaScript.
The one exception is convenient access to files, and that's the killer that has prevented it from being used as a batch-mode shell scripting language until now.
I really wish someone would fix that, because I would love to be writing scripts in JS instead of Perl. (It wouldn't take much: just a little syntactic sugar to make the act of listing, opening, and closing files be a less verbose process.)
Here's a telling example of the differences between the two languages: both allow you to treat everything as text manipulation (streams of bytes, regexps, etc.) And both allow you to construct objects and assign them behavior and manipulate things at a high level.
But there is a particular focus built into the language. Sure, there's ``more than one way to do it,'' but the nature of Perl, the nature of the language's shortcuts, encourages you think about things as matching patterns in text, instead of as communication between objects. While allowing both, JS focuses on the latter.
``All the world's a stream of bytes'' is the most horrible and damaging part of Unix's legacy. It has stunted a whole generation of programmers.
;)
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!
Fellow post-modern computer scientists, despite
his claims to have developed a post-modern computer language, Larry Wall is unable to
break radically with cartesian rationality.
Perl promotes a totalizing discourse which defines(!!) every statement as right or wrong syntax, privileging the white, male programmer.
Only Visual Basic which allows development free from externally imposed structures can liberate
hitherto marginalized voices.
Long live goto!
Death to Larry Wall
Perl is not algebra. Perl is an abstraction to a more complex system. There is not scientific reason, no logical reason, no reason at all why this is necessarily wrong or bad. You're arguing from a specific opinion and worse, arguing definitions from definitions. Programming languages are X, Perl is not X, so Perl is not a very good programming language. But what if the idea that programming languages are X is disputed? Indeed, this is the case.
:)
I'm not saying you need to like Perl or its design. You don't. But I would just hope that if you are going to be making a formal argument, as you appear to be doing, that you support your argument a little bit better than you have. Your definition of what a programming language should be is rejected by Larry Wall and the developers of perl, as well as many of the users of perl. So to use that definition as a basis for discussion isn't interesting.
Of course, Perl technically _is_ a formal mathematical system. It's just a really complex one with lots of quirks, idioms, and apparent inconsistencies. But of course its _spirit_ is nothing resembling a formal mathematical system. This is a good thing, your unaccepted definition of "programming languages" notwithstanding.
You say this fuzziness is inappropriate for a computer language. I disagree. I think it is highly apprpriate. Programming is, to me, art. It is a craft. And Perl lets me be expressive. This is important, and in my opinion, Perl's "fuzziness" is essential to the goal of allowing users to be optimally expressive. And the process of creation is just as important (to me) as the end goal.
And since you don't give any real support for your opinion, mine is just as good as yours, except I like mine better, so I win.
pudge@pobox.com
http://pudge.net/
After a few hours of banging my head against the wall, I discover this little gem buried on p. 70 of the Camel Book:
If the PATTERN evaluates to a null string, the last successfully executed regular expression not hidden within an inner block ... is used instead.
D'oh!
--
perldoc English and perldoc perlvar will tell you more.
After all, there is more than one way to do it :-)
I have excatly the same feeling about PERL. It just looks like hack, unreadable and encouraging to write cryptic code. For now I will stay with C++ and use Python for scritping stuff ...
"arhaic?" "antiquated; no longer in ordinary use"? (And that's 40-something built-in $ variables, most of which can also be referenced with words.)
"C is mother, C is father", but Perl's still cool (and postmodern!).
He mentions that he has been "playing around" with
his Palm Pilot. Does that mean we can hope to
see a subset of Perl on the Pilot? God I hope
so. That would rule.
"Perl seems to my mind to actually
help readability in many ways. the
fact that you can tell at a glance
that $array is a scalar variable and
@variable is an array
is (again depite the name) and array
is easy. "
I'm going to have to object to your line of reasoning here. Any psycho-looser-poor-ass-excuse-for-a-programmer that names their variables "array" or their arrays "variable" deserves every form of torture their maintainers can dream up.
Maintainers can get downright creative when it comes to thingking up new and interesting ways to inflict pain on the original coder. Be nice to the people who may someday have to read your code. Comments and a clean writing style are all that stand between you and a sever thwacking.
--Mark
Well obviously your perl code must at some point resolve to something computable.
Programming languages let you do all sorts of things that violate "purity". What do you think a type cast is? C will let you shoe horn anything you want as long as it doesn't cause a segfault.
Perl is by no means fuzzy. Every operation is founded on a set of principles that can be deduced by reading the source.
That said, Perl has some nice features that could be part of any language:
- regular expressions and pattern matching of course
- automatic memory allocation and garbage collection
- relaxed data typing and argument passing
- familiar C-like syntax
- convenient primitives for files, lists, stacks, queues, and hash tables
- eval
For short programs and "exploratory programming", these features are nice because you can avoid tedious details (declarations, memory allocation, pointers) that get in the way of what you want to really want to think about. Larger programs, however, need more constraints to at least ensure widespread agreement on names and types and to limit unexpected behavior (e.g., an eval might do anything).There are quite a few things I don't like in Perl, e.g., heavy use of $_, uncommented regular expressions, and omitting optional parentheses can make Perl programs look like so much gibberish. It would have been nice if one goal of Perl was to ensure that any program looks semi-sensible to a C programmer, but I guess you can't have everything you want unless you create your own language.
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've spent a bit of time beating my head against complex data structures in Perl, and while I'm sure I'll get the hang of these things eventually, I've had to make liberal use of Data::Dumper to prevent the syntax from biting me.
Of course, since Unicode support is coming to Perl, and all of the Zapf Dingbats are in Unicode, we can just extend the syntax to...
send all spam to theotherwhitemeat@ropine.com
Perl is a general purpose language with applications in system and application software.
PHP only applies to web content.
Perl is popular because of its power, extensibility, flexibility, openness, and because
it's been well marketed (yes, even as it is free).
-fb Everything not expressly forbidden is now mandatory.
I think the reason fundamentalist christians
get such a bad rap is because many of them
DO care if you are a homosexual or a consensual
sadomasochist, and they literally feel that you
would be better off dead. The most radical of
the group should not represent the entire cult,
but that is the way they are perceived.
-fb Everything not expressly forbidden is now mandatory.
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.
I like Perl a lot. It's easy, fast, and cool. But I too weary at times of the idea that Perl is "better" than other languages because it's so free-form.
The only way post-modernism -- including Perl -- can really work is if there is a "modernist" foundation under it. When everyone literally abandons ethical standards (because "there's more than one way to do it"), we have chaos. So too with Perl: it is dependent upon an orthogonal OS to even run! Or shall we rewrite Linux in Perl?
His principles can only be applied so far. Which means they're not useful for everything. Just like Perl.
DFL
Never send a human to do a machine's job.
It's line noise!! Muhahahaha!
3 /g';
$_="It's line noise!!\r"; $|=1;
$e='s/([\x41-\x5a])(\W*)([\x61-\x7a])/\l\1\2\u\
print while select('','','',.1),eval $e || $e=~tr [4567lu] [6745ul];
Slashdot's first reaction to VMware
As a poor commenter myself, I can assure you that anything I write in any language is going to be difficult for someone to understand. This doesn't make my code bad, the application bad, or the language I wrote in bad. It just makes me bad! ;)
--
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.
I'm not really objecting to your point of view, I've used a lot of languages, and all of them have their strong (well-loved) and weak (hated) points.
I do note though, on the particular point above, that you're not making a straight-up comparison.
I assume that when you do something big/serious in Lisp, you're making use of various constructs in the language such as (depending on dialect) packages, closures (lambda), OO (CLOS/Flavors), etc. You could certainly write a lot of conditional sexp's instead, but you want these features expressly because they improve the quality of the code.
Well, gee, Perl has these constructs too. (You just never see them in one-off, quick and dirty CGI scripts). It simply takes an investment of time before you learn how to use them.
Perl without Larry's morality
or oblique biblical references
is like Python without a parrot
skit or ip framing without reference
to carrier pigeons.
Really, I'm the canonical agnostic
Secular Humanist but Larry is the
best advertisement for Christianity
I've ever seen. [no one ever expects
the Spanish Inquisition - stop that
Guido...] His faith is an intregral
part of everything he writes. Maybe
this is what he meant when he said
that Perl has done more for missionaries
than if he had become one. He is a great
book review for his Author.
garyr
-- your Web browser is Ronald Reagan
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!
Hum - I've been trying PERL for writing CGI, but switched to PHP3 real quick. Frankly, I haven't used PERL that much to talk about it, but it seems to me that PHP3 is way better, at least as for as Web development goes. Could anyone explain why PERL is so popular ? I don't really get it.
(Sorry for my bad english, i'm french speaking)
:o) :o) HEeeeeeLLPp MEEEeee ! :o)
IMHO Perl/DBI is better that PHP :
1) DBI Module
With DBI (the DataBase Interface module for Perl)
Your perl source code are independent from the Database. If your database swap from MySQL to Informix (or Oracle) You don't have to change the code. PHP use native call, it's more speeder but not very portable.
2) Reglular Expression
4) Modules (CGI, FTP, MAIL, IRC/API, USENET)
A lot of interesting module are available in perl for easy Gate to do accross a Web-Database
eg :
Web/Database/Usenet
Web/Database/IRC
Web/FTP
Web/SMS
5) No other language to learn
PHP is easy and work fine in Unix and NT and seem to be a easy choice for Newcommer in WebDevelopment World. but it's JUST a WebDB language.
However, Perl/DBI a better choice for long time, and long vison project.
Well ! i home that will help you !
Perl/DBI users looks very rare, i'm feeling lonly on the PHP Hype
>To actually fumble through the dictionary at every 4 letter word. THAT'S dedication. :P
/usr/dict/words in combinarion with a little "pearl".
One might assume he just used
As it is, my code is getting looser and looser (is that really a word) to the point while explaining bits to my supervisor (a PhD. equipped scientist, not computing) I have to gloss over the bits that look like line noise
"That line that says s/[\_[\. \,\?]//g; does have useful function, it does xxxx"
At least we're writing computer code that looks like computer code, we could all be writing CoBOL, RMS protect us from that....
... and today's pet project has
If "postmodern" means having 100+ 2 character built-in variables consisting a dollar sign ($) and a random punctuation mark, I'll "regress" into "modernism", thanks.
Seriously, coming from C, Perl seems to make for needlessly archaic and unreadable code. Hard as I try, I can't get myself as excited about coding for Perl as half the open source community seems to be.
Much like any other programmer, Perl can be difficult to read. However I had to maintain a couple of thousand lines of Perl code written by a couple of other people, and one of them commented well, and that made it much easier to read. So Perl being a read only language does in a large part depend on the person writing it, much like any other language.