Hacker News new | past | comments | ask | show | jobs | submit login
New to Web Applications, which language should I start with?
3 points by mhidalgo on June 20, 2007 | hide | past | favorite | 11 comments



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.


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


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.


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.


PDP11 assembler running on an emulator


What do you know already?


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


Rails or Flex


Java :-)


PHP


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: