

Which web language to pick up for a new developer? - signinsignout

Looking into the future, which platform do you predict will have the most vibrant community AND/OR the longevity that can provide comfort for a budding web developer?&#60;p&#62;1. Ruby on Rails
2. JSP
3. Javascript
4. Misc.
======
adam-_-
With all this talk of dynamic scripting languages, I just wanted to mention
Perl.

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.

~~~
kgtm
Great post, upvoted. I enjoy programming Perl for the web more than anything
really, and I think there has been great progress in terms of available
modern, efficient and easy to learn web development frameworks.

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).

------
gry
From by biased perspective scripting languages are leaders for web
development.

* 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. :)

~~~
signinsignout
For a newbie to web programming, it seems like Ruby has the spotlight on
it.....

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.

------
conductr
In terms of ease of learning for someone with no programming skills, I say
PHP, Ruby, or even Python. The community for each is large and not going
anywhere.

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.

------
lien
A year ago I started learning web development and found that you have to start
with a framework. I used CodeIgniter (PHP) as the code is pretty clean. It's
been around for a long time so there are a lot of communities where you can
ask questions. There are also a lot of books based on it.

some popular php frameworks include Zend, CakePHP, CodeIgniter.

I looked at all 3 and tested it out. I went for CodeIgniter.

------
revorad
If you're looking to double down on one specific idea, just pick any popular
platform and run with it.

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.

------
michaelpinto
My understanding is as follows:

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.

~~~
signinsignout
A quick follow up:

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.

~~~
michaelpinto
Question: Are you doing the programming (and thus doing the task of learn
programming) or will the work be given to someone else?

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.

------
lien
ugh...Java...i took Java in college and found it to be a horrible language.
loads so slow and not the best web dev language around.

~~~
boyter
Try the Java play framework and you may change your opinion on that. You still
suffer the inital jvm start time (once) but everything else is comparable to
any ruby, python or php framework with static typing.

------
TMK
Javascript + JQuery and for server scripting PHP

~~~
signinsignout
What would you say the pros/cons are of Javascript + JQuery vs. let's say Ruby
on Rails or Grails?

I understand JS is here to stay a long time, but for rapid development, ROR
seems progressive. Correct me if I am wrong.

~~~
ericmsimons
jQuery is Javascript; both of which run client side in the browser. Recently,
a language called node.js has taken javascript to the backend as well (minus
jQuery).

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!

~~~
signinsignout
Thanks a bunch!

------
friendstock
ruby on rails (on heroku)

~~~
gry
Why this as opposed to:

    
    
      * Clojure on Heroku
      * Java on Heroku
      * node.js on Heroku
    

They aren't doubling down on Ruby, let alone Rails.

\--

<http://blog.heroku.com/archives/2011/8/25/java/>

~~~
friendstock
That's a good point. I think it might have to do with their ownership by
Salesforce.

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.

