Perl 6 Now by Scott Walters
Joseph Brenner writes "Every now and then, a beginning programmer asks if there's
any point in learning to program in Perl 5, when Perl 6 is
going to change everything soon. There are a number of
answers to that: one is to point out that Perl 6 is still
years away, another is to point out that it is promised that
Perl 5 code will run under Perl 6 without modification (a
module that begins with the traditional "package" statement
is Perl 5 code; if it begins with the new "class," then it's
Perl 6)." Read on for the rest of Brenner's review of Scott Walters' Programming in Perl 6 style using Perl 5, a book which answers that question a whole different way.
Perl 6 Now
author
Scott Walters
pages
379
publisher
Apress
rating
7
reviewer
Joseph Brenner
ISBN
1590593952
summary
Programming in Perl 6 style using Perl 5
Scott Walters here pursues what might be thought of as the third answer: you can learn Perl 6 now and immediately begin writing programs in a "Perl6ish" sort of way, using appropriate CPAN modules that have been used to implement approximations of Perl 6 behavior: Perl6::Variables, Perl6::Export, Perl6::Contexts, autobox, Perl6::Classes, Switch, and so on.
There are many caveats about using these tricks in production code, however, and Scott Walters doesn't shy away from warning you about them (e.g. p.43 "Source filters are dangerous" where he discusses their increased start-up overhead and potential bugginess -- though he doesn't mention my own peeve which is that they're very confusing when you try and use the Perl debugger).
So possibly the book is not really quite so well suited to an actual beginner-- who probably should not be told about "use Switch 'Perl6'", but the device of spending the early stages of the book directed toward a beginning audience makes it a very useful review for people like myself who have been reading the Apocalypses, but don't remember every detail.
And on the other hand, the book includes some prominent early warnings about common gotchas that beginning programmers seem to be prone to -- e.g. using dynamically defined variables instead of just using hashes.
The standards for writing English in the Perl world are pretty high -- the core members of the Perl community have always cared a lot about clear writing, and it's arguably the world's best documented language (critics will no doubt add that it needs to be). Unfortunately, I can't say that Perl 6 Now quite lives up to this standard. This is a book that was written in a hurry, and it shows: hasty sentences and minor organizational problems abound (e.g. one or two items seem to be discussed in the wrong place; there are an awful lot of explicit forward references, and yet there's at least one place where something was used in an example before being discussed a few dozen pages later). But then in Scott Walters defense, this is certainly a book that needed to be written in a hurry, because its subject matter is such a moving target.
And where the book really shines is in its code examples: short, clear and to the point; the author repeatedly shows how something can be done in Perl 5 code and how it's expected to work in Perl 6. These examples are always clearly labeled "Perl 5" or "Perl 6" in the comments, so that the two can't be confused.
The subjects of some of the examples are pretty cool: e.g. he talks about using PDL ("Perl Data Language") to crunch audio data in MOD format, which I was completely unfamiliar with. A *.mod file essentially contains the "sheet music" for multiple parts (really, MIDI) plus sound samples that specify how notes will sound for each voice. This is discussed in Chapter 7, which is also the free sample chapter. I also liked random walking Arizona's highways as an example of Graph navigation (Chapter 8, p 159), and I appreciate the fact that he downplays inheritance in favor of delegation in his discussion of objects (Chapter 14, p. 262).
All in all, this book is a fun read for the Perl fanatic.
(Note: the title Perl 6 Now bears a strong resemblance to an emacs package I've been working on called perlnow.el, but there is no relation.)
You can purchase Programming in Perl 6 style using Perl 5 from bn.com; it's also available in eBook format (password protected PDF, using your email as password) for $15. Source code and and a sample chapter are available online: Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Scott Walters here pursues what might be thought of as the third answer: you can learn Perl 6 now and immediately begin writing programs in a "Perl6ish" sort of way, using appropriate CPAN modules that have been used to implement approximations of Perl 6 behavior: Perl6::Variables, Perl6::Export, Perl6::Contexts, autobox, Perl6::Classes, Switch, and so on.
There are many caveats about using these tricks in production code, however, and Scott Walters doesn't shy away from warning you about them (e.g. p.43 "Source filters are dangerous" where he discusses their increased start-up overhead and potential bugginess -- though he doesn't mention my own peeve which is that they're very confusing when you try and use the Perl debugger).
So possibly the book is not really quite so well suited to an actual beginner-- who probably should not be told about "use Switch 'Perl6'", but the device of spending the early stages of the book directed toward a beginning audience makes it a very useful review for people like myself who have been reading the Apocalypses, but don't remember every detail.
And on the other hand, the book includes some prominent early warnings about common gotchas that beginning programmers seem to be prone to -- e.g. using dynamically defined variables instead of just using hashes.
The standards for writing English in the Perl world are pretty high -- the core members of the Perl community have always cared a lot about clear writing, and it's arguably the world's best documented language (critics will no doubt add that it needs to be). Unfortunately, I can't say that Perl 6 Now quite lives up to this standard. This is a book that was written in a hurry, and it shows: hasty sentences and minor organizational problems abound (e.g. one or two items seem to be discussed in the wrong place; there are an awful lot of explicit forward references, and yet there's at least one place where something was used in an example before being discussed a few dozen pages later). But then in Scott Walters defense, this is certainly a book that needed to be written in a hurry, because its subject matter is such a moving target.
And where the book really shines is in its code examples: short, clear and to the point; the author repeatedly shows how something can be done in Perl 5 code and how it's expected to work in Perl 6. These examples are always clearly labeled "Perl 5" or "Perl 6" in the comments, so that the two can't be confused.
The subjects of some of the examples are pretty cool: e.g. he talks about using PDL ("Perl Data Language") to crunch audio data in MOD format, which I was completely unfamiliar with. A *.mod file essentially contains the "sheet music" for multiple parts (really, MIDI) plus sound samples that specify how notes will sound for each voice. This is discussed in Chapter 7, which is also the free sample chapter. I also liked random walking Arizona's highways as an example of Graph navigation (Chapter 8, p 159), and I appreciate the fact that he downplays inheritance in favor of delegation in his discussion of objects (Chapter 14, p. 262).
All in all, this book is a fun read for the Perl fanatic.
(Note: the title Perl 6 Now bears a strong resemblance to an emacs package I've been working on called perlnow.el, but there is no relation.)
You can purchase Programming in Perl 6 style using Perl 5 from bn.com; it's also available in eBook format (password protected PDF, using your email as password) for $15. Source code and and a sample chapter are available online: Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
It's interesting that books on Perl 6 are released when the Perl 6 is still in development. I understand modules for Perl 5 exist that can utlize some Perl 6 features, but still... Someone should release a book on Windows Vista now that a beta is out.
I hate to be Jonny Raincloud, but pretty soon PHP will be able to do whatever perl does, if it's not there already. And anything that it can't do that perl can will be obsolete. So no, don't waste your time learning perl 6. Do the right thing and brush up on your PHP5. I got my site to print in any font I want the time AND date, powered by php, baby!
The Army reading list
The standards for writing English in the Perl world are pretty high -- the core members of the Perl community have always cared a lot about clear writing
Yeah, right. Why should one obfuscate English, Perl offers much more possibilities to do so.
Duke Nukem: Forever Modder's Guide.
With Python storming in popularity recently - there's been a lot of exposure, especially in Google, will Perl 6 be able to take back 'market' share? Currently, with Python appearing everywhere, and Perl 5 perceived as being very old. It'll need to be able to create apps (I'm very impressed by a couple of small python-gtk things). Sure, the Perl user base will never defect (these monks are devout and Perl will always be the true way).
mod_python at Google is clearly as much a workhorse as mod_perl at the BBC.
I've just learning to be a parselmouth (am a perl monk) and it's a nice language. less punctuation in syntax, and some friendly things like using indentation instead of square brackets (your code always look neat, but you could never do obfuscation)
What is the output of the following?
"Be Sure To Drink Your Ovaltine." What the...?
Would you care to provide any reasons for switching to Python?
Holy wars such as Perl vs Python are typical but altogether unneccecary. Both Perl and Python are maturing and are now sophisticated languages. Furthermore, they are suited for different things. For example, if I were writing a program that needed advanced string parsing, I would use Perl. If I was writing a graphical game, I would use Python. If I was writing a CGI script, I would use Perl. If I was writing a program that described various objects in space, I would use Python.
There is no reason to get so defensive about these things with the exceptions of Windows vs Linux (Linux) and Emacs vs Vi (Emacs).
You've never heard of mod_perl?
I'm pretty sure Amazon runs heavily on perl.
I believe that CPAN is one of the major (if not the only) things keeping Perl alive and well.
It is a great language, and has been used successfully by many huge companies (Amazon for one), but I think if those companies had to redo it again today, I don't think they would choose Perl again. I think that purely as a language, it has been surpassed.
Having a large, mature 3rd party library is what is hampering the adoption of some of the up and coming languages.
Where are the Ruby on Rails people? I expected 100 of them to speak up before the traditional "FRIST PSOT!!!"
Well, for one, perl now has a nice framework similar to Rails called Catalyst (http://catalyst.perl.org/). It's a lot closer to Rails than a lot of other languages' attempts to clone Rails. And yet the Catalyst dev team have specifically chosen to diverge from Rails in certain areas, trading a bit of simplicity for complete flexibility, avoiding some limitations you could run into in Rails.
bp
Humor noted, but the "writing" in question was writing ABOUT the language, not IN the language. Perl is designed to mimic many aspects of natural language, and Larry Wall is a linguist. The difinitive Perl books are very well written from an editorial standpoint. YMMV when it comes to the language proper.
"The legitimate powers of government extend only to such acts as are injurious to others." Thomas Jefferson.
Have you read up on Perl 6? I've done some very extensive reading, and I'd suggest you check out the wealth of new features and concepts before making such an outlandishly foolish claim.
Then again, this is Slashdot, and I suppose this level of ignorance is the norm rather than the exception.
You've never heard of slashcode? :) .pl at the end of every slashdot module?
ever notice the little
+5, Truth
You're joking, it's not PHP that Perl has to compete with, it's Python! PHP will always be slower than mod_perl 2 on Apache2 (bbc.co.uk runs on this and it is a monster), but Perl's primary use is not for server scripting (mod_perl) but as a power tool. Whenever you need to do something with your system beyond the power of shell scripting, use Perl;
Someone should release a book on Windows Vista now that a beta is out.
/me opens the cover of "Windows Vista for Dummies"...
"This book covers the 3 (or so) new features of Windows Vista. For more detailed information about this operating system, please buy a copy of 'Windows XP for Dummies'"
Um, check amazon.
They beat you to the punch, a long time ago now.
No Comment.
I was going to bring this up in the thread about beginning programming the other day, but I came too late to the party. Hopefully someone can offer me some advice.
First, I'm not really a programmer. Not professionally, at least. I've been writing Perl for about four or five years, though. I'm not well-versed in OO and I'd like to be. I've just found it such a stumbling block in Perl and that's probably because I'm doing in Perl in the first place. It's the first language I picked up since I played around with BASIC and Pascal as a little kid.
I run a large auction site. Maybe 40,000 members. I wrote the entire engine (auction, forums - everything) in Perl. But it's getting complex and difficult to maintain as it is. And the performance is not holding up. I could move to mod_perl, but rather than re-writing everything (and possibly doing so in OO), I thought I'd just write it in another language.
I don't want PHP. So that leaves me mostly with Python and Ruby. I've done a lot of reading, but am not sure which would be more appropriate. I think Python might stick me back in the old "easy to do things wrong and blow your foot off" world of Perl. Ruby on the other hand would probably help me gain a better understanding and real-world use of OO.
Performance is an issue. So are available packages. My backend is postgresql and I need whatever language I use to have an extremely capable and flexible and mature postgresql DBI.
At the moment, I have to say I'm leaning toward Ruby. But it does seem that Python might have more mature packages available to it and be a bit more widely used. I'm just skittish because everything I've heard has given me the impression that it's very Perl-ish and if I'm going to be in that world, I might as well just stick with Perl in the first place.
Thoughts?
Most of these languages borrowed heavily on Perl's ideas. Did you know PHP was once actually implemented in perl? It's not immediately obvious to the novice perl programmer, but the corners of the language that people often bitch about (like the OO syntax) actually allow tremendous flexibility, far surpassing the available alternatives (although, again, so-called 'competitors' have adopted a lot of Perl philosophy).
Perl's useful for a huge variety of things... used heavily by people from the Genome project to Amazon.com.
Looking over the Perl6 docs, I can tell the language is going to be a very vast step forward, well beyond Perl5 and all those still playing catch-up to Perl5.
Take a look at the google zeitgeist and look for "perl programming". This proves that Perl still owns the market and still nobody save an enlightened few knows how to use it.
Google Zeitgeist
Everyone attacks Perl code for being unreadable but I don't think I've ever come across real world Perl code that I couldn't manage to deal with (eventually). I've seen some bad code and written some bad code and Perl doesn't have exclusivity in either of those areas. ;)
Does someone have a good example of unreadable, real world Perl code? And I don't mean obfuscated Perl contest entries.
When it comes down to it, other people's code is just freakin' unreadable no matter what they write it in. In fact, my own code looks unreadable and unmanagable if I haven't seen it in awhile. Just the nature of the industry.
Maybe Perl is just a high profile target since the internet is full of small (and useful) pieces of Perl code?
Yow!
there's more than one way to do me.
Please do not moderate parent up, because it's just a guess at most.
Perl6 is actually built from user feedback, for the first time.
From wikipedia: Larry Wall, the creator of Perl, has called Perl 6 "the community's rewrite of Perl", because he has based the changes largely on 361 "requests for comments" submitted by the Perl community in 2000. He is outlining these changes in a series of long essays, called Apocalypses, which are numbered to correspond to chapters in Programming Perl ("The Camel Book"). The current, unfinalized, specification of Perl 6 is encapsulated in design documents called Synopses, which are numbered to correspond to Apocalyses.
Parent is NOT insightful.
It takes a man to suffer ignorance and smile
Be yourself no matter what they say
Python gives you the power and expressiveness of perl, but with actual design principles behind it.
/one of many former perl users since moved to python
Perl vs Python is sort of like MySQL vs PostgreSQL: each of the former was once useful, but now there's an alternative that is so much better, why handicap yourself?
Actually, mod_perl performance beats the pants off everything but raw C modules when doing Apache web applications.
WANTED: RUBY DEVELOPER
Willing to take anyone who knows the the difference between the scripting language and the gem. Must be willing to relocate to Bumfark, IA. Must agree that anyone not using Gentoo is a luddite. Send resumes in LaTeX to...
The same goes for Java.
Bash and Awk are not powerful enough to do some of the jobs Perl can do. And Perl is only slow with some things, and in comparison to really serious languages like C/C++.
Have you read up on Perl 6? I've done some very extensive reading, and I'd suggest you check out the wealth of new features and concepts before making such an outlandishly foolish claim.
Like you I read the Perl 6 updates when they come across the news sites. I have tried to wade through Larry Wall's obtuse bullshit. I stand by what I said. Perhaps you enjoy waiting years for vaporware to materialize. You must be a Hurd user. My guess is you will never see Perl 6. But I doubt whether Perl 6 will advance the state of the art of programming if it ever does arrive.
an ill wind that blows no good
check out "http://pugscode.org/"
_ p6.html
for a working perl6 compiler. Yeah, it is not yet feature complete, but progress is very rapid.
Perl6 is really amazing. It removes most of the worst parts of perl5 and make things even easier on the programmer. If you do an research at all you can find that.
Some people are even starting to port important CPAN modules to perl6 and discovering how much a pleasure it is to use.
see http://www.perl.com/pub/a/2005/07/28/test_builder
as an example of that.
btw, check out the example code. for all of you who think perl5 looks like static on a tv screen, you will be pleasantly surprised I think.
peace
Peace, or Not?
I love and use Perl. But the grammar is already rich and varied. Throwing incorrect Perl6 code into the mix is going to make Perl5 code even harder to read. I sure hope not too much of this stuff makes it onto CPAN (although I know some of it already has).
Umm... to all the naysayers... wonder why netcraft says slashdot.org uses mod_perl? (sarcasm, no need for -5, Obvious).
I for one, welcome our perl-loving overlords. (and the book, too!)
FLR
Perl users are happy when it gets used for EVERYTHING and anything, its like, shit, I have spent all this time learning, now I want every technology to be doable in Perl! 3d, yes, internet sites, yes, databases, yes, write one in perl. operating systems, yes, write one in perl!
PERL is very scripty and cgi'y. I used PERL (sorry perl) while doing some basic CGI about 6/7 years ago.
Never used it since. Have used PHP since... don't use either. All Jsp, Java SE, JSF and Python now.
#hostfile 0.0.0.0 primidi.com 0.0.0.0 www.primidi.com 0.0.0.0 radio.weblogs.com
Ruby on Rails blows away Perl. I used to code in Perl, but I was working on re-implementing Windows XP as a Firefox extension, and I just wasn't getting the productivity that I wanted out of Perl.
So I switched to Ruby on Rails this morning, and I'm so productive, that its sick. Within 5 hours, I have a Firefox extension running on my AIX workstation that can run most Win32 software... Photoshop, Outlook and Half Life 2 work ok, although I only get 40fps with HL2. (I'm working on that)
After dinner I'm going to reproduce every module in the CPAN library, which I estimate will take approximately 2.25 hours. I can't wait!
Conformity is the jailer of freedom and enemy of growth. -JFK
PS: for the uninformed; Larry did indeed write the leading products in those categories at the time(late 80s?)
He said that it can't be obfuscated perl contest. The thing you gave comes from here which is the second place winner of the 5th anual perl obfuscated contest...
PERL5 is (relatively) compact. It does what it needs to do. I can quickly write fast and compact programs to do dirty tasks like extracting data from a log file. Moreover, I can easily decipher another person's PERL program.
Attempts to bloat PERL to include every conceivable widget is little more than an ill-advised attempt to morph PERL into a full-blown development language (e.g. C#) for creating million-line programs. Does anyone remember PL/1? It was supposed to be the be-all/end-all language and incorporated so many bells and whistles that few programmers actually learned how the entire language worked.
Remember the wisdom of the ancients: bearded, graying, almost senile UNIX programmers wearing code-bottle-thick eyeglasses. KISS means "Keep It Simple Stupid".
Still no backup or rationale, just broad generalizations and a weak attempt at, "I'm way smarter than you."
You may be, but if this is your attempt at clarifying, it does little to prove it.
"I'd rather be a lightning rod than a seismometer." -Ken Kesey
I stopped using Perl over ten years ago, when I had a disagreement with Tom Christiansen and he seriously threatened to blacklist me from the Perl community if I didn't agree with him. I told him to go ahead, because I would simply never write Perl again. He laughed and told me to let him know how that went.
Well, it went just fine. I haven't written a single line of Perl since that day, and I haven't missed it one bit.
These days, with so many options available, I think Perl appeals to a certain kind of developer in much the same way Java does. You don't really NEED it, in the sense that many other things can do the same job... but it's a point of style. Java and Perl now serve primarily as focal points for very small and specific communities that otherwise wouldn't really exist in a coherent fashion, much like APL or Objective-C. Ruby is similar, and I don't really see it going mainstream. These sorts of niche technologies still do the job, and selecting one of them instead of a more "mainstream" language like PHP or C++ identifies you as a particular kind of person.
Microsoft cheerleader, blue flag waving, you got a problem with that?
Every time you post a message to this website, you're using Perl. You'd better stop before you foolish irresponsible behavior catches up with you.
Perl can do that
Perl's specialty
Perl/TK can do that for you
I think Perl is.
Personally, I go the Amazon.com route and use mod_perl for the environment, HTML::Mason for the templating, my own guruism for a layer in between the two, and CPAN to integrate with every known computer system and protocol under the sun.
.1 seconds after the click.
And it's oh-so-nice after days of dealing with people's Java bullshit to see *my* pages render
And in the places where C is substantially faster (say, complex math), Perl's XS layer gets utilized by programmers to create C bindings which are then published on CPAN, allowing Perl to continue to operate like lightning.
...Bless you. Do you need a hanky to clean up that mess?
"Victory means exit strategy, and it's important for the President to explain to us what the exit strategy is." G.W.Bush
So, what happens if I use perl6 to run a script that has neither "package" nor "class" statements in it. How is it going to decide which language is that?
I've been asking myself a lot lately why so many people seem to hate Perl. After spending the last few years going from comfortably familiar to extremely familiar with the syntax and features, I think I have the answer.
When you really get down into the guts of perl, you get to do all kinds of crazy nifty things with XS, AUTOLOAD, regular expressions, etc. Perl's syntax is such that once you're intimately familiar with it, you can be either very expressive or very concise.
A lot of code ends up going the concise route because when you know what you're doing, it's easier to write (less keystrokes). Then perl newbies / passer-byers take a look at it, don't understand it, and freak out and say that perl is crap.
Then perhaps they're threatened because there's a huge community of smart perl programmers that manage to upstage them constantly.
To zoom out on the issue a bit, I'm really sick and tired of this current movement in computer science where so many think that programming should be made into some kind of simple task that anyone can do. Hence you end up with languages like Java that hold your hand really really tight and refuse to let go. Is Grandma writing software really a good thing? Or should we save it for the people who at least have a passing familiarity with computers & networks; hell, someone who might even know a little bit about the basic mechanisms in a typical UNIX kernel?
(I refuse to drive a car built out of legos... I don't care that the technology enabled your three year old to do it... it's a high speed highway, damnit, and my life is on the line!)
Make no mistake - there's still an undergound of brilliant developers that understand their systems inside out and produce amazing, high performance code. Many of them are in the open source community. And we refuse to let go of our power tools. You may use whatever language you like, but expect a well-deserved ass kicking if you get in our face and try to tell us you know better.
I've written tons of perl 5.x code in my life, it's been a very useful and powerful tool, but five years already since RFCs, and will likely take another five to *design* this new language? Then how long to implement it on parrot vm? another three? user base is too big to make a committee. I'm thinking Perl 6 won't be too relevant or modern in 2013 AD
So, if you want a language for scripting 9in the sense that most people with little scripting experience think of it), you might want to avoid perl. If you want a language to elegantly encode brilliant ideas in a short space, go for it.
"A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
never using a programming language again due to an argument you had on the internet identifies you as a particular kind of person.
I'd disagree. I've got some doubts about Perl6. That's for sure. But there are more than a few things out of this that are very practical and useful.
Though I think I would have just preferred if they added continuations and what not, cleaned up the guts some too. Damian had a proposal for this I believe called Perl 5i
-William Shatner can be neither created nor destroyed.
Rails users tend to use lighttpd instead of Apache and all its mod_ complexity. Rails scales pretty well. If you're running into speed problems it's likely because of Ruby's slow runtime and not mod_perl vs. mod_ruby.
they were modded down of course... That's why you can't see them, you should browse at -1 to see those trolls. ;)
Gravity Sucks
" small and specific communities" ???? I work in a fortune 20 company and almost everything runs on perl - datamining, ETL, Log processing. Some other small business networks i maintain runs shell/perl for almost all system configuration.
Actually, whitespace is significant in virtually all modern languages. It's just that this isn't enforced by most language specifications.
(If you doubt this, try randomly reindenting a piece of code to observe how this destroys its readability.)
Mike
"Not an actor, but he plays one on TV."
Since I need to learn this language and do rapid development, which would be easiest to grasp and learn.
If you are starting something new use Python.
that can be used to parse complicated log files and security scans
This is traditional Perl terrain because Perl is more or less Regexps and a little bit around it. However, in Python you can use regexps aswell and the stuff around it is much cleaner and easier to "grasp and learn". Perl has the motto "there is more than one way", which makes fast hacks easier and big projects and reading of other coders stuff harder. Contrast that with the Zen of Python: http://www.python.org/doc/Humor.html#zen
As for GUI-Stuff. TkInter is a very easy to use standard GUI in Python. Of cause there are also bindings to other crossplatform toolkits like GTK and WxWindows. The more I read about Perl, the more and more I want to learn Python.
Your gut-feeling is right there.
What's stopping you from continuing to use Perl5 after Perl6 is out? Nothing...
It takes a man to suffer ignorance and smile
Be yourself no matter what they say
PERL !! unbeliveable all this crib about perl, I work in a fortune 20 company and almost everything is done in perl - ETL, Data Mining, Log Processing , Solaris Sys administration, Account management .. Python/Ruby i yet have to hear it being used on a commercial project.
Quite a bit of solaris administration is done thru perl
I understand using php for web applications but thats about all i wld use it for now.
Ever used DVD::Rip on linux it runs on perl/GTK there is a php/Gtk module but its nowhere as mature as perl
you had a small typographical error, I have corrected it below.....
There is no reason to get so defensive about these things with the exceptions of Windows vs Linux (Linux) and Emacs vs Vi (Vi).
Writing Perl isn't a problem.
Reading Perl is a problem, when you're learning it. Reading Python is easier than reading C.
The grandparent is looking for a fast solution--one that he doesn't have to spend a lot of time on. Debugging something that looks like line noise isn't easy, especially since his experience is probably focussed on C-style syntaxes. So it's probably better in his case to use Python.
If you're implementing a large-scale program that involves heavy text manipulation, then you'll want to use Perl. But this project isn't a major thing--it's just there to automate a portion of a sysadmin's work.
Well, as with everything, it depends :)
Both Perl and Python are multiplatform.
Both Perl and Python can use the GTK, Qt and Tk GUI toolkits. Perl and Python only have support for Qt3, so there's no GPLed Windows version of Qt for these languages. Tk's always struck me as ugly, so GTK seems the best choice. It's what Bittorrent uses.
Bittorrent used to use wxPython, a python wrapper around wxWindows, another GUI toolkit. Though wxWindows has always seemed a bit flaky to me.
Both Perl and Python have ODBC modules, which I believe allows a program to interface with MS Access.
Perl has native regular expressions, whilst Python supplies a regular expression module in the standard Python download. If you're using a lot of regular expressions, Perl's syntax is more concise than Python's.
Personally, I tend to prefer Python to program in. It seems cleaner, neater, and easier to remember than Perl. I almost always choose Python over Perl in any project.
That said, a lot depends on your personal preference. Perl seem more 'hacky' than Python (I leave it up to the reader whether that is a good or bad thing), but both languages will do exactly what you want, so there's little to choose between them.
A whole lotta errors here. Try again, maybe with a pastebin instead? Assuming that slashcode broke it, and you're not just throwing together all of perlvar and hoping it works.
I still find this funny.
And still use Perl.
If you want a flame war, email me at lgrinberg@gmail.com I have plenty of time on my hands...
I would say that Perl is far less useful for major applications than Python (my favorite) or other, "cleaner," languages. Perl's a full-fledged general-purpose language, so of course it can be used for major apps, but it's not as good for them. I think that's part of the reason CPAN is so huge and powerful: it comes from a recognition by Perl programmers that the language is at its best when your scripts are under a thousand lines. By using many small CPAN modules you can do some pretty complex stuff with a pretty small amount of code (code written by you, anyway).
So a fuller answer to your question: I think Perl is becoming less important as other languages develop CPAN-like capabilities, but I don't ever see it going away. It will, at worst - or best, depending on your perspective - devolve to what it began life as: a powerful tool for writing nontrivial scripts.
First of all some TLC for you Perl Fanboys (and girls) out there: Everybody loves Perl. Perl is cool, fast, delivers fast results in the area it rules and is the grand daddy of OSS languages. Nearly all books on Perl are fun to read and at least a great laugh.
...) and is the best candidate for a Perl successor. It only lacks Perls unmatched regex features. Entry the famous saying:
In fact it's quite amazing how long this quirky relic of ancient Unix paradigms managed to survive. It's 2005 and Perl _still_ is taken for granted as a PL. That's a terrific feat!
The only PL in the same demografic group that is still in use is SQL. And everybody agrees that SQL is a pain in the ass and the people who invented it -if still alive - should be wrapped in brabed wire and shot into the sun. Larry Wall on the other hand still is a hero. Perl is fun. Sort of like riding granddads old bike that has no gearshifts and weighs a metric ton. If you tighten all the screws, fill up the tires and give the chain a good greasing you can feel the raw power.
Yet I choose Python over Perl because of it's better OOP capabilities and the fact that it's code only gets unreadable if you use brute force in making it unreadable. Python enforces good coding habbits making it handy for group projects and n00bs, has a strong foothold in lots of areas where Perl lacks (Gaming, GUI, 3D, large Web frameworks, etc
Perl is executable line noise, Python is executable pseudocode.
However, all academic discussion aside: If you think it's important to be a 'manly' programmer by preferring outdated development habbits over modern and, yes, easyer PLs, you're being silly. Perl being cool or not, there are situations were it is plain irresponsible to use it.
We suffer more in our imagination than in reality. - Seneca
Redmond,WA expects us to ... Maybe Larry just took a page from Microsoft's book?
my geeklog
I have just plucked out my eyes, you bastard!
Rich And Stupid is not so bad as Working For Rich And Stupid.
The people who write this code obviously don't have an enter key or a space bar.
Even as someone who abandoned Perl for Python, I suspect there is a point to Perl. I'm truly impressed by the concise power of Perl one-liners and text-manipulation scripts, and I made an earnest attempt to become a Perl user.
:-)
Unfortunately, I only need scripting once every few months or weeks, which is longer than it takes me to forget all the little details that make Perl so rich and expressive. Python is much better for me: it only takes me a few minutes to start writing good code in Python, no matter how long it's been since the last time.
My failure should give some idea of who can and should use Perl:
1) People who need and use scripting every day or at least several days per week
2) People who are much smarter than me
Seriously, Perl is a complex and sophisticated tool that rewards consistent commitment. You just can't half-ass it, or neglect your Perl skills and expect them to be there months later when you need them. For that, use Python.
I gave up Perl this year. Now I write Ruby. Never been happier. Ruby is what Perl 6 ought to be.
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
Python is for weenies who want to be told how their source code should be laid out.
Perl is for weenies who want to feel superior because their language can be write-only.
I prefer Perl, myself. The few times I've used Python, I've hated the enforced layout. It seems like it wants to be a verbose LISP without all the parenthesis, but instead turned into a straightjacket.
When I've used Perl, I've felt that I'm in a maze of twisting passages, each of them the same (or *mostly* the same). But it's a better feeling for me, having the Swiss Army knife with six screwdrivers, a garment steamer, compass, knife, knife sharpener, nuclear power cell, and fly swatter. Yeah, it's a mess, but it's a *beautiful* mess.
But, like any cult, it depends on which one you want to join. Me, I joined the one that serves ice-cream on Fridays, because they allow dogs. The decision on which language to go with is almost as arbitrary, and certainly as absurd. Just pick one and code. Or pick both, and code.
Microsoft is to software what Budweiser is to beer.
Stop waiting around for Perl6 and start using Ruby.
I work in engineering and have to analyze piles of data. I use perl every day to convert, filter, move around, and format data. It works better than Matlab for large files. I also use it to write large run files. In short I think perl is still useful for doing many simple scripting tasks. Many of the people on /. are looking at it more from the web developer view point. I've never even learned how to use perl for that purpose.
Perl6 and Parrot will stabilize in a few years (5?), and it's very likely that the bulk of CPAN will be ported to Perl6 in a way which is compatible with Parrot-hosted languages which behave themselves.
Suddenly (not) the perl syntax will be on even footing with any other language implemented over Parrot. "The right tool for the job" will take on a whole new meaning.
Friend, you don't have a perl problem. You have someone who needs to be removed from the project, or at the very least, whacked on the head with a data structures book every time they try a new interpolation trick out. And steal their perlmonks password and lock the account.
I forget what 8 was for.
People who still care about programming languages are wasting their breath.
;-)
Look at the difference between a bad, a good programmer and an excellent programmer. We're talking 1 to 2 to 10 factors in productivity and quality here, easily.
Programming languages? Unless it's a language (or programming paradigm) the programmer doesn't know (in which case it doesn't matter much whether it is Java, C, C++, Perl, Python or ruby) at all, the difference for the same programmer from one to another may exist (depending on how fluent they are), but likely more on the order of 10-20%.
This is much the same like arguing about indentation and whitespace style. None of the common ones is _significantly_ better than the other, and the time spent arguing about them sure ate up any gains they might have ever offered. Pick one and stick to it, amen.
So, the choice of language is almost irrelevant compared to the person (or team) you get to do the job.
For quite some applications, it doesn't even matter whether the interpreter or the compiler is exceptionally fast or produces such code, as long as it gets the job done. (I've seen people tune code for hours, to get it to run 5s faster at a total runtime of 1 minute once per month. While artistically pleasing, it's a waste of time.)
Sure, there's exceptions to this rule. If you want to write a Linux Kernel module, you're essentially forced to write C. Some languages have either special features in the syntax or many libraries available to solve problems in a specific problem field. (Perl really beats C for writing string matching, for example.)
But overall, these don't matter as much as you think they do.
Now, with that said, one exception I'd like to dip into, and why I'm glad that python exists. (Take note I'm a Perl head myself!) Perl allows not one, not two, but several hundreds of ways of doing the same thing. Picking one of the "best" choices to do something is a matter of style, taste and experience. Understanding it is too. So, I'd argue that -good- Perl is slightly beyond the average programmers, because if you had the skills, you'd be at least a good programmer already.
Python/Java, on the other hand, is stricter. (It starts with enforced code formatting and goes from there.) This, to a free-thinker like myself, often feels like an artifical constraint. _I_ want to decide how to do this, damn it! But, if you want to enable average programmers to just get their small hack in quickly and almost cleanly, Python might not be the worst choice, while Perl might rate pretty low.
I still love Perl. And Perl 6 looks like a real improvement, surprisingly both in features as well as in style - that is quite a feat.
End of rant
It's Huffman-coded: things you use a lot are shortened.
It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
perl : python :: C : COBOL
I found it clear but verbose; things that are golf-able in perl take 10 lines to write in python. Perl, in general, makes things more clear to me because I can see the "big picture".
It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
Other languages strictly borrow from Perl if your knowledge of PLT only extends to Perl. Name competitors that adopt Perl's philosophy. Ruby? No.
On the contrary, Ruby's basic library was designed based off of Perl's, and it follows the "there's more than one way to do it" approach of Perl as well.
If you take a look at actual job listings, you'll see that there is still significantly more use of Perl than PHP. Many ISPs support PHP, and many small hosted sites use it, but that doesn't make it more mainstream. And the idea that C++ is more mainstream than Java... Where have you been hiding for the last 6 years?
Perl doesn't write bad code, people write bad code.
Try it, you might like it. :-)
I've fallen off your lawn, and I can't get up.
I don't know. I've been writing a lot of stuff in Perl, and every time I get the feeling that Perl is Not Good, I try to code something in other languages. And every time I do that, I either get the feeling that the other language is completely overhyped, or has even weirder quirks than Perl, or has excellent results but dozens of times the development time.
(Guess I did't mention the day I rewrote a Perl hack of mine into a well-crafted Java application, quadrupling the line count and having the app do the exact same thing? Was I ever bored that day.)
So these days, I've wisened up. If there's a task that needs a Perl-esque solution... by Jove, I will use Perl for that. Perl has its niche, especially if you happen to know the language better than that.
My favorite case was that I was trying to sleep at four o'clock in the morning listening to music, thought "wouldn't it be great if I had a button on my remote control that would make XMMS to say the name of the song?" ... got up, sat before xemacs, wrote the damn code for that functionality (18 lines), stuck it in ~/.lircrc and got back to bed. And the only change I had to do in the morning was to add one error handling case. The fact that I can program interesting functionality half-asleep at four in the morning tells something about the thing's suitability for short hacks. =)
So for me, it's two things - the fact that I'm familiar with the language, and the fact that Perl is good for short hacks in *NIXlike world. ("I need this app do this weird trick. ... Okay, done.") I also admire its flexibility, it's almost like a weird dialect of Lisp that can actually bend text and binary data with its left hand into weird shapes.
I don't know about its suitability for larger projects though - I know people do use it for huge projects, and it can be used, it just isn't pretty. Ruby is a lot like what Perl should look like if it'd be suitable for really big things, and I use it for them. And, of course, Perl 6 will look a lot like Ruby too, just undoubtedly more... flexible.
(And Python is just too quirky for my tastes. Good ideas, but everything is just weirdly done. It's also more verbose than Ruby. In my opinion, Ruby and Perl 6 are both far cooler. And don't get me even started on horrors of PHP!)
Ah, sheesh, I don't know if this makes any sense, it's early morning here afterall. =)
I'd hardly point to this site as a poster child for Perl. Can we some day get meaningful page batching (so that when I click '2', I don't then have to read an almost-full screen of what was on page1 before getting to the next posts)? Not that it's Perl's fault.
I'm afraid I'll have to blacklist you from the software development community if you continue to refer to Java and Perl as "niche" technologies. They're wildly popular, regardless of your taste for them.
The problem with any programming language and it's once legacy source code writing style kicks in, this is true for any language, include C, C++ or Perl.
h viz-2.4.tar.gz
t ar.gz
The older the language is, the more chance that you find some unmaintainable legacy source code.
The thing with newer language with Python, Ruby,
PHP, Java and some C++ is that these are "recent" language, therefore, the odds of finding a very old legacy system is smaller.
In 10-15 years from now, you will say that Python, Ruby, PHP or Java is so "unreadable",
because they are no more the "flavor du jour"
and new constructs exists instead. Like most people says about cobol, pascal, scheme, lisp source code.
There is a difference between "unreadable" and "encrypted".
The former was not "expecting" to be unreadable, it is just badly written by mistake or use older construct that nowadays are no more used.
The later was made on purpose, which is the difference.
If you want "unreadable" C source code, take a look at Graphviz Dot, no it's not part of IOCCC and was not make to be part of it, but if you ever try to understand this legacy code, good luck!!!
Disclaimer, Graphviz dot is a nice piece of software, but it cries out loud to be heavily refactored.
In fact, the first two layers were refactored, but the core engine is dated back to the 80's with K&R style and variable/function/struct name being less than 5 characters!
http://www.graphviz.org/pub/graphviz/ARCHIVE/grap
If you want "unreadable" Perl source code,
take a look at any source code, which have:
no "use strict;"
no "use vars qw{};"
use heavily "local"
use heavily "map"
no "return" statement --> $r; == return $r;
use heavily complex non-trivial regexp without documenting them.
no documentation or POD.
use some old perl construct.
Take a look at this one,
clc (gzip'ed tarfile)
Counts total lines, noncomment lines, and statements in C/C++ source.
Written by Brad Appleton in 1995. Implemented in perl.
http://www.chris-lott.org/resources/cmetrics/clc.
No, Ruby's library was designed from Perl's. The language itself was designed from Smalltalk. Learn what a "library" is.
and kiss Autrijus' ass for saving their language. The project was completely stagnant before he single-handedly wrote an actual Perl6 (pugs) interpreter. Thankfully Autrijus leads by example and inspires people. What a marked change from the drudgery and stupidity of a certain VM project that was on the fast-track to nowhere.
Other than most places will pull support? Just like they did for Perl 4 when 5 came out?
Can you point to *anything* to back this up? An interview with Matz, or a posting to some ruby-* list?
Java is the blue pill
Choose the red pill
What if you never have brilliant ideas? I'll stick to php then...
so... did you let him know how it went? his response, please.
dang it! guess I'm in for another 10 years of using cobol.
this whole portion of the thread reminds me of groundhog day.
Before being a pedantic asshole, make sure what you are saying is correct. Greedy is only needed if the entire regex chunk may match more than once. /pedantic asshole
And I thought it was the 'uvula'... (yes, I know, I need to get a life)
My Spectrum is better than your C64..
... executable Pseudocode."
I really don't understand the reason people (mostly Perl people to my impression) get all worked up about this sentence. Some Perl People tend to think it's an insult to Perl, Which it absolutely isn't. It doesn't even put one PL in a better light than the other. It just adequately describes the character of both compared in a humorous way.
I use both (Python more than Perl, but that's only because for the Projects I do Python is suited best) and don't feel the least bit put of from Perl by this true and witty one-liner.
Bottom line:
Chill out, people. It's just a saying with some truth behind. And I'd even guess it was made by a Perl programmer.
We suffer more in our imagination than in reality. - Seneca
Perl 5 is still a very viable language. I have and continue to use it for large programming projects. Its string manipulation support is still among the best out there. CPAN provides a very large archive of 3rd party modules so that you don't have to reinvent the wheel. perlmonks.com provides a wealth of tips/tricks and knowledge that no other language has.
... though, i'm not sure how much I would actually consider using it at this point (in a production sense). Good documentation is still hard to come by, and if you google for something it brings up mirrors of the same document.
... C# looks like a great language, I spent several months playing with it and considered using mono for some production programs. But using it scares me ... C# is an established standard, but .NET is not and can change at the whim of Microsoft ...
... old tried and true languages. I would encourage any NEW programmer to start with ANSI C. Its great to learn on; memory management, pointers, etc ... all valuable thigns to know how to work with. My only real problem with C and C++ is that working with strings is a nightmare.
... Its proven to be stable, has a large community behind, is well documented. Perl 6 does worry me a little though, and there will be a lot of time spent testing before it hits any of my production servers.
With that said, I don't disagree that Perl has many short comings. Python is ellegant and easy to read. I've done quite a bit of programming in python over the past couple of years, but I really don't like languages that rely on whitespace.
PHP. Mixing logic and content is a mistake which is how it is mostly used these days.
Ruby is a neat fad. Actually, i hope it catches on even more. I recently started learning ruby and enjoy it s far
C#/Mono/.net
C/C++
I could go on and on, but ultimately I always find myself falling back to Perl
So... lots of people need Perl programmers, and not many people need PHP programmers. Wouldn't that naturally imply that the people who want PHP programmers already have them? Doesn't a distinct *lack* of Perl programmers among those who want them present some evidence that they're thin on the ground?
Just look at the overall developer community. C++ and PHP groups get a boatload of traffic from an overwhelming number of participants. Java and Perl groups don't; they get a lot less traffic from a lot fewer people.
And the signal-to-noise ratio is OUTRAGEOUSLY higher.
If you're an experienced developer who wants to communicate with other experienced developers, you have to go where those developers are. In the massive communities around C++ and PHP, you can't get a good SNR because you're surrounded by all these idiots. There are smart people there, but the idiots are always in the way, so you can't find them. You have to go somewhere the idiots simply can't get over the bar, or at least find it a hostile enough environment that they leave rapidly.
So you have three choices: a difficult technology, an unpopular technology, or an intolerant community. These strip out the idiots and make it easier to find people worth your time and effort. And while difficult technlogies and intolerant communities might be seen as drawbacks, EVERY technology eventually becomes obsolete and thus unpopular. So after you've been in the industry long enough, *something* you like and know will end up unpopular enough that you can join a community focused around it and enjoy an idiot-free experience.
Microsoft cheerleader, blue flag waving, you got a problem with that?
except Perl is all but KISS. TIMTOWTDI is its approach to problem solving. and its big, mixed barroque syntax, although can lead to very compact code, is all but KISS as well.
Good Perl programs can be considered KISS, as long as who are reading them are aware of common Perl idioms and its large non-KISS syntax.
I don't feel like it...
Generalizing: it doesn't matter how bad a language is, as long as it has a robust, large and varied user library covering everything you can imagine under the sun. This is because people either don't have the time, desire or technical knowledge to implement such functionality by themselves. They are just client programmers.
look at C ( almost every native libs written in it ). look at Java ( enourmous user library ). look at Perl ( CPAN ). look at VB, damnit ( simple access to almost all Windows services )!
I'm not saying Perl is as bad as those other examples, but its true shining aspect, aside its many convenient syntatic sugars, is CPAN, indeed.
I don't feel like it...
> These sorts of niche technologies still do the job, and selecting one of
...) depend on it. On Gentoo, the package system depends on it, so you can't even install PHP without already having Perl. It's part of the core on OS X as well. On my Debian workstation, things that depend on Perl, either directly or indirectly, include the font manager, Gnome, KDE, autoconf, xscreensaver, and Mozilla Firefox, among plent of others.
> them instead of a more "mainstream" language like PHP or C++ identifies
> you as a particular kind of person.
You really think PHP is more mainstream than Perl?
Wow. That's a new one.
Perl is a core part of practically every non-Microsoft OS and distribution; half the applications on a typical X11-based desktop depend directly or indirectly on it. On Mandrake, for instance, all of the *drak apps (printerdrake, fontdrake, harddrake,
Whereas, if you uninstall PHP, the only likely casualty is WordPress.
Yeah, PHP is so much more mainstream, so much more widely deployed and relied on than Perl. That's why LAMP was "Linux, Apache, MySQL, and Perl", but then as an afterthought, to be politically correct and inclusive, they changed it to "Linux, Apache, MySQL, and Perl or Python" and then to "Linux, Apache, MySQL, and Perl, Python, or PHP". You can almost here the unspoken word "even" before the PHP in that last form.
Cut that out, or I will ship you to Norilsk in a box.
> so much more mainstream, so much more widely
> deployed and relied on
By that definition, machine language is even MORE widely deployed and relied on. Are you proposing that machine language is mainstream?
I think "mainstream" is less about who's RUNNING a given language, and more about who's WRITING it.
Microsoft cheerleader, blue flag waving, you got a problem with that?
First, I think we're all off topic here and should be discussing Scott's book...sorry Scott, haven't read it yet. I find it incredibly amusing that everyone always asks..."Why should you use Perl any more?". I think the real question should be, "Why SHOULDN'T you use Perl?". Just because a language is older doesn't mean that it's still very well suited to solve the majority of your programming needs. Perhaps Perl isn't well suited for certain niche applications or (Perl mongers forgive me) super easy web design like PHP; BUT, that doesn't mean it's worthless and should be abandoned. It will forever have a place in the corporate scripting world. That's probably why (contrary to other "I ditched Perl for Python" posters) I know 10 Perl coders for every one that professes an affinity or even working knowledge of Python. And yes, hate mail to the white space fanatic that spawned that little "requirement". Because Perl is no longer the new flavor of the month shouldn't equate to everyone questioning it's value or worth. It should be given fair consideration along with any other language when reviewing a project need balanced with the costs of having your programmers learn a new language. If Perl can efficiently solve 90% of your needs, why not chose to use it 90% of the time. Of course, it really comes down to what you're comfortable with, cause if everyone did a fair review, I'm guessing that many of the newer scripting languages would have been determined as mainly unnecessary and would have never gotten off the ground, or could it be that Kerrnigan & Ritchy would have had the last laugh and none of these languages would exist (particularly the MS ones).
I'd argue that it doesn't, and the fact that people think that it might is actually a disadvantage of Perl (wrt Python).
The indentation only gives this information for lines for which the author, or anyone else who's handled the code in the interim, didn't somehow screw up. The only way to really know is to run it through a reindenting tool that knows about your convention. (You did write one and include it with the code, along with a spec for your indentation style, didn't you?)
In my experience, hints like this that are wrong 1% of the time are worse than no hints at all--it takes quite a while to realize that you can't trust them.
You may think this radical, but I've had to try to interpret way too much bogusly indented Perl in my career.
Unfortunately python does allow both tabs and spaces, and I agree that this is a problem, albeit a very minor one. I'll leave you to track down the various reasons why this doesn't seem to cause trouble in practice, and just mention that in my 5+ years of Python programming, I've never seen a single bug due to this.
Mike
"Not an actor, but he plays one on TV."
Ruby selectively integrates many good ideas taken from Perl, Python, Smalltalk, Eiffel, ADA, CLU, and LISP.
Intron: the portion of DNA which expresses nothing useful.
Stewart: I gather you had worked with both Perl and Python before creating Ruby. What bits of Perl did you incorporate in Ruby?
/ 29/ruby.html
Matz: A lot. Ruby's class library is an object-oriented reorganization of Perl functionality--plus some Smalltalk and Lisp stuff. I used too much I guess. I shouldn't have inherited $_, $&, and the other, ugly style variables.
http://www.linuxdevcenter.com/pub/a/linux/2001/11
> I think "mainstream" is less about who's RUNNING a given language,
> and more about who's WRITING it.
Ah, so what you're saying, then, is that more people *write* stuff in PHP than write stuff in Perl. Well, that's harder to measure, but it still sounds like unmitigated malarke to me. I know, for instance, that when the Open Clip Art Library needs changes made to the PHP portions of its website, beyond merely changing stuff in the HTML that is printed out, it's quite a lot easier to find someone willing to rewrite the page from scratch in Perl than it is to find someone to make the needed changes to the PHP. The site started out 100% PHP, adapted from some other website with minor modifications, and at this point about half of it is Perl. There are only a few people involved in the project, so the sample is probably not statistically significant, but nevertheless, there are a *lot* of Perl programmers out there actively writing code.
Cut that out, or I will ship you to Norilsk in a box.
> more people *write* stuff in PHP than
? form_cat=160
> write stuff in Perl. Well, that's harder
> to measure
How about this?
http://sourceforge.net/softwaremap/trove_list.php
Perl (6020 projects)
PHP (11536 projects)
IMO, this sample is actually skewed toward Perl, because Perl is very popular in the open source community. In the larger community of all software developers, including commercial proprietary packages and internal development projects, I believe you'll find that Perl is significantly less common than these figures represent. Not many people are writing Perl commercially, but a lot of people (like me) are writing PHP commercially. There are also a lot fewer schoolchildren learning Perl than there are learning PHP.
Same for Java. On Sourceforge, Java and C++ run just about neck and neck:
C++ (16060 projects)
Java (15800 projects)
However, when I say C++, I'm really talking about C/C++ because all C is valid C++. So let's include C as well:
C (15360 projects)
Looks like about the same ratio. C and C++ represent about twice as many projects as Java. And again, Java is more popular in open source circles than it is in commercial and internal development, so the sample is probably skewed toward Java.
Of course, there may also be legions of Perl and Java programmers that have blacklisted SourceForge from the community because they disagreed with it.
Microsoft cheerleader, blue flag waving, you got a problem with that?
What's stopping you from continuing to use Perl5 after Perl6 is out? Nothing...
Great solution; typical slashdot advice. I can hardly wait for Perl7, Perl8... Retard.
an ill wind that blows no good
> How about this?? form_cat=160
> http://sourceforge.net/softwaremap/trove_list.php
> IMO, this sample is actually skewed toward Perl, because Perl is very
> popular in the open source community.
Sourceforge is not especially popular in the Perl community, however. I'm pretty sure there are rather more than eleven thousand modules on the CPAN. Heck, there are some 4500 *authors* who have published work via the CPAN.
> Of course, there may also be legions of Perl and Java programmers that have
> blacklisted SourceForge from the community because they disagreed with it.
Huh? Blacklisted? Disagreed? More like Perl programmers look at sourceforge and say, "Oh, it's sort of like the CPAN, but without the nifty Perl-specific features." Perl programmers don't use sourceforge very much because the CPAN fills that role in the Perl community and provides significant additional benefits, such as better search facilities (search.cpan.org, which incidentally automatically extracts the embedded documentation from the POD and makes it available in HTML format on the web), dependency resolution (pretty decent dependency resolution, too, significantly better than urpmi or apt-get can manage, for instance), and a larger and less congested set of mirrors, among other things. Plus the CPAN was already the de-facto clearing house for Perl before sourceforge ever existed, so migrating over to sourceforge at that point wouldn't make sense even if it *had* the features CPAN has. The overall reaction to sourceforge in the Perl community varies from nonplussed to "Cool, I'll use that when I do projects in other languages than Perl."
Cut that out, or I will ship you to Norilsk in a box.
I can't tell if you're kidding. At the risk of not getting the joke: install the CPAN module. Type "perl -MCPAN -eshell". Then type "install Foo::Bar". It will handle all the dependencies.
> Sourceforge is not especially popular
> in the Perl community
It's not especially popular in the PHP community, either, so I don't see the problem.
> Huh? Blacklisted? Disagreed?
It was a back-reference to a previous post, which was intended to be humorous. Unfortunately, you don't seem to get it.
> Perl programmers don't use sourceforge very
> much because the CPAN fills that role in the
> Perl community
Are you listening to yourself?
"Perl is not a niche community! We just publish most of our projects at our own special place with features that cater to our own special needs."
Um... yeah. Sure. Whatever.
Microsoft cheerleader, blue flag waving, you got a problem with that?
> "Perl is not a niche community! We just publish most of our projects at our
> own special place with features that cater to our own special needs."
Well, only (most of) the open-source ones, obviously. But the CPAN is a fairly large network. The list of mirrors is about 145K. Describing the CPAN as "our own special place" is about like describing the Atlantic Ocean as "the pond out back".
Cut that out, or I will ship you to Norilsk in a box.
> the CPAN is a fairly large network
The question which determines whether CPAN is a niche community is not whether it is *small*, but whether it is *special*.
So if there is nothing special about CPAN, then it is not a niche community.
Feel free to mount your argument.
Microsoft cheerleader, blue flag waving, you got a problem with that?
> The question which determines whether CPAN is a niche community is
> not whether it is *small*, but whether it is *special*.
Oh, so what you've been saying all along is that Perl is *special*. Right.
Cut that out, or I will ship you to Norilsk in a box.
No, I've been saying that Perl is a focal point for special *people*, which is useful when you need to find those people.
Of course, some special people ride the short bus.
Microsoft cheerleader, blue flag waving, you got a problem with that?