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.
Perl 6 promises to put the "regular" back into regular expression. "We have more powerful primitives in Perl 6," Wall said. "There's no more /x switch to enable extended syntax. No more mode switches like /s and "dot" (.) now means match any character. There's no /m modifier and we've regularised the brackets so {} always mean embedded code."
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 is it Perl does better?
who the fuck thought they would be dropping Regex in any way shape or form?
They didn't drop regexes at all. They've actually generalized them into context-free grammars, and these CFGs are a core part of the language.
If anything, the problem with perl6 is they added way too much.
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
Hmm that's interesting.
I know quite a lot of scientists who use Finite State Automata for tasks and use custom libraries for that. If Perl 6 can provide an easier and efficient way of doing that it might even have a future :-)
Isn't Microsoft dropping parts of LINQ from .net 4.0?
I'm sure I glanced over something that said they were deprecating it and that while they would provide support they would have no future development and they were going to something else.
"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...
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/
I believe they're dropping one of their database connectors because another one's better. I'm still stuck in .NET 2.0 land where I am, so I'm not sure. (Not that I like LINQ to begin with. The one .NET feature I really dislike.)
"You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
Why would they do that? they only added it in the last version of .NET (3.0)
The version that brought LINQ was .NET 3.5, with C# 3.0. .NET 3.0 was just the Vista technologies ("WinFX": WF, CardSpace, WCF, WPF and arguably also WTF) and didn't affect any of the languages in any way - just a bunch of new namespaces. .NET 4.0 will deemphasize LINQ to SQL in favor of LINQ to Entities, which hooks LINQ up to Entity Framework, a more solid (but as of yet woefully "1.0") mapping framework on its own. As with everything Microsoft, it'll probably live on for ages.
LINQ to SQL is more of a joy to use, but it's a joy to use because it has less syntax, and it has less syntax because it tries to abstract less. Entity Framework tries to abstract more (like abstract away most many-to-many junction tables where the connection itself doesn't have properties) to the point where it is intelligent enough to handle joins for you, and it demands you to be far more explicit about lazy-loading data across relationships (which is a good thing). But it's not entirely there yet unless every query *always* produces an instance of a known type from the database.
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.
Yes.
512 MB RAM, 20 GB disk, 200 GB transfer, five datacenters. $19.95/month.
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.
Haiku only has three lines, and 17 syllables. To wit:
Perl does not matter
Pomo Larry became chaos
Academics... Yes!
Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
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.
Burma shave.
Oops! Damned acronyms! :)