Higher-Order Perl Available For Free Download
Christopher Cashell writes "As noted on Perlbuzz, Mark Jason Dominus's amazing book, Higher-Order Perl, is now available for free download. This is a great book that goes way beyond your normal programming reference. This will change the way you look at programs, and make you a better programmer in any language. It sits on that special shelf reserved for books like Structure and Interpretation of Computer Programs, The C Programming Language, and The Practice of Programming."
Funny, I would have thought it sat on a hard drive or a usb key or something ...
"You have downloads on my bookshelf!"
"You have bookshelves on my downloads!"
Nope, sorry -unlike peanut butter and chocolate, downloads don't mix with bookshelves.
...and both are equally readable!
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
If you can tell me why Perl is so popular, I think I can answer your question. It seems pretty clear that there is a large intersection between "people who love Perl" and "people who never had exposure to functional programming".
Particularly since the links on the site go to Powell's.
Powell's is freaking cool. And independent, if you care about such things. (And, for that matter, even if you don't.
Perl is also very useful in a lot of jobs that don't list "Perl" specifically in the job description. I don't know how a network administrator could survive without it, for instance. You'd constantly find yourself spending hours to do a ten-minute job.
Cut that out, or I will ship you to Norilsk in a box.
Python isn't a very good language for quick-and-dirty scripting, and it's often not installed at all by default. It's a pretty good general-purpose programming language, but that's a different matter entirely. Perl, in comparison, is ubiquitous on pretty much all Unix-like platforms, and is well adapted for things like one-off one-liners.
More relevantly to this thread, Perl is a better language for FP than Python is. Perl has full support for anonymous closures (Python's lambdas are very weak by comparison), and Perl has proper predictable lexical scoping (Python's scoping rules are rather strange). This all reflects the different design goals of the languages. Python is built on the principle that there should be only one way to achieve any goal -- and in practice that's usually objects. Perl is built on the principle that the programmer should have loads of options to choose from -- and hence it supports several programming paradigms equally well.