We also have a powerful framework - http://www.catalystframework.org/ and there's an excellent book: "The Definitive Guide to Catalyst".
There's also a great, freely available, introductory Perl book: http://www.onyxneon.com/books/modern_perl/index.html. For any framework you pick up you'll need some grounding in the language as whole.
Many would consider Perl to be not as shiny and modern as Ruby or Python but we keep stealing their good ideas anyway:
* Rack/WSGI -> Plack. * RVM -> Perlbrew. * Bundler -> Carton. * Sinatra -> Dancer.
Not to mention the good ideas emanating from the Perl community itself:
* A strong commitment to testing, which has lead to a central repository for cross-platform test reports for every Perl library released http://static.cpantesters.org/ * An advanced, powerful object system http://www.iinteractive.com/moose/
Much as I enjoy programming Perl, there's not really a bad choice between: Perl, Python, PHP or Ruby. Some would argue that the inconsistencies of PHP make it more difficult to learn but I'd argue that if you're on a Windows platform it's probably the best choice. The ubiquity of cheap PHP hosting is another benefit for a beginner.
Try learning enough to write a simple script in each of Perl, PHP, Python or Ruby. Then a pick a framework for the language you felt most comfortable with.
I prefer Mojolicious over Dancer. Be sure to take a look at the wonderful documentation over at mojolicio.us and drop a line at the amazing (and helpful) community on IRC (#mojo on irc.perl.org).
* Ruby * Python * JavaScript * PHP
These are also the most brittle because they invent and change quickly.
I used to be a PHP developer and I thought the frameworks borrowed heavily from the stable Ruby and Python ideas for web app development. You'll find the crazy ones in Ruby and Python and a safer ground in PHP. Safest in Java. My bias.
Vibrancy != longevity. Rails 3 bit me tonight because I didn't understand a 201 status code and I almost hacked the path and then what was going on…it felt like the most correct, wonderful thing to do. I'm happy with the result, especially because the code is clean and browsers honor it without a fussy redirect.
Ruby and Python are vibrant, hungry communities.
PHP is vibrant, more stable.
Java is stable and most difficult to introduce an idea to unless it's a language atop the VM. :)
I would love to go the Java route, but I keep seeing fragmentation ala platform on top of a platform....not sure if that is the best thing to work with.
PHP is a good intro language because you can easily run with it (build a simple site), it has great documentation, and the hosting is straight forward (thus it is easy to launch). Once you get more accomplished with you skill-set, you may get picky and want a more robust language, but 99% of the beginner type stuff can be done with PHP.
Also, Javascript is great, you will use this regardless of the "server side language" as it is "client side" (in the browser). jQuery will help, as it standardizes many common and/or complex problems.
some popular php frameworks include Zend, CakePHP, CodeIgniter.
I looked at all 3 and tested it out. I went for CodeIgniter.
If you're more flexible and just looking to learn, build little apps on as many platforms as you can and see which one you like best.
a. A good developer should be able to know a few languages, and to keep on learning new languages.
b. In theory you pick the best language depending on the requirements of the project.
In all reality, let's say someone were to build "simple" web applications.....by which I mean...a twitter clone etc., would it really make that big of a difference if I chose Clojure or PHP vs. ROR.
Maybe I am ignorant about the nuances of these platforms, but from a birds eye view, they all look able to perform the same tasks.
If you're not doing the work yourself create wireframe and/or spec of the project and talk to a few programmers. If you are doing the work yourself and getting started maybe how easy the language is to learn might be a factor.
Also if you are building a Twitter clone I'm assuming that you'd also need a database -- so there might be more things to think about as well.
I understand JS is here to stay a long time, but for rapid development, ROR seems progressive. Correct me if I am wrong.
Javascript is used in conjunction with ROR. All of the cool visual effects you see on webpages (and AJAX requests) are entirely javascript.
Your real question should be: should I use ROR, node.js, PHP, or python for the backend. The answer: it depends on what you're building.
PHP is great for speed & reliability. It is not nearly as easy to snap in pieces of code like Rails & gems (which can be a huge downfall). It also doesn't enforce strict code organization & etiquette. If you choose PHP, make sure you're familiar with MVC and the separation of your code and your site HTML.
If you want to have real time stuff in your applications (chat, notifications, etc), use node.js. node is also very fast & scalable. It is entirely server side javascript (which is nice, because then you're writing in the same language for client side and server side).
Rails makes web development easy. There are tons of fantastic gems out there that do the heavy lifting for you. In my opinion, this is ROR's strongest piece. Rails is also pretty fast for a framework, although straight PHP and node will smoke the crap out of it every day of the week. Basically, you pay a (IMO) very small price for a ton of saved development time.
I don't have a ton of experience with Python & Django, but I've heard good things about it. Rails seems to have more traction, so if you're going for a web framework, I would advise you to choose Rails. That being said, Python's twisted framework is pretty sweet for real time stuff (especially chat). Python is also incredibly fast (on par with node & PHP).
I hope this helps you choose your first language. You can always mix and match these languages to accomplish multiple goals (I use PHP, node & Rails at my current startup). Good luck sir!
* Clojure on Heroku
* Java on Heroku
* node.js on Heroku
They aren't doubling down on Ruby, let alone Rails.--
Speaking of Rails, I have been a little disappointed with Rails 3.1... we've had various technical problems with the release candidates, and they've been late in getting to an official release.