
New to Web Applications, which language should I start with? - mhidalgo

======
SwellJoe
Good lord. What a way to start a silly thread.

Pick an Open Source application you find useful and would enjoy enhancing, and
learn whatever language it is written in. If you're new to the field (you
haven't mentioned whether you're a proficient developer in other areas, or if
you really mean "new to development"). In either case, you don't have to
knowledge at this point to determine the "best" language for your goals, so
start with the one that will be the most fun and productive for you today.
That means starting with an existing application.

In the end, they're all pretty similar, and the skills you learn with PHP, or
Perl, or Python, or Ruby, or Java will serve you well when you begin to learn
how you think about development problems and find the language that suits that
way of thinking.

------
willarson
At some point, no matter what else you do, you'll end up needing either flash
or javascript: Flash/AJAX are the only current solutions for creating highly
interactive websites. Javascript is a relatively friendly language, so I would
start with it.

You will also need another language for dealing with the backend of the
website, I personally would avoid PHP, I don't enjoy writing in it compared to
other existing choices. That said, it is almost certainly the most widely used
technology (calling it the Java of the web wouldn't be an entirely unfounded
comparison). Personally I have really loved the Django framework, which is
done in Python. I am fairly biased though, so take that with a grain of salt.

The real advice I'd give about the backend language/framework you start using
is to use the one you'll enjoy using the most. Later on you'll end up learning
a number of other frameworks anyway, so you might as well chose the one you
want to work in, especially because you'll be spending a lot of time teething
on it. After you learn one, picking up others will be much easier (most web
frameworks use the same model-view-controller design).

------
Zak
Javascript.

Beyond that, what language(s) you should learn depend on what you already
know, what sort of application you're planning to write, what sort of
deployment options you need and what sort of tools you want to use in
developing your app.

The last point is one of the most important; the framework you use for your
web app matters more than the language. Personally, I like Common Lisp with
TBNL, CL-WHO and CLSQL - the combination originally used to develop reddit.

------
Psyonic
I think it really depends on your goals. If you are planning on working for
someone else, I would say go with either PHP, Ruby, or Python. Those seem to
have the most opportunities. If you plan on creating your own app, then
perhaps it would be wise to look into the less common but perhaps more
powerful languages like Smalltalk (for Seaside) or Common Lisp.

------
henning
PDP11 assembler running on an emulator

------
davidw
What do you know already?

------
brlewis
HTML first. Then some SQL. Then some JavaScript. Then BRL (never PHP if you
have a choice). Then more SQL. Then more JavaScript.

------
dawie
Rails or Flex

------
Tichy
Java :-)

------
ivan
PHP

~~~
paulgb
Since you said "web applications", and not just web in general, I will assume
you know some HTML.

Although I am not a huge fan of PHP, I think it is probably the best language
to begin with for a few reasons:

\- Tonnes of resources for learning - the language is not difficult to start
with, and there are plenty of tutorials and books aimed at beginners.

\- For a web language, it is pretty much as powerful as you need it to be.

\- It is probably the most common web-based programming language.

\- You can find a server to host your site for very cheap, and download the
software to set up your own development server for free.

\- PHP is taken seriously as a language, and powers some of the largest sites
on the internet (Digg, Facebook, Wikipedia)

The downsides are that it does not encourage good coding practices and it is
easy to write an insecure script, but this is true in any language or
framework until you know what you are doing.

