

Ask HN: Best Web Language to Learn - pjw1187

Hi everyone, I'm trying to figure out the best web language to learn. My programming roots in Java, but I also know PHP, Objective C, and have dabbled in about everything else(.Net, Ruby, Python, etc.). I have about a month break coming up and have decided to learn a new language. I want something fast and quick to develop in. I've been looking at learning DJango framework or Cappuchino, but I'm not sure where to go. Any suggestions? Thanks!
======
qhoxie
This has been discussed fairly exhaustively, but here is a quick summary:

You cannot really go wrong with python or ruby. Both have a number of solid
frameworks for you to try (rails, django, pylons, sinatra, etc). Try a number
of them and build some trivial app in a few of them.

I also recommend getting familiar with javascript and a library like jquery or
mootools, if you plan do dive deeper in the web dev.

------
chrischen
Seeing as how you already know PHP, I would say Javascript is the next big
thing, especially if you're into cool looking web apps. It's also something
you'd need no matter what your server side is.

~~~
mvalente
Seeing as how you already know Java, I would say Javascript is the next big
thing, especially because it's also something that you can use server side.

<http://commonjs.org/> <http://nodejs.org/>

\-- MV

~~~
chrischen
There's also jaxer.org

------
Ixiaus
Within your constraints, I would vote for Python too. It is an excellent
general purpose programming/scripting language with libraries for every
imaginable task, object-oriented programming patterns, and some basic
functional programming features.

The separation of application code from web server is also a nice feature of
Python based web applications. PHP is really easy to hit the road running but
larger applications get clunkier and clunkier because there is little proper
separation.

------
JoelPM
It sounds more like you want to learn a web framework than a new language.
Picking a framework depends on what your goals are - do you want to develop
REST based services, write rich-internet-applications, or do more traditional
web-apps?

Cappuccino looks interesting for developing RIAs (or whatever the current
buzz-word for these things is) but I wouldn't use it if you're just looking to
develop the next best blog engine. Same for Google Web Toolkit (GWT).

Django, Rails, and the like seem to be a good fit for a wide variety of things
- blog engines to photo albums and on.

Now, if you really do want to learn a new language, try taking a look at
Erlang. My background is similar to yours and I started looking at Erlang
recently and have really enjoyed it. Combine that with the Nitrogen web-
framework and you've got a really powerful and fun combo. Now, you won't be
able to deploy it on your shared host, most likely, but it's not difficult to
set it up on a cheap server in the Rackspace Cloud (or elsewhere).

~~~
charlesmarshall
I would also say that if you're doing something really simple looking at
github pages (html with jekyll & liquid) <http://pages.github.com/>

------
catch404
I've you're not sure, IMO, install Django and follow their tutorial. Pythons a
great language, Djangos a great framework, projects can be hosted for free on
Google app engine and the Django documentation is excellent.

~~~
yesimahuman
I agree. I think python is easier to master in a shorter period of time, and
you can definitely do some damage with it. Rubyists love Ruby but I've never
really seen the light.

~~~
jamesbritt
Interesting. I had a much easier time picking up Ruby than python.

~~~
yesimahuman
I think my issue with it is notation I'm not used to, especially concerning
notation like :name and |obj|. I'm sure I could understand it if given time,
but I chose one over the other. What I'm trying to say is this guy might find
python easier, but it's interesting that you found Ruby easier. I guess
everyone is different.

------
dkberktas
since your background is with Java, I suggest you to look Grails which has
similiar features with Ruby on Rails and Django.

