Perl 5.14 Released
chromatic writes "Pumpking Jesse Vincent has just released Perl 5.14, the latest stable version of the venerable Perl 5 programming language. The list of changes in Perl 5.14 includes several enhancements, including performance tuning, Unicode improvements, and updates to the core libraries and documentation. Perl 5.16 is on track for a release next April."
I was just going to say that back in about 2001 someone gave me advice not to learn Perl 5 because a Perl 6 release was imminent.
---Technology will liberate us if it doesn't enslave us first.
Perl 6 is out. But it's a diffent language in the same way that python 3 is not like py 2.7
The thing I really like about perl is it's the shortest oreily pocket reference. it's even shorter than c++. Yet you can do vastly more than python without importing a single lib. that is to say it's surprisingly concise for encompassing such a lot of capabilities in the core language.
Some drink at the fountain of knowledge. Others just gargle.
.... does it have any new operator? :-P
And before you tell, it was just a joke, I know you should now add operators in a minor release.
Why can't
Where do I sign up?
No, Perl 6 is not "out". I can't use it on my production servers, because there's no good implementation yet, even after ten years.
I know there have been a few attempts, but none of them are seriously usable like Perl 5, Python, Ruby, Tcl, or Lua are.
At least when developing Python 3, the Pythonistas built a production-grade implementation. Even if its adoption hasn't been as fast as was initially hoped, at least those of us who do want to use it can actually use it, and we can do so for serious uses. The same can't be said about Perl 6.
Perl 6 has 140+ different operators! That is absolutely insane. While I support being concise, Perl has far more complexity in the language core than any other language I have ever seen.
Stylish sheet to fix many problems in Slashdot's D3: https://gist.github.com/801524
I still see perl getting used a lot - esp. in the financial services industry.
I think the problem is that Larry didn't know what he wanted Perl to be, so he tried to make it everything. But now we have C#/Java for strong type enforcement (for large projects with inexperienced people), Haskell and friends for academics and functional purists, python/javascript/lua/etc. for scripting...Perl just doesn't have a niche anymore.
Perl 6 is so damn complex that nobody can actually implement it.
The more mature a programming language is, the harder it is to extend it. Mature languages have vast codebases that must be supported, and substantive changes break legacy support. That's why it's best to get it right early on.
Help stamp out iliturcy.
I don't, there is huge financial services industry in Chicago area, hot languages are dot-NET family, j2ee, objective C, c/c++, php5 , but haven't seen Perl for ages.
Perl makes a GREAT "general-administration" tool. I use it as basically bash++ - it's the best way,bar none, to write programs on the command-line. There's a reason even the ultra-minimalist OpenBSD includes Perl in the default install.
Neither should Cobol, and yet, as with Perl, sometimes there is a thing called historical momentum. Perl is still used in a lot of places, and there is a helluva lot of Perl code out there.
The world's burning. Moped Jesus spotted on I50. Details at 11.
He was right, but for the wrong reason :)
Do you even lift?
These aren't the 'roids you're looking for.
Python 3 is barely different from Python 2. It is not backwards compatible, but I've ported Python 3 programs to Python 2 (when I realized I had to use SciPy or run the code on a system with only Python 2), and nearly the only changes I had to make were changes for // for integer division and required () for print -- and these changes were trivial if I could simply import from __future__. In contrast, Perl 6 is very different from Perl 5.
What a fool believes, he sees, no wise man has the power to reason away.
Perl Nukem Forever?
That's true. However, it has also been over TEN YEARS since it was first announced, yet there's still no good Perl 6 implementation.
It's pointless to worry about retaining compatibility when nobody is actually able to use your software in the first place, even a decade after it was announced.
Perl is alive!
Last time I checked Slashdot still runs on perl...
My company does too.
Now that ActiveState is providing Perl for Cloudfoundry, it's going to be good times in Perl land.
I love OpenBSD. But aside from scripts for mucking with perl itself, the reason perl is in the base install is to run the following (mostly brain dead simple) things:
/usr/sbin:
/usr/bin:
in
add_user and rm_user scripts
apxs (apache extension DSO builder / installer)
pkg_chk, pkg_delete, pkg_info, pkg_create, pkg_merge (our simple and crude package manager)
in
afmtodit font file creator for groff
c2ph/pstruct dump c structure with offsets from debugger stabs
find2perl convert find command with args to perl program
piconv character encoding converter
sed2p sed to perl converter
Nothing that couldn't be done better as a side effect to a rewrite to more modern and alive language, the apxs, package manager and add/delete user is probably the only things most people use beside some that might use the apache extension handler. That package manager is especially aching for better features anyway.
We still use Perl to develop our products (commercial and open-source.) Perl may be maligned, but it's still a good tool for a lot of purposes and if you pick and choose carefully, CPAN is an awesome resource. Perl has modern frameworks (eg, Catalyst) for Web development that are competitive with anything out there, and DBI is superior to most alternative languages' database libraries.
While I'm bullish on Perl 5, I'm not so optimistic about Perl 6. I think it's suffring horribly from second system syndrome and may never see the light of day as a useful production tool.
but, as with COBOL, that momentum is running down while with other scripting languages things are heating up. I like a language where the attention of the found and key developers are focusing on what will be used in the near future, not flying off into lala land for a decade speaking to each other in isolation.
Excellent troll... really first rate. Did you get federal funding from the Ministry of Trolling for that gem? I've been working professionally in unix/linux environments for about 12 years and believe me perl is still quite alive and well doing real work in lots of different kinds of companies. Php is somewhat painful to code in by comparison but both have their place. Except for java.. it has no sane place but you still find it in use everywhere which just goes to show anything can succeed in this world with enough marketing dollars behind it.
Every normal man must be tempted, at times, to spit on his hands, hoist the black flag, and begin slitting throats. -HLM
With Duke Nukem Forever being released next month, I think we shouldn't lose faith in Perl 6 either.
It's taken 10 years, yes, but sooner or later they'll realize that what people are waiting for is a _native_ perl 6, not one on top of parrot, haskell, perl 5 or any other external engine. Cause if you virtualize, you might as well use the underlying langauge - it has to be at least as powerful as perl 6.
Despite what many are saying, Perl is still used extensively even for new projects. I use it daily, and while I really like ruby and python, for a variety of reasons, I have not switch away from Perl for most projects. My only question is when will Strawberry Perl 5.14 be released?
Are you sure all that's in the base install? I can't see why apxs is there, since (last I checked) Apache isn't in the default install. And I think c2ph is only in the compiler "package", which is technically optional.
Although I do agree that most of that could be rewritten in sh or even in C, rather easily. And the package manager does suck.
With Perl, that complexity gives you power. If one does lots of programming, and their mind is in good shape, Perl can be used to rapidly dispatch programming problems.
forgot in /usr/libexec has vi.recover and makewhatis in perl
had to check, but the c2ph/pstruct is in the base49.tgz
heavily audited chrooted 1.3 apache is in the default install,
,
It's sour grapes, I used Perl in development as was and fanboy over a decade ago. Major disappointment for me the way things went.
I don't like Perl so I wish the catchy put-down of the summary title was accurate, but its not quite right. I think shell scripts are the COBOL of scripting. Perl might be more like B, although I'm not sure there is a great analogy there.
well, all the other languages jacked Perl's DBI (and many, many other things) for their libraries.
Your company has history with Perl, but I don't think it will be chosen for new things now, PHP alone is mostly eating its lunch. Web serving the stats are something like 75% PHP5.x and 20% dot-NET but only 1% Perl with J2EE 5% (some overlap as sites run multiple langauges, but still....). Compare that to over ten years ago (when I was developing in Perl), it's really fallen.
Troll? You mention java, there are five times the web sites using server-side j2ee (bloated crap that sells hardware) compared to Perl. Sure, it's everywhere doing legacy crap like the (spartan) OpenBSD package management system I mentioned elsewhere in this thread , but essentially no one is choosing it for new projects, i anything BUT Perl is the norm. Face it man, it's a 90s language and it is dying. Netcraft and other web stat sites help confirm it. And Larry is killing it.
All I'll say to that is that the entire computing world does not revolve around websites... or programming certification mills. =] Perl is the duct tape that holds the networked world together... and it's not dying any more than actual duct tape is. It's a refined tool used by professionals to do the jobs that have always needed done in a minimum of time and that don't cater to the latest buzz word laden development methodology.
Every normal man must be tempted, at times, to spit on his hands, hoist the black flag, and begin slitting throats. -HLM
In default installs, Python is eating Perl's lunch on the command line, I can confirm by greping through my distro's /usr/bin and /usr/sbin. More python scripts to admin the system than Perl! That argument (in the default install) doesn't hold as much weight anymore, Python is also default in most major linux distros (and the new admin stuff is using that, while the crufty Perl admin scripts linger because no one cares to rewrite them).
I had the same thought when someone mentioned Perl 6 would be out soon
Indians using proper Microsoft Certified development tools.
Did you write that with a straight face? Enjoy spending Microsoft's money, you pathetic shill!
"Windows is like the faint smell of piss in a subway: it's there, and there's nothing you can do about it." - Charlie Br
no, that would be C, which also holds your Perl together. I can run and admin a server without perl installed, but not without C
I guess you missed the part about 'in a minimum of time'.
Every normal man must be tempted, at times, to spit on his hands, hoist the black flag, and begin slitting throats. -HLM
I see dead languages, languishing in the default installs of OS mostly as wrappers for menial tasks, taking command line arguments and making output in some cron and admin jobs, and they don't even know that they're dead! 8o
COBOL is still alive and kicking. It still does some things better than any other language. As Scotty once said "Use the right tool for the job, laddie"!
Besides, COBOLScript is the COBOL of scripting languages:
http://www.computer.org/portal/web/csdl/doi/10.1109/EDOC.2000.882363
You should really do a bit more language evaluation. I don't know if you are ready to leave your parents' basement yet.
putting the 'B' in LGBTQ+
have you ever seen a program that did not have a "print" statement in it? well those don't exist. And ignoring that whopper, I can tell you that it's not the big ones that really screw up legacy programs, it is the tiny tweaks that only go wrong one in a million times. Perl5.6 to 5.8 had some really really subtle changes to regrular expressions that broke programs in almost impossible to detect ways. Python 3 is death for legacy python.
Some drink at the fountain of knowledge. Others just gargle.
I respect your opinion, but my experience has been different. I forced myself to learn Perl twice and never could quite get the hang of it. So much of the language is context sensitive (e.g., this arbitrary symbol means a certain thing, except in some cases where it means something completely different) and there are so many features that I always felt overwhelmed. Sure, I always managed to get the code working but it felt hackish and thanks to "there's more than one way to do it," I was never sure if the way I implemented was the right way.
PHP is far simpler. It's the only language that I've learned solely by reading code. Yeah, PHP has its warts (I'm looking at you, zillions of global functions) but I never find myself staring at a line of PHP wondering what it's doing.
I don't agree with you about Java either, but that's a rant for another day.
that "minimum of time" is only until the next poor SOB has to modify some code. Then it's time to go a-wadin' through the whale guts.....
Maybe, just maybe, the more mature a programming language is, the less need there is to extend it. Particularly in the case of scripting languages. Write new programs and APIs with new features, not languages with more syntactic sugar. Boy am I glad to be free of the cult of that wierdo Larry Wall.
Our entire API framework is Perl and has been for a few years now. Seemed like every time we needed to add a new format to return values in (originally was XML) like JSON, there always seems to be a perl module "for that".
The best part of things is the fact that while we've added new functionality, we haven't had to do any maintenance work on the script in almost 5 years now.
Biggest change we made from 5.8.x to 5.10 was rewrite some nasty els if statements and made them switch statements.
The original web based management tool was originally written in PHP and that is what took all the time to maintain. It seemed like with each dot release of PHP some little thing broke and we were always fixing something every few weeks because of it.
"The problem with socialism is eventually you run out of other people's money" - Thatcher.
A more readable changelog, with formatting, hyperlinks etc applied (rather than a raw pod file) can be seen here
I think the camel's head didn't fit. The pic probably needs resized. As for the camel, it's featured on "Programming Perl", which has been the main way to learn Perl for most programmers. BTW, "Programming Perl" is being updated for a maybe-December release. I was notified by O'Reilly after reviewing "Programming Perl" and saying it was old and out of date.
IMNSHO I tend to think that like Python 3, Perl 6 is a broken version of a once useful language. I'll stick with Python 2.x and Perl 5.x.y.
I decided to specialize in Java at college. Today, my business I want to start will be php based because I am 5x as productive with it, but Java is great for large scale programs.
With Spring, Hibernate, and MVC you can make great million line code web sites that are more like applications than simple scripts frankensteined together ala PHP. This is great for advanced database access and business logic and intelligence. For 90% of sites out there ... tiny ... Java is overkill. However with Java I can develop the app, extend it, modify it, and change it little over a decade compared to PHP and can make it scale from a shared single server all the way to an IBM mainframe.
I do admit I will only switch to Java after I have the revenue to hire someone to do it full time so it is not perfect. But if I were to grow my idea into a billion dollar company it would seem Java would fit my bill quite well. I know 10 years from now I can deploy the code and it will run securely with minimal issues.
http://saveie6.com/
Perl 6 has 140+ different operators! That is absolutely insane. While I support being concise, Perl has far more complexity in the language core than any other language I have ever seen.
I like this about English too. Can't tell that Larry is a linguist by training, can you?
Come to think of it, I bet Python developers tend to be fond of Esperanto too. Some similarities there.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
The free book Modern Perl explains how to use Perl 5 in an effective and maintainable fashion.
how to invest, a novice's guide
Internet Yiddish LIVES!
erm... i'm pretty sure there are a lot of gui programs that don't use print. ignoring that i think fixing brackets on print is pretty fucking trivial. do you have any better examples?
This is a joke. I am joking. Joke joke joke.
So many superior (e.g. python) ...if memory efficiency isn't on your requirements list...
or just simpler (e.g. php5) ... if you can remember to use different string function calls depending on the encoding of your variable (you always know this ahead of time, right?)...
while Larry vainly struggles on trying to turn Perl 6 into a swiss army knife
Larry's not involved in the most likely successful implementation effort (Rakudo). Heck, I'm not even sure there have been any language specification updates of note in the last five years.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
oh noes python is overblown! does that even mean anything? take your trolling elsewhere.
This is a joke. I am joking. Joke joke joke.
The new search engine blekko is written in perl - wrote our own NoSQL database in it, too. We found CPAN to be an awesome resource; we use 600 distros from CPAN, and only found a couple of bugs in them.
It's Java that's the new COBOL. (buh dum, ching!)
New startups using perl, courtesy of Quora:
blekko
nabbr
selectablemedia.com
goba.mobi
socialflow.com
duckduckgo
Big companies writing lots of new perl, also courtesy of Quora:
Lokku (makers of Nestoria), BBC, LJ, IMDB, Salon.com, Typepad, Zappos, Craigslist, FriendFinder, Ticketmaster, Slashdot
I think you're really confused about the role Larry plays in the community. He's slowly creating a new language, which has little to do with perl 5. Perl 5 is actively maintained and has a large community of users.
This is a clear example of folks not really knowing what they're talking about.
Perl6 is a language spec, not a language implementation. Check out Rakudo if you want to see an implementation.
Even so, Rakudo (and any other Perl6 implementation) is *not* the successor to Perl5. It's an unfortunate naming scheme that people don't understand, and although there are similar and borrowed elements between the two, they do not directly relate to each other.
If you want to see activity, check out web frameworks like Mojolicious (http://mojolicio.us), or installation tools like Perlbrew (http://perlbrew.pl). There's also plenty of activity going on @ sites like: http://blogs.perl.org/, http://ironman.enlightenedperl.org/, http://perlbuzz.com/.
Not to mention plenty of jobs always coming across the wire @ http://jobs.perl.org/. Which, interestingly enough, some rubyists copied - http://jobs.rubynow.com/
Just reading the comments for and against perl and wondering about the age of the posters. How many new perl programmers are there? How many people are switching? It just sounds like some comments are from people with 10+ years of IT experience and bit stuck in their ways (just like I am with python!).
Is this perl's destiny http://news.bbc.co.uk/2/hi/also_in_the_news/7097647.stm
Python 3 is barely different from Python 2
It's different enough to break the language for legacy code.
When you have code by the million lines, it's impossible to have a script that can reliably convert programs like Guido thinks it can. It's not just adding parentheses to print, there are some beastly things, like giving the division operator a different behavior. In Python 2.7, the result of (3 / 2) is 1, in Python 3 it's 1.5. I have absolutely no way to pore through those million lines and checking every division to see which operator should I use, keep the '/' or change it to '//'.
Besides, the changes from Python 2 to 3 are *all* in the direction of making it a more verbose language. I couldn't find any example of code that would be shorter in Python 3 than in 2. That goes against the philosophy of a scripting language, the last thing we need is a new Java.
I had gradually changed from Perl to Python over the years, but this P3k made me reconsider if this was wise. Apparently, there's no good-for-everything language left. So, in the scripting side, where quick results count, I've been considering switching back to Perl. Conciseness is king here, and nothing beats Perl at that.
As for large projects, thank god C is still there, still running K&R style code almost unchanged. Looking back over the years, I find that, for big projects, no language has given me less trouble than C. Once you get it running, it runs forever.
Exfuckingactly. Whilst the buzz-word slavering IT managers and their Java sycophant underlings hype around in Brownian motion fiddling feverishly with websites, the rest of the professional world maintains the foundation and glue that really makes all the shit "just work."
With the possible exception of Python, nothing else comes close in satisfying it's intended purpose (talking toolkit/scripting/etc). Perl bashing reminds me of kids with snot-shiny upper lips whining about the "complexity" or "shortcomings" of C while not hearing the whooshing sound as the mothership-sized point sails over their heads.
Same with COBOL. Just because you don't encounter it in your little Javascript/PHP career does not mean it's not out their pumping major iron. You'd be amazed how many COBOL professionals there are laughing at the ignorance of these arrogant little dickheads talking out their anuses.
All programming/scripting languages have their place. They were all designed (some less so) to solve a specific problem.
Yes, the artist made a mistake: the image http://a.fsdn.com/sd/topics/topicperl.gif is too wide to fit into the template. Hopefully it will be noticed now. By the way, how do we report bugs about Slashdot?
Actually I don't care whether it is native or not.
;).
I want it fast. If they can get javascript to run fast, why can't they make perl faster? Heck get perl5 to run fast now and I don't mind "waiting for perl6" for another 20 years
Some would argue that this is a bad thing.. :-) It's not an accident that python without any libraries is completely useless.
In answer to the comments a bit further down about how languages getting more mature makes them harder to extend - well python has about 30 keywords. Perl has about 600. Python usually just has to replace a few libs. Python 3000 mostly fixes some 10 year old issues which date back to the infancy of the language, which will hopefully be the last time for a very long time someone has to do it.
I wrote my first program at the age of six, and I still can't work out how this website works.
I think that Python needs a __past__ module for those nostalgic features like bracket-free print statements. Perhaps it could be a new PEP, and we could use a bizarre import statement like from __future__ import __past__ in Python 3.3.
Python has some advantages over Perl -- cleaner syntax, a better REPL, none of the legacy shell-script-derived cruft that makes it so easy to write terrible code in Perl. It also has quite a few disadvantages that make it harder to write robust code, such as its lack of any equivalent to Perl's extremely useful "use strict" and its poorly designed scoping rules.
I see a lot of new development taking place in both languages. I don't see much PHP, but that's a niche language restricted to web development, which isn't something I'm involved with.
"I was just going to say that back in about 2001 someone gave me advice not to learn Perl 5 because a Perl 6 release was imminent."
It's a shame that this 'Osborne effect' has hung over Perl for the last decade. I wonder how Perl 5 would now be perceived if Perl 6 had been given a different name and announced as a research project into language development, rather than the next version of Perl? With better PR, Perl 5.10 could easily have been 'Perl 6'.
All this tends to obscure the quet evolution of Perl 5 programming into what 'chromatic' and others are calling 'Modern Perl', using an idiomatic style that takes full advantage of recent language features (some borrowed from Perl 6) and CPAN to write efficient and maintainable code:
http://www.modernperlbooks.com/
http://onyxneon.com/books/modern_perl/
As always, a lot of the most active development is happening outside the core language. Anyone interested in some of the directions Perl 5 is going in today ought to check out projects like these:
http://www.iinteractive.com/moose/
http://plackperl.org/
http://www.catalystframework.org/
http://mojolicio.us/
PHP alone is mostly eating its lunch
Interesting you say that... our product's Web interface is written in PHP and I rue the day I made that decision. For all of Perl's faults, PHP is about 100 times worse. No proper namespaces, completely wild-west wacky naming "conventions", no decent DBI-like library, crappy add-on modules (just try finding a decent YAML parser for PHP.)
If I had to do something new, I'd probably look at Python. I have very little experience with it, but it seems quite easy to use and fairly readable. Nevertheless, CPAN still takes the crown for a useful repo of modules.
There are still a lot of companies developing in Perl. They tend not to tout it or make much noise about it, though. It's not trendy any more.
Quite you can see the same problem with kids that don't understand why FORTRAN is still used in a lot of high end technical programming
If Perl's "wind down" is anything like Cobol's, then it's still got many years left.
The world's burning. Moped Jesus spotted on I50. Details at 11.
php5 is simpler? What planet do you live on?
In Perl:
curl -sL 'http://slashdot.org/index.rss' |perl -ne 'm/<title>(.+?)</ && print "- $1\n";'
Same thing in PHP5:
curl -sL 'http://slashdot.org/index.rss' |php5 -r '$h = fopen("php://stdin","r"); while(! feof($h)){$line=fgets($h); if(preg_match("/<title>(.+?)</",$line,$match)){echo "- ".$match[1]."\n";}}'
... and if you say "well, php5 is simpler for what *I* need," I'mma gonna poke you for thinking that everyone else has the same needs as you.
So what? the point is that for over a decade, Larry and his cohorts have been farting around with Perl6 with no production implementation to show for it, just a bunch of endless mental masturbation
I often have people asking me why C is still getting used.
C#/Java is all you need, right? Right?
That would have been extremely silly.
Modern Perl 5 is a good language with great libraries, but Perl 5 still has many, many flaws that only breaking backwards compatibility in a very dramatic way could fix. You can take the Perl 5.10 approach of deprecating a few of the worst offenders and considering removing them and eventually replacing them, but that process will take decades.
Also, the Perl 5 core is very, very difficult to maintain.
how to invest, a novice's guide
my $troll = $ubiquitous_BSD_is_dying_troll;
$troll =~ s/BSD/Perl/g;
print SLASHDOT $troll, "\n";
It's a very dark ride.
So trivial that 2to3.py, which comes with Python 3, will do it automatically.
Maybe not
That's why I am learning Perl instead of Python right now. I've done some Bash scripting but I'm trying to branch out a bit. My scripting needs are not huge, mostly neuroimaging-related stuff, but Perl seemed better as a bash++ environment (like you put it) than Python. I wanted to learn Python (I still will, just later) but I had two individuals independently recommend Perl for my needs rather than Python.
Perl might be a bit antiquated and awkward but it's the right tool for a number of jobs.
No, I didn't mean forget about re-designing the language (and its implementation) altogether and just carry on building on the old, flawed foundation. The goals of Perl 6 seem entirely laudable. I just think that the way this has all been presented to the wider community over the past decade hasn't done Perl any favours. Somehow a (false) impression has been created that Perl 5 is in some sense deprecated, while Perl 6 is not ready. If Perl 6 had been presented from the start as an experimental 'sister language' (perhaps with a different name), rather than being named as Perl 5's successor over a decade early, perhaps the perception would now be different.
Far less significant changes than those that occurred between Perl 5.0 and 5.10 (or 5.14) have been honoured by major version bumps in other software packages, which at least serve to indicate that some new and exciting features are available (which is what I meant by 'better PR'). But this wasn't possible with Perl because a drastically changed language design had already been given the Perl 6 name. Isn't your term 'Modern Perl' itself a way of saying that things have changed a bit since 1993, even though we're still using 'Perl 5'?
There are some really good changes going into 5.14. Worth highlighting for anyone with Perl experience.
The Array/Hash reference mess has been greatly improved. You can now perform most builtin operations directly on array references. So no need to mess around with dereferencing things all over the place. This is a huge improvement in the syntax surrounding complex data structures.
The eval exception handling mess has been cleaned up so that error handling modules such as autodie can function properly without strange corner cases.
PHP beats perl for web applications for one simple reason: it was designed from day one to work as an apache module. mod_perl was a hack, and it worked OK for a lot of people, but for me it was always more trouble than it was worth. Eventually you had heavy hitters like Yahoo putting their weight behind PHP for web code and that pretty much decided the race. Re your specific objections: namespaces - use classes DBI library - use PDO
no longer working for cnet
So much of the language is context sensitive (e.g., this arbitrary symbol means a certain thing, except in some cases where it means something completely different) and there are so many features that I always felt overwhelmed. Sure, I always managed to get the code working but it felt hackish and thanks to "there's more than one way to do it," I was never sure if the way I implemented was the right way.
I felt that way too until I read Effective Perl Programming. It goes over all the multiple ways to do things and explains why one is better than another in a particular situation. Great book. It gave me the Perl "aha moment" I needed.
no longer working for cnet
If Larry really had pushed Perl6 it would have been ready a long time ago. He wanted Perl6 to be community designed; that's why it's taking forever.
I had to work on a mediawiki installation a while ago and had my first time encounter with PHP. Verdict: Brain dead.
Perl5 is still my first choice for anything that doesn't have to be efficient because it's only called every now and then. And the programs still start up faster than Java. By the time my vendor's Java code finally starts to run my Perl scripts are already finished. So much for byte code and JIT.
thegodmovie.com - watch it
People express that sentiment often, but I've never found it realistic. Many of the philosophical goals of Perl 6 are the same philosophical goals Larry had when designing Perl 5. Many of the tactical approaches are far different, but there's where my disagreement with the "It deserved the label as an experiment at the time!" idea arises. No one really knew how far redesigning Perl needed to go to achieve those philosophical goals until the RFCs and Apocalypses started pulling at loose strings in the sweater.
Certainly, though it's less about using new and exciting features because they're new and exciting than it is about understanding how the language and its features, both new and old do—and, in some cases, don't—work. The biggest and most important language change has been the gradual lexicalizing of features such as filehandles, pragmas, grammar modifications, and even packages. You may have to squint to see the latter, but it's there. Perl 6 takes that principle to another level.
how to invest, a novice's guide
to? I find myself using it more and more, interfacing with all kinds of weird bug ridden SOAP APIs seems to be easiest with Perl...
Easy, flexible, fast -- pick any two.
I've often found that I can do things quicker in perl than other langauges, not because perl itself is fast, but because it gives me the tools to implement faster algorithms without having to invent new spokes, ball bearings, tires and hubs. Just something as simple as caching database queries in a local hash can save ridiculous amount of time, with very little work. And sorting on a subset instead of entire tables? Priceless.
I also strongly recommend the perlperf(1) man page, as well as the web links found at the end of that man page.
Nothing that couldn't be done better as a side effect to a rewrite to more modern and alive language
That just made me bang my head against my desk.
How about 'redesign' (if needed)
instead of 'rewrite in a newer language' (because)?
A recently installed server in a small company (Debian Squeeze):
$ find /bin /sbin /usr/bin /usr/sbin -type f -exec file "{}" \; | grep 'perl .*script' | wc -l /bin /sbin /usr/bin /usr/sbin -type f -exec file "{}" \; | grep 'python .*script' | wc -l
196
$ find
46
My notebook (Ubuntu 10.4):
$ find /bin /sbin /usr/bin /usr/sbin -type f -exec file "{}" \; | grep 'perl .*script' | wc -l /bin /sbin /usr/bin /usr/sbin -type f -exec file "{}" \; | grep 'python .*script' | wc -l
398
$ find
134
Of course, some may prefer Perl to grep + wc (it's faster too):
$ find /bin /sbin /usr/bin /usr/sbin -type f -exec file "{}" \; | perl -ne '/(perl|python) .*script/ && $$1++; END {print "$perl perl\n", "$python python\n"}'
398 perl
134 python
Yes, the artist made a mistake: the image http://a.fsdn.com/sd/topics/topicperl.gif is too wide to fit into the template. Hopefully it will be noticed now.
Don't count on that. It's been that way for some time now, and nobody with the ability to fix it seems to care. One of the former slashdot programmers was a regular voice on use.perl and he never bothered to fix it; I highly doubt anyone still working for slashdot gives a damn about it.
By the way, how do we report bugs about Slashdot?
Carrier pigeon, sent to the ISS.
Or at the very least, that would be just as useful as any other mechanism. Slashdot doesn't care about fixing bugs, just about implementing new ones. You can email rob malda directly (malda@slashdot.org) if you want, and he'll weasel his way around the problem in a reply to you. Or you can just do like the rest of us and bitch about the bugs openly here on slashdot instead. It also doesn't lead to them being fixed, but you can take credit for being the first to find a specific bug!
Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
Oh well, too bad for the camel. It's going to stay headless until the next major UI rewrite. Thanks anyway.
"No one really knew how far redesigning Perl needed to go to achieve those philosophical goals until the RFCs and Apocalypses started pulling at loose strings in the sweater."
It's certainly easy to criticise all this with the benefit of hindsight - I don't imagine anyone at the time imagined it would turn out to be be such a long, drawn-out process.
Oh well, too bad for the camel. It's going to stay headless until the next major UI rewrite. Thanks anyway.
I'm pretty sure the last rewrite is responsible for the decapitation. I rather highly doubt that the next one will put the head back on.
Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
Thanks for the excellent insight.
However, isn't Perl dying rapidly? Isn't Python the new Perl?
Remember all the jokes about Perl being a write-only language? The libraries are wonderful, but the language is discouraging.
Perl 5 is the second system. Perl 1-3 built on earlier versions, and Perl 4 was a version bump to sell books which easily described the current state of the language (since 3 morphed a bit from start to end and they didn't want to specify an exact long version string for the book title).
Perl 5 added lots of features, like bless(), the default object system, proper modules, etc. These are where many people find the language creaky and messy -- where things not designed with Perl 4 got bolted onto the side of a mostly Perl 4 compatible language. Modern Perl 5 code doesn't look like Perl 4, but you can feed the system Perl 3 and it will generally work.
Perl 6 is the third system. It's designed by taking lessons from what worked and what didn't over the past 23 years.
Using classes doesn't overcome the fact that there are functions like mysql_real_escape_string_yes_I_really_mean_it_and_URI_decode_too in the main namespace. Classes and compartmentalized namespaces came far too late to avoid the issues.
All the while Perl 5 has been updated and refined, you fucking troll.