views:

136

answers:

5

I'm looking at starting a project with a team of really smart people with backgrounds in various assorted languages and programming environments. The developers are all comfortable with different environments, and the only constraint is that it's "web-based."

In this situation, how would you decide what technology to base your project on? All of us have our own favorite systems, but how can you quantify what the best way to proceed is?

StackOverflow is built on ASP.NET because, as Jeff put it in podcast #3:

So it's sort of like 1.5 developers, so I need to actually get things done. In order to do that, I'm gonna fall back on what I know, and what I know is essentially ASP.NET.

Again, I'm not looking for nominations for your favorite platform, but more interestingly, how did you arrive there, if there were multiple obvious options?

A: 

This is a very broad question. It really depends what your developers feels comfortable with. ASP.NET is currently the most used web platform available out there. You will find more resources of ASP.NET than any other technology. Also, the suite of rich controls helps to develop the applications much faster.

Also, if you want much richer controls and interface you can always turn to companies like Telerik etc. If you plan to off shore the development than you will also find more ASP.NET developers than Ruby on Rails developers.

azamsharp
+1  A: 

I guess it comes down to where the strengths are in your team. If you have gurus in language X and the others could easily move to language X then that might be the way to go.

The other consideration(s) are things like:

  • Where/how will the site be hosted?
  • Does it need to run cross platform?
  • Database backend?
  • Developers development platform of choice
  • Does it need to scale, would language X scale well?

I think by the time your team answers the questions above, the environment will pick itself.

KiwiBastard
A: 

Frameworks are a great tool, IMO.

First off, they make stuff super-easy, and allow you to focus on the important part, actually programming the logic (rather then doing all the repetitive junk).

Second off, it allows the site to be more maintainable, and the code more readable, so you can fix bugs faster, and add new features rapidly. Also, since there's a lot of code reuse involved when you use a framework, you don't have to do find and replace all the time.

Third, if you use a framework it will improve security, because the framework will have tons of stuff that will prevent you from having SQL injection holes. Django is a good example, because it prevents XSS in it's templating system, SQL injections in the Models system, and even has a contrib addon for preventing CSRF. Now, if there's a vulnerability in your app's logic, then you'll have a problem, but those are easy to catch (since frameworks make code more readable).

Lastly, if you use a framework, and you decide to change database backends, you can do so easily (depending on which database backnds your framework of choice supports). Many frameworks also offer some sort of caching api, so as your site grows, you can add in extra performance boosts.

Psychcf
A: 

The only real way to determine this is observe some teams in action and take some metrics.

Of course, one thing to keep in mind is that when you are gathering metrics on a programmer or team they may realize this and begin to alter their behavior accordingly. A classic metric is tracking bug activity. One team I worked with made their numbers look great by just grouping similar bugs under one bug. It looked like the frequency of our bugs was diminishing toward the deadline, when the opposite may have been the case.

Anyway, getting back to the question at hand, the key to Jeff's quote, I beleive is the:

In order to do that, I'm gonna fall back on what I know,

So stick with what is known, comfortable, fleshed out. Unless, of course, what is known and comfortable just isn't a tool suitable for the task at hand. Don't try to write that real-time audio capture program in php, for example, just because thats what you know.

Doug T.
A: 

One of the reasons we moved to .NET and then stuck with it was the basic perception from customers. When you tell companies that you're building a business web-app on top of a Microsoft platform they don't ask you to justify your choice.

The other factor that went into the decision was the IDE and the tools that we could buy to make our life easier. There is also the matter of scalability - and I mean in terms of code. Our app was once this nice little code base and now when we put all of our projects together that make up the solution, we probably push up against 800,000+ lines of code. We didn't plan for it, but Visual Studio let us grow.

Finding a platform that let us put code into production quickly and that also allowed us to maintain and grow the code base was the most important factor.

Mike