Larry Wall Talks Perl, Culture, and Community
LostDiver writes "Computerworld Australia caught up recently with Larry Wall of Patch and Perl fame. He talks about the development of Perl as 'scratching an itch,' a release date for Perl 6 (Christmas day, year unknown) and beauty versus practicality. Computerworld also has some more information on the upcoming Perl 6. A while back they interviewed Bjarne Stroustrup of C++ fame as well."
jamie pointed out a interesting, related video of a presentation by Clay Shirky from last year's Supernova conference in which he discusses why the Perl community (or any web community) drives progress and innovation.
frist
That's like removing LINQ from C#. Maybe it removes unorthonality, but at the expense of programmer power.
Ninnle NOW!
here
It sounds almost like they're hoping that Santa will drop it down the chimney on a flash drive for them. In the time it has taken Perl 6 to get where it is now--fairly close to release--Mono has gone from being scraps of C and C# code, to being a fairly complete and compatible .NET development environment that has a fairly active developer base on Linux. I'm not going to say that Perl 6 is irrelevant, but if it is not out, in a final release within 6 months to a year, it probably will be since even PHP will be grown up with 5.3 and 6.0 by then.
What prompted the development of Perl?
I was scratching an itch, which is the usual story. I was trying to write reports based on text files and found the Unix tools were not quite up to it, so I decided I could do better. There was something missing in Unix culture â" it was either C or a shell script, and people see them as opposites in one continuum. They were sort of orthogonal to each other and that is the niche Perl launched itself into â" as a glue language. Unlike academic languages, which tend to be insular, I determined from the outset I was going to write Perl with interfaces.
Only later did it turn into a tool for something that was not anticipated. When the Web was invented they needed to generate text and use a glue language to talk to databases.
Was there a particular problem you were trying to solve?
You can tell the other problem by the reaction Perl got from the die hards in the Unix community. They said tools should do one thing and do them well. But they didn't understand Perl was not envisioned as a tool so much as a machine shop for writing tools.
How did the name Perl come about?
I came up with the name as I wanted something with positive connotations. The name originally had an "a" in it. There was another lab stats language called Pearl, so I added another backronym. The second one is Pathologically Eclectic Rubbish Lister.
Do you ever find yourself using the âoebackronymâ Practical Extraction and Report Language at all?
It is meant to indicate that there is more than way to do it, so we have multiple backronyms intentionally.
Were there any particularly hard/annoying problems you had to overcome in the development of the language?
Now, this is a story all about how
My life got flipped-turned upside down
And I liked to take a minute
Just sit right there
I'll tell you how I became the prince of a town called Bel Air
In west Philadelphia born and raised
On the playground was where I spent most of my days
Chillin' out maxin' relaxin' all cool
And all shootin some b-ball outside of the school
When a couple of guys
Who were up to no good
Startin making trouble in my neighborhood
I got in one little fight and my mom got scared
She said 'You're movin' with your auntie and uncle in Bel Air'
I begged and pleaded with her day after day
But she packed my suite case and send me on my way
She gave me a kiss and then she gave me my ticket.
I put my walkman on and said, 'I might as well kick it'.
First class, yo this is bad
Drinking orange juice out of a champagne glass.
Is this what the people of Bel-Air Living like?
Hmmmmm this might be alright.
But wait I hear there're prissy, wine all that
Is Bel-Air the type of place they send this cool cat?
I don't think sow
I'll see when I get there
I hope they're prepared for the prince of Bel-Air
Well, the plane landed and when I came out
There was a dude who looked like a cop standing there with my name out
I ain't trying to get arrested
I just got here
I sprang with the quickness like lightening, disappeared
I whistled for a cab and when it came near
The license plate said fresh and it had dice in the mirror
If anything I can say this cab is rare
But I thought 'Now forget it' - 'Yo homes to Bel Air'
I pulled up to the house about 7 or 8
And I yelled to the cabbie 'Yo homes smell ya later'
I looked at my kingdom
I was finally there
To sit on my throne as the Prince of Bel Air
What is it Perl does better?
Perl does not matter anymore.
Larry's postmodernism turned into chaos.
Academics does matter,
especially with scaling issues.
The quality and intelligence of graffiti is inversely proportional to the difficulty in putting it wherever it is. Dangerous spots on train lines? Misspelt tags. Quiet abandoned swimming pools? Computer scientists with spray cans. Now, that's Perl in Popular Culture!
http://rocknerd.co.uk
"Signals" for "sigils", describing ClearCase as a "rear-vision control system"... was this article dictated over a noisy phone line to someone who knows nothing about computers?
Some important changes had to be made to support the developers of Duke Nukem Forever, who are rewriting the project from scratch in Perl 6. The good news is that means Perl 6 is right around the corner!
If that's your goal, then fine. However, nothing I have ever heard from the Perl developers has suggested that they are trying to target just a niche.
As someone who works on Movable Type, a perfect example of what Perl can do, I want to see Perl 6 succeed and eventually have Perl 5 modules and apps ported to it. I would love to be able to switch to using Python 3k for writing objects, and use Perl 6 to access them in scripts on the same VM, but these guys aren't working on the same timeframe that the rest of us are...
Python advocates often trying to slender and cut down Perl.
Why? Driven by jealousy?
Python is the language for idiots who do not understand Perl. :b
A talk on why Perl 5 is Alive was given at PostgreSQL Conference West 08. What I found most interesting is how vibrant the current perl 5 community is. There are even non profits popping up to support it and forgo worrying about 6...
Get your PostgreSQL here: http://www.commandprompt.com/
not irrelevant in the sense that it's dead, but irrelevant in the sense that it's a has-been. Ruby, Python, and PHP have overtaken it. Consider:
In Perl 6, ``->'' is being replaced by ``.''. And ``.'' is being replaced by ``_''. Why? Because everybody else (Python, Java, C#, etc) uses ``.'' to dereference.
Perl is no longer a leader, it's a follower. Monkey See, Monkey. That's the sort of cargo cult programming you'd expect from PHP.
Vista was version 6, too. Maybe Perl 7 will be better.
Do you even lift?
These aren't the 'roids you're looking for.
When they take perl out of slackware ill stop using it. Until then its real handy.
He still Christian?
We're 40 years away from having viable nuclear fusion plants. And we've been 40 years away from it for all of the 50 years I've been on the planet.
I think Perl 6 is rather like that. It's been "just round the corner" for almost as long as I've been coding in Perl 5.
Here are the results for my small Debian web/mail/dns/databse/etc server.
Not very readable :-), but Perl helped to show that it's quite popular indeed, ranking third after ELF executables and shell scripts.
$ find
$VAR1 = {
'setuid perl script' => 1,
'' => 8,
'ELF 32-bit LSB executable' => 1154,
'Bourne shell script' => 144,
'perl script' => 197,
'Bourne-Again shell script' => 14,
'Korn shell script' => 1,
'a python script' => 1,
'setuid setgid ELF 32-bit LSB executable' => 6,
'a
'python script' => 13,
'a
'setgid ELF 32-bit LSB executable' => 13,
'setuid ELF 32-bit LSB executable' => 19,
'a
};
In addition to what the other /.ers have said, bear in mind that one of the main targets for Perl 6 to run on is Parrot a "one-VM to rule them all" multi language VM.
Thus, not only will the binding be accessible to Perl, they would be accessible to any other language targeting Parrot VM.
(Think of something remotely like JVM or Mono/.NET's CLR except that, unlike microsoft's CLR, Parrot is designed from the ground up with all the complexities of modern latest-gen dynamic languages in mind)
Where the things get even more interesting is that the Ruby community is interested in using Parrot as their main VM.
So Parrot would also cure Ruby's problem at the same time.
Also, some of the python users are interested in creating yet another python implementation targeting parrot. And some fans are trying to create a PHP compiler for Parrot. Haskell coders are also involved a lot in the development of both Perl6 and Parrot. Thus Parrot has indeed serious chances of becoming the central interconnection point for lots of modern dynamic languages.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
Look at actual available jobs. Not silly popularity contests. Do you honestly believe Delphi is more common than Javascript??
I have a theory that the truth is never told during the nine-to-five hours. - Hunter S. Thompson
even PHP will be grown up with 5.3 and 6.0
But grown up into what? :)
5.3 is an interesting release. IMHO they've saved it from being yet another mundane bridge release that's a small step down the path to Java by paying attention to a lot of the excitement surrounding the other dynamic languages. But it's been clear for a while that Java was originally what they planned to grow up into with 6, and 5 being the bridge between it and 4, and the PHP community has always been by and large a bit... pedestrian... in their vision.
I don't think PHP is where people fleeing Perl at this point might go. Python and Ruby and even Javascript have better communities and much more thoughtful design behind them. The biggest thing PHP has had going for it is that it's been on most web servers, and that'll pull the market that just wants to use whatever's available on their web host, but I think overlap between that and Perl users probably split years ago.
Tweet, tweet.
I'm a C++head and I've a friend who is a Perlhead. One thing I really envy about Perl is the sense of community; you get the feeling they're all in it together, and CSPAN gives them a massive library of contributor functions. Stuff I have to write in C+++, he can just reach into CSPAN and find a module, well documented, all ready to go.
Now compare that with C++. We've finally got BOOST.ORG which is supposed to be C++'s answer to CSPAN, but its too little too late. Well, maybe not too little, but it's tiny. There's just too much function it doesn't have. So what can you do? If you need some function you can google around to find a library someone else has done, but since C++ never dictated things like geometry or template libraries (STL was an unpopular pig at first, so many codeshops rolled their own instead). Everything is different. The standard of documentation for open libraries isn't great; you're lucky if you get any doc at all, and usually you'll have a few poorly strung together test programs you need to reverse engineer. Despite POSIX, portability is still a problem. Microsoft C++ doesn't like GNU C++, and this affects packages which you wouldn't think would have any OS dependent code at all (e.g. NOVA).
But worst of all, what C/C++ code there is out there was smithed in the days of "I will get rich off this hundred line program ha ha royalty holidays forever". Nearly everything has a non-commercial clause. Even the most piddling things or everyday stuff like triangulation. Where does that leave you? Well you can get a payware library like Alan Murthra's Polygon Clipper library for which he charges a whopping $2K a license. Prices most of us out of the market (an educational, no-profit exemption is useless). ie. GTFO. So in C++, almost always, you'll find yourself rolling your own code. And when people roll libraries, they're seldom open-sourced. There are a few honourable exceptions; LIBPNG, LIBJPEG, LIBZIP, FFTW. But these are few and far between.
I truly envy Perl. I'd like to blame the C++ Community for not doing an equivalent of CSPAN sooner, but there is no community to blame. I welcome Boost, but it has such a long way to go. Really what C++ misses is community.
Larry Wall is understandably focused on Perl6, but I wouldn't want people to think Perl5 has been standing still. Over the past few years a lot of the great ideas from the Perl6 development process has informed new Perl5 development. For example, Perl5 has a fantastic Object Oriented framework called Moose (http://moose.perl.org) which is not only one of the most rapid development OO frameworks I've ever used, but has very active community. No surprise Google Apps Perl port will use it (see http://groups.google.com/group/perl-appengine/browse_thread/thread/26ddf4c0cf76b2ac for more about this).
I have nothing against other languages, but if you haven't see any modern Perl recently it's time to take another look.
I have had this debate may times at my current IT house. I personally use perl and others use python and php. From what I can see, I can cleanly implement the same takes in perl as the other 2 languages in far less code (based on modules) at the same performance or better and I am far from an expert programmer.
When I look at the same functions that other programs use to perform the same tasks (wrote by far more experienced programmers to say the least), I am astonished on how complex they are in comparison.
The only problem I see with perl (and for that matter per the main subject perl6) is that there seems to be no standard code style between each perl programmer because of the nature of how "free" or "easy" it is to implement different things, move around things, inputs, outputs, etc. Some may say this is a good thing, but I can easily read the other 2 mentioned languages and know what/how that work, but in perl its not really that straight forward. If Perl6 adds more to this (via the sudo OOP approach) then I will probably move to another language.
Larry has announced Perl6 will be released on Christmas day on some year in the near future. I obtained insider information that the release date is Christmas Day 2012, probably with a 3-day early release because so much progress has been made on the Parrot interpreter recently -- for a final release date of Dec 21, 2012. Here are the leaked media files and documents: [link 1] [link 2]. It is finally clear why Larry calls his update posts "Apocalypses". For more info see this link.
Not to take away from your main points, with which I agree, but it's CPAN: Comprehensive Perl Archive Network.
C-SPAN (Cable-Satellite Public Affairs Network) is a non-profit TV network that shows US government proceedings.
Oops! Damned acronyms! :)