You like client-side web coding and you want to expand your repertoire to include some server-side tricks. Awesome! But which language do you learn? Which book do you buy? Which sites will help? Read on…
This is the kind of question where the answer depends on several factors, some of which you can’t completely understand until you actually learn one language, and see its limitations. I’ll do my best to help. Let’s look at the options:
- ASP - Microsoft’s server-side answer to everything.
- PHP - Open-source scripting.
- Coldfusion - The grandaddy of them all. Adobe/Macromedia’s proprietary server-side language.
- Ruby on Rails - The newest, hottest thing since tag clouds.
- Anything else - Perl, Python, C++, JSP (Java), Scheme, etc… All of these languages are valuable, I’m just addressing the ones that I’m most commonly asked about.
Next, consider what your ultimate goal is (world domination?). How will each language help you achieve it?
- Employability - There are more job openings for ASP programmers than for PHP programmers, and more for PHP programmers than for Coldfusion programmers. I can back this up with cold, hard, numbers.
- Sexyness - Who doesn’t learn a new programming language or technology without considering their geek cred? In this area, open-source wins. Ruby on Rails takes the take, with PHP a significant cupcake.
- Cost and Access - If you don’t have access to a server that supports a proprietary technology, your choice is evident - use Apache, MySQL, and PHP (which will get you a LAMP)! These open-source technologies are available to anyone, on (almost) any platform.
- Ease - In my opinion, PHP is the easiest of these languages to pick up, especially if you know ActionScript or JavaScript. It’s also really easy to show off in your portfolio, as most budget web hosts support it.
Now that you know the factors to consider, write out a short list of your top languages. Cross of the ones that you don’t have access to. Next, decide what’s more important - moral fortitude (PHP), employability (ASP/.NET), geek street cred (Ruby) or ease (essentially equivalent).
Ultimately, the best answer is simply to choose one language and learn it well. Once you’ve done that, it’s nearly trivial to pick up another language.