question on web development lanaguages [closed]
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?
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.
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?
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.
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).
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.
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.
I'll answer the "what language should I learn" part, the first part is a huge depends.
Do the following:
- Find web sites or web companies that you would like to work for.
- Find out what technologies they are using.
- 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.
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.
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.
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.
精彩评论