Should I be interested in Perl? Is there any reason to learn it if I know these other languages? I am genuinely curious
Should I be interested in Perl? Is there any reason to learn it if I know these other languages? I am genuinely curious
Nowadays Phusion Passenger makes Rack-based Web apps snake-simple, and using JRuby gives me all of the Java libs out there (including Swing for insanely-easy cross-platform GUI apps when teamed with Monkeybars), as well the option to deploy Web apps as war files to Java app servers.
At this point the interest in Perl would have to be due to some intrinsic language feature that might help broaden your ideas about programming in general (the way that, say, Haskell or Io might).
Still, I'd say try it out for a few small things; you might find that Perl better fits the way you think, and if not, at least you can say you know a bit of Perl if anyone ever asks.
I know Perl better than most other languages in my toolbox, and it's my default prototyping and one-off utility language. I don't find a lot of niches (for my typical uses, of course) that are served better by Ruby, so it's been really difficult to switch away from Perl.
Maybe look around CPAN a bit, see if you find any libraries that you think might be useful, and are not available on PHP or Ruby.
The reason I say that is because a programming language is just like a religion. You will like it or you will not (even with its quirks).
[1] You can probably learn things in Perl that you couldn't in PHP but if you pick a more pure language the lessons will stick out more. Perl also has a lot of extremely bad practices by default.
This is also good: http://www.perl.com/pub/2007/12/06/soto-11.html
However, Perl is still an excellent language for building scalable web systems in no time.
With 'Modern Perl' you get 'Ruby on Rails' style of programming in Perl, and with Perl you get the tons of libraries in CPAN.
I wouldn't recommend learning Perl if you already know Ruby. For the same reason I wouldn't learn Python or Ruby because I know Perl. I'd learn something different like Erlang.
With 'Modern Perl' you get 'Ruby on Rails' style of programming in Perl
What exactly does that mean? Optional parenthesis on method invocations? Considerable use of convention over configuration? Built-in object mapping to database schemas?Considerable use of convention over configuration? Not sure what you mean here.
Built-in object mapping to database schemas? Yes.
I'm also referring to the clean MVC/OO style project architecture.
Here's how I described it in another thread:
With modern Perl, code is usually clean and free of crazy syntax. With a OO architecture where the base classes do most of the work (such as auto authentication, auto encoding/decoding, auto DB joins, etc.) and you do business/game logic in the upper modules.
Ah, OK. That just sounds like Ruby, though, nothing special to Rails about that.
But perhaps I got Rails confused with Ruby with my brief experience with it. I thought Rails provided the tools to auto-create your project structure in an MVC style.
If you use something like Catalyst of CGI::Application you get built in things like MVC project structure, auto populate a 'class' from a table entry, etc.
Basically, you get all those built-in functionality for building web apps that you would in Rails. But, I very briefly played with Rails, so I may have its definition confused.