Larry Wall on the Perl Apocalypse
raelity writes "Larry Wall provides some insight into the design of Perl 6 on www.perl.com. "People get scared when they hear the word Apocalypse, but here I mean it in the good sense: a Revealing. An Apocalypse is supposed to reveal good news to good people. (And if it also happens to reveal bad news to bad people, so be it. Just don't be bad.) What I will be revealing in these columns will be the design of Perl 6. Or more accurately, the beginnings of that design, since the design process will certainly continue after I've had my initial say in the matter." " This is a really interesting article and worth reading if you're at all into Perl. Full of Wallisms, entertaining and insightful.
I guess I don't understand why people need to call other people "funny" because of they're beleifs.
It's my belief that I should quack like a duck while juggling bowling balls while completely naked, in the middle of Times Square.
That's funny. It might be my belief, but it's still funny. The two are not mutually exclusive.
I also think it's funny to take "apocalypse," which is commonly defined as the end of the world, all living things die, etc., etc., and redefine it to be a good thing. In the strict sense, Larry Wall is right. Merriam-Webster says:
apocalypse
Etymology: Middle English, revelation, Revelation, from Late Latin apocalypsis, from Greek apokalypsis, from apokalyptein to uncover, from apo- + kalyptein to cover -- more at HELL
Date: 13th century
1a: one of the Jewish and Christian writings of 200 B.C. to A.D. 150 marked by pseudonymity, symbolic imagery, and the expectation of an imminent cosmic cataclysm in which God destroys the ruling powers of evil and raises the righteous to life in a messianic kingdom b capitalized: REVELATION 3
2a: something viewed as a prophetic revelation b: ARMAGEDDON
But I think it's funny to take the opportunity to take what everybody thinks of as a bad thing and turn it into a good thing, in the Christian definition. That's the Christian thing to do, I guess, is recruit more Christians. Larry Wall took advantage of an unusual opportunity to do so, and I think it's funny.
-Waldo
FINALLY someone who agrees with me about the needless additions to C++
:) is just annoying.
Every time I go into a bookstore to read about C++ (every 4-6 months or so) I find out about more and more "features" that were added since I learned the language in 1995 or so. Stuff like 3 different versions of new and the namespaces.
IMO C++ has grown from being a useful extension of C to becoming a massive, horrible mess with too many features. Lots of people I know and work with talk about C++ in terms of being hard to learn and use well because it is extremely intricate. This is a good thing?
I'm disturbed by some of the more recent proposals for C++. Whitespace overloading?!? ho are we kidding?
I'm just glad that other people find solace from the insanity of C++ in Perl. Sometimes its refreshing to be able to choose your own way to do things, and to know that other people like you just want the damn program to work, with a minimum of futzing with things vaguely related to the problem you are solving (i.e., memory management ala C++ -- just how to exceptions and delete interact in a class hierarchy?) Who cares - every app I have written in the past 2 years has not needed to worry about these sorts of vaguely related things - why FORCE me to? Preaching the "paradogma" (great word Larry
There are certainly a number of cases when you NEED to care about those mundane, tedious details. Real-time programming and other systems level work are good examples.
I guess all I am saying is, thank you Larry, for freeing programmers like me from the tedium of malloc and free, sizeof and screwy arrays. You have added 20 years onto my lifespace, at least.
"People get scared when they hear the word Apocalypse"
Some people get scared when they hear the word Perl...
I think this article is interesting in that it gives some rare insights into language design. You always hear people complaining about why didn't x (where x is C++, Java, Perl, etc) do this or that? Why this feature or syntax? Here Larry points out some trade off that may not be obvious to "end user". And all written in a easy to understand language called English too ;-)
While this is not a complete redesign, it is not everyday you get to see just exactly one design an programming language used by millions of people. Good stuff, definitely stuff that matters. This is a must read for people interestined in programming language. I am really looking forward to the next one.
OT: The design of Perl6 is somewhat similar to the kernel: anyone can submit rfc (patch) and Larry (Linus) has the final say on what goes it. (No, I don't know where I am going with this either :-)
====
Codeala - Just another mindless drone
The most notable, for me, is the addition of namespaces. While I understand and agree with the idea that unused functions shouldn't pollute the global namespace, I find that moving all of C++'s standard functions into a separate namespace overkill. It isn't like C++ programmers were having trouble coming up with function names that clashed with strcmp(), for example. What this leads to is the extra line
use namespace std;
in many programs. In essence, the moving of all these functions into a separate namespace just forced developers to create a rote workaround, not unlike the issue Larry brought up with class or module.Perl itself has grown over the years, and while many changes have benefitted the programmers and opened up many doors (references, objects, etc) the core language has changed little. Larry seems to be moving away from the spirit of TIMTOWTDI and more towards the BSDM style of language exemplified by Java (or insert a language you love to hate). "You must use warnings and strict everywhere except your main module" is not free and fun.
There is no doubting the efficacy of -w and use strict;. I use it in all my own Perl programs, but many don't. This used to be okay. When I used to answer questions on clpm, I always chided querents for not using them. It was good advice (just turning on warnings can help nail a problem in many cases), but they could always take it or leave it. Now in Perl 6 it seems that this attitude that what goes on between programmers and the language is none of our business is done away with, and a school marm with a quick ruler is the new paradigm.
I grew up in Perl during Perl 5 and always laughed at the backwardness of those who touted Perl 4's abilities (Alaskan electrician, Purl Gurl, etc.), but now I find myself wondering if I am exhibiting the same stubbornness. If I am, am I right in this? Perhaps I need to change with the language?
Dancin Santa
Threading - MP3::Napster, a popular module written by Lincoln Stein requires a threaded perl interpreter; I happen to use this module for my project (spam, spam [grin]).
More perl ports - I would like to see perl ported to PalmOS; some nodes on PerlMonks reveal that there is a lot of interest in this; Although I sometimes wish they would take a look at the projects on handhelds.org.
Dusk begins to realize that he is ranting....
Anyway, I am sure that I will be pleased with the results; Saint Larry will not let us down :)
My guess it that Python porters were able to overcome this obstacle by writing much of Python in Python itself, hence Pippy.
Once Perl 6 is released, though, the Perl community will be able to quickly play catch up, and get a port out rapidly. Woohoo!
If ya can't beat 'em, clone 'em.