Background: I'm an experienced Java developer, know basic Javascript, HTML, and CSS (and find it easy to figure out how to do something), and have a little experience in Python. I've seen Ruby before and edited a few lines of existing scripts.

I'm curious not so much about any given technology, but mainly about what my thought process should be when deciding which technologies to use. Let's take a simple application - maybe an online address book where I can enter contact information, and create groups of contacts. How should I go about evaluating the options that are out there?

The number of frameworks out there is daunting to say the least. This should be a learning experience for me, but also I want the knowledge that I gain to be relevant, and I'm afraid of using something that I'll never use again.

closed as off topic by Robert Harvey, Jarrod Roberson, maple_shaft May 21 '12 at 22:34

Questions on Software Engineering Stack Exchange are expected to relate to software engineering within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 2
    Please check the FAQ - particularly what it has to say about "which language?" questions. – ChrisF May 21 '12 at 15:23
  • 4
    I realize that - I agree that it's questionable about whether this is an appropriate questions, but I'm not interested in particular recommendations. Rather, how to decide what to use. I'd categorize this as more of a "development methodology" question which seems to be allowed. – Jer May 21 '12 at 15:42
  • OK - but if it starts getting a lot of "use X" answers it's going to get closed. – ChrisF May 21 '12 at 15:43
  • i've decided to use RoR at work, for a minor project. And it was amazing, i learned a lot. But if you feel confortable with Java, go on! Many say it is unproductive, but no one beats JVM! And you have Grails at your disposal. – Nëi May 21 '12 at 17:36
  • 1
    I'd go with a mix of 'use what you know best' and 'use what will get you a prototype quickly'. Since you're a Java programmer, go with a Java framework you know well, or the most popular one if you've not done web stuff before. Whilst there are differences between various frameworks/languages, I see people get hung up on it too much, and their project has stalled as a result. – halfer May 21 '12 at 18:17
  1. What are you and your developer team already familiar with? Are you comfortable using it?
  2. How mature is the technology? Is it a widely recognized and used technology, or is it at the fringes?
  3. How productive are you in the technology? Does it take days to implement the simplest of things?
  4. Does the technology meet your customer requirements?

If this is just a personal project, the decision will most likely hinge on whether or not you want to learn something new.

Not the answer you're looking for? Browse other questions tagged or ask your own question.