views:

2317

answers:

8

I have to build a new webapp. My simple question is:

How can I choose my programming language according to my needs?

Someone can help me building a Programming Language Comparison?

+4  A: 

A large factor is: what language do you already know?!

These links might prove useful:

http://en.wikipedia.org/wiki/Comparison_of_programming_languages

http://www.jvoegele.com/software/langcomp.html

Mitch Wheat
A: 

well this question is kinda hard to answer, because it's pretty general. first of all you should factor in what you already know, then there's the question of what hardware you have. if you only have a shared server you should think about using php, because it's offered at pretty low prices. in the end if you know your technology well you can do anything with any language.

fly.floh
A: 

Try this list:

  1. Is there someone around who you can ask? Take his/her language.
  2. Can you use a framework/library to make your life easier?
  3. Try to solve a simple problem in several languages. Was it easy? Hard?
  4. Does the company have some rules? If you use the "official way", you can ask for support.
Aaron Digulla
+5  A: 

Before getting into religious wars over pointers vs. no pointers, integers as first class objects etc. there are a number of non-technical criteria which should be considered.

-- What do your language skill do your current developers already posses.

-- What skills are readily available in your local marketplace.

-- If you hardware platform has already been decided then what langages are well supported on that platform, or, conversely will a language choice restrict your hardware options.

-- If you database has already been decided then what langages are well supported for that database, or, conversely will a language choice restrict your database options.

-- Is there a "standard language" used in your problem domain (e.g. nearly all geoligy is done with fortran); not choosing the domain standard will restrict your choice of languages, packages and experienced programers.

-- If you plan to interface closley with another application than there are advantages to using the same language. e.g. if you are writing a front end to a C++ back end than writing the front end in C++ will allow you to use the back end's structures and untility classes.

-- Evaluate the projects requirement's for speed of development, runtime efficienty, reliability and flexibility. Realisticaly you can deliver two out of the four.

Programming languages are just one aspect of a development environment, the goal should be to build a cohesive development environment that best fits your needs.

James Anderson
+2  A: 

Based on my experiences:

C++ : Only if you need the very best performance (games/simulation) or have a fetish for handling your own memory allocation.

C# and .NET : If you easily need to make some windows only application.

java for cross platform delight and good performance and huge standard libraries.

Python for cross platform delight and fast development.

Edit: And of course, the language you and your teammates know the best.

Nailer
memory management is *not* the problem with C++. It's pretty rare that I write a "delete" these days. Smart pointers make the issue almost moot - but you still have the control when you really need it.The problem with C++ is too much complexity where it's not needed - largely due to backwards compatibility issues.
Phil Nash
A: 

You'll most likely find that you can (with a great certainty) create the web application, which you want to build, using a number of available languages. And choice of language will always/often be subjective.

Are you starting completely from scratch? If so, you might want to consider a language with a low learning curve.

If there was a best way to perform software development, I'm quite sure that the vast majority would adhere to that.

Perhaps you could elaborate a bit more on what kind of application you're talkning about (tagwall, guest book or fully fledged alternative to slashDot?) along with your budget, experience and ressources.

Chrysaor
A: 

In the following scenario, which language would you consider

  • Small web app with interaction to a db
  • User profile management
  • Integration or portability to multiple platforms (social networks, mobile...)
  • Start/learn from scratch

I have a few ideas for apps which I'd like to develop but seem a bit lost in a sea of languages, frameworks and social networks to integrate with...

I know this is a hard one and I do value people's opinion even if they differ greatly so do not be worried about being buyist.

My background is a strong java j2ee and I am quite open about learning new technologies. I really buy into the write once run anywhere idea even though it might be idealistic at times.

Lets take the example of a small utility app to keep track of people's birthday. Knowing there is not one perfect language/framework to write this, which in your opinion would have the best time to market, learning curve and integration with social networks for higher exposure.

emt
If you want to ask a question then create a new question. Don't dig out a similar question and tack it onto that.
Dave Kirby
A: 

Opinion: always use C++, armed with boost libraries of course. Interop is very hard to maintain, and at some point you always need parts of your system done in C++.

Pavel Radzivilovsky