views:

178

answers:

10

Hello guys,

i am just finished college and worked with the java language for the past few years. i want to change,

what do you guys think is the most usefull web development language to use? what would you guys recommend for me to learn

rite so guys u have all explained a different language,

lets say i would like to create a file sharing web service, if i was to develop in one language for the client side, how could i use a different language server side? how could i get them to interact?

+1  A: 

PHP without a doubt. PHP is designed from the ground up to generate HTML. It integrates very with databseses (hence the classic LAMP), plus it is server side so the user can't turn it off, edit it, etc.

A good, structured, OO language, you should have no problems leaning it quickly.

And, of course, it is very widely used, so there will be no problems finding IDEs (I recommend Netbeans, but you can also try Eclipse), or finding online courses or books or support (this site alone has 43,803 questions tagged PHP).

LeonixSolutions
You've just described any number of possible languages.
Ken Redler
"A good" - well that rules out PHP...
Yann Ramin
-1?? Just described any number of languages? Agreed, expect for one very important point - PHP == PHP Hypertext Preprocessor. Hypertext as in HTML (and HTTP). Rasmus Lerdorf designed it "for web development to produce dynamic web pages". Sure, I have used other languages for web page development - just to try them out, but that one is the clincher. And sure the ubiquity of Lamp must say something? I don't hear much about PAMP (with Perl), RAMP (with Ruby, etc)? Sure there are alternatives, but I think I made a good case for PHP (and certainly not one deserving of a downvote (ymmv))
LeonixSolutions
+1  A: 

If by "web development language" you mean a programming language designed for interactive website development, I would definitely recommend PHP. PHP is very widely used in the web development industry, and, from what I've seen of it, is a very powerful language.

See http://en.wikipedia.org/wiki/PHP for more information, or check out www.php.net.

Thomas Larsen
What is a powerful language?
Pascal Thivent
@Pascal: That depends on what you are trying to accomplish. For the purpose of web development, I would humbly posit that a "powerful language" has good string-handling capabilities and a reputation for security - and, arguably, PHP has both of these things. Of course, there are other languages that are definitely worthy of consideration, but PHP (along with Perl, perhaps) *seems* to be the industry standard from what I've seen.
Thomas Larsen
+1 Thomas, to counter that downvote (someone really has it in for PHP ;-)
LeonixSolutions
+1  A: 

Don't limit yourself to one specific language. PHP is probably the most popular. But there are plenty of other languages you can choose from. To name a few: ASP.NET, Python, Ruby.

The following is a good article by Joel Spolsky where he talks about language wars.

At the end of the day. The questions you should be asking yourself is:

What language is best suited for the task at hand?

Russell Dias
Why the downvote? Care to explain please?
Russell Dias
+3  A: 

Javascript - You need to work on the client side. I suggest the book Javascript The Good Parts. Javascript is also an interesting language due to its prototypical nature. If you want to do Javascript on the server side, look at node.js, which is interesting due to code reuse possibilities.

Python - Multi-faceted language with great web toolkits. Not as expressive as other languages (doesn't match the DSL capability of Ruby), but clean and expandable. Look at Pylons, Django, CherryPy.

Perl - Perl web applications work great, even if the language isn't "cool". Mason, Template Toolkit are contenders.

Ruby - Rails is a great RAD framework. There are questionable practices galore (monkey patching), but they don't ruin the platform from a usability point of view (maintainability on the other hand...). If you don't want rails, there are minimal Ruby web frameworks as well.

PHP - Tragedy of the commons. It works, its installed everywhere, but the language and runtime is terrible.

Factor - Be non traditional, use concatenative languages!

Smalltalk - Seaside is fun to use.

Common LISP - UnCommonWeb is a great continuation style web framework.

Erlang - This language is fantastic for its integral hot reloading and high availability features. You can also use the built in database (Mnesia) or CouchDB.

Scala/Groovy/Clojure - More JVM languages to try, to stay true to the Java platform. The most interesting language in that grouping is Clojure.

C/C++ - Why not, it works, and can be fast.

Bourne Shell - Perl with less features.

C#/VB.Net/Other CLR language - An easy jump from Java in terms of model. Good RAD support in in ASP.NET MVC. Using all of ASP.NET restricts you to Windows only (Mono is good, but not 100%). Drinking vendor kool-aid is always fun.

ColdFusion - When just Java and all of the inherent flexibility is not enough, throw in some bizarre database table to website middleware. It works just as well as the ColdFusion reactor on my desk.

Yann Ramin
I'd probably leave out perl. It isn't used nearly as much as it used to and I know very few startups and companies using it for the first time these days.
Nick Gerakines
Nice answer - might also be worth mentioning mobile platforms ( Objective-C for Apple and Java for Android )
meder
terrible? fyi you missed scala, erlang and a ton of other languages that can be used for web applications...
Tobias
PHP *is* terrible. I don't think he was listing all possible languages but the most popular ones that one can find a job for.
meder
@Nick: Perl is no longer cool, but there are some impressive code bases out there which keep on going. While its less likely to find a new website running on Perl (Perl is old, therefore not cool), the language is amazingly flexible and worth understanding.
Yann Ramin
Since you're on the roll... why not a small blurb about ColdFusion, ASP.NET and C# as well? :)
Gert G
@Gert: ColdFusion is now in :)
Yann Ramin
Trashing ASP.NET when it is probably the easiest platform for him to move into from Java, and is used by a large number of companies? Just 'cause you don't like Microsoft doesn't mean you should ignore what provides jobs.
JasCav
@Jason: I wouldn't call my version trashing ASP.NET.
Yann Ramin
I would have to say that this strikes me as entirely too lenient wrt performance. Ruby and Python are absolute dogs when it comes to scaling. The JVM languages have a bit of an advantage due to all the very nice and expensive engineering put into making it relatively performant. That many of them invite functional programming gives them an even greater advantage from a scaling pov.
unomi
"You need to work on the client side"???? SeriouslY?? Apart form offloading processing, can you justify that? I personally *always* surf with JS off - and I am not alone. I strongly recommend a server side solution.
LeonixSolutions
@Leonix: Welcome to the minority then. The web is becoming more an more unusable without scripting, especially as more applications move to a single page interface model (Gmail, etc)
Yann Ramin
A: 

I think it really depends on what you want to do career wise.

If you want to go the services route, I'd suggest looking into c/c++ or python. To this day, the real heavy lifting web services or web service components are written in languages like c and c++. There are some great guides on writing apache modules, nginx components and lighttly extensions that can ease you into the field.

On the other hand, being able to quickly prototype a user interface for a webservice is really handle and is great for sprint demos and show and tells. Becoming familiar with Javascript, CSS and HTML is really useful and may lead you into a world you never really knew.

Nick Gerakines
A: 

Most useful language? All web development languages pretty much can do the same as another other one in terms of functionality.

But here is my opinion. PHP-it's the most popular web development language, has LOTS of resources, very easy to start, easy to learn. However, there's a lot of bad practice that goes with PHP, hence why some people stay away from PHP(but in reality, it's a programmers fault not the language for bad practice).

Python/Django-is a popular framework that's in python. Not as popular as PHP but gets the same thing done.

If you are just starting out, I suggest looking over PHP, django, Rails on Ruby and do some projects with them. Then decide which one you like the best.

All languages gets the same thing done, so not one language is better than the other.

ggfan
A: 

I'll answer the "what language should I learn" part, the first part is a huge depends.

Do the following:

  1. Find web sites or web companies that you would like to work for.
  2. Find out what technologies they are using.
  3. Learn the common denominator.

If all the web sites you'd like to work for are using Python and jQuery, learn that. If they are all using a J2EE framework, learn that. If they are are Rails shops, learn that.

Rob Osborne
A: 

JavaScript ofcourse :)

Not only does that let you do the frontend magic, but you can also leverage serverside javascript such as Node.js and/or CouchDB to build yourself a full stack that uses only 1 language.

It is certainly true that you should always look to the problem at hand for cues as to what is the best language to tackle it.

Nonetheless, for a person in your situation seeking to learn a 'web development language' javascript is pretty much a must-have.

If you are dead keen on having a separate backend language:
I wouldn't worry too much about Ruby, PHP, Python; Ruby and Python are nice languages, especially Ruby - but they are generally understood to be too slow/expensive.
If you want to learn something for the future, go with Haskell, Erlang, Scala, Clojure or even LISP.

@LeonixSolutions:
There are very few 'modern' websites which do not employ javascript, some may - to varying degree, allow functionality for those that have javascript off. Increasingly though we see that only landing pages are fully functional without JS - mainly as they have none.

Regardless, JavaScript is a perfectly fine choice for a server side language. In fact - it has considerable benefits over other serverside languages precisely because of the desire to offer functionality to the JS challenged users. See fx http://www.yuiblog.com/blog/2010/04/09/node-js-yui-3-dom-manipulation-oh-my/
and the example http://github.com/davglass/nodejs-yui3/blob/master/examples/tnt-calendar-serve.js which renders a JS RIA widget serverside and serves plain html + GET requests for interactions.

unomi
+1 For node.js - the concept of single language web development is a major plus.
Yann Ramin
I *always* surf with JS off. And so do a lot of others. I strongly recommend something server side.
LeonixSolutions
@LeonixSolutions, if you downvoted on the basis of your misunderstanding regarding javascript as a 'browser only' language, then I do hope you will reconsider.
unomi
A: 

PHP is a very effective rapid development language. "agile" is the keyword here. most startups or pages start with php because its easy to lear, to adapt and highly flexible. when an app grows to big websites mostly switch to more compact solutions, less flexible with a more determined goal. this is mostly python, erlang or scala. (see twitter and many others). same applies to databases. mostly people start off with mysql but switch to a database solution closer to the usage. (mongodb, postgresql, etc.)

so for a start ruby or php is the way to go.

Tobias
A: 

None of the answers yet talk about .NET, so I'll give it a vote. .NET is an extremely broad and deep framework, combined with a common runtime that supports many languages, including C#, VB.NET, F# (functional language), as well as dynamic languages including Ruby and Python. It also inclues a very powerful IDE, Visual Studio.

ASP.NET is the web markup language. You have a choice between two paths, either a form and control approach based on ASP.NET controls, or a non-form approach based on the MVC pattern and making heavy use of JQuery. Either of these will use one of the .NET languages for coding.

Knowledge of .NET gives you very broad scope, for web development, services, server-side development, windows desktop applications, and highly interactive graphical applications using either WPF (desktop apps) or Silverlight (web apps). C# gives you a high-performance managed code environment, strongly typed, that runs on servers as well as client-side web apps based on Silverlight. C# will look and feel very familiar, since it has the same roots as Java, but it has also expanded significantly with its generics implementation and with LINQ, a SQL-like query language that is built-in to .NET, C#, and VB.NET.

There are free tools available to get you started. Look for the Visual Studio Express tools, as well as SQL Server Express for your database. There is also the Mono environment for developing and running in Linux.

Cylon Cat
Two downvotes. Anyone want to speak up and say why?
Cylon Cat