Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

From what I'm told, the whole StackOverflow/StackExchange 'stack' is based on Microsoft's ASP.NET. SO and the SE sites are probably the most complex that I visit on a regular basis. There's a lot going on in every page - lots of different boxes, pulling data from different places and changing dynamically and responding to user interaction. And the sites work very smoothly, despite the high traffic.

My question is, could this have been achieved using a different platform/framework? Does ASP.NET lend itself to more complex projects where other web frameworks would strain and falter? Or is the choice pretty incidental?

share|improve this question

closed as primarily opinion-based by Jim G., MichaelT, GlenH7, Bart van Ingen Schenau, Thomas Owens May 4 at 13:16

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

    
Checking other stackoverflow clones. The site is simple, there is nothing strange that any web framework won't do. –  graffic Aug 24 '11 at 11:30

6 Answers 6

It could have been done in a variety of languages and frameworks. As I recall SO and its sites are done in MVC not just vanilla ASP.Net. I'm sure it's as much an extension of the collective developers' combined expertise as much as it is a technology choice. If you really got down to it, this site could have been done using raw html, javascript and lisp as an isapi library. It all would depend on what the developers' skills and knowledge were and how much time they had to build the components.

I would say that MVC lends itself to rapid development of complex sites on a large scale, but I wouldn't qualify that as saying it's any better than comparable frameworks for competing languages.

share|improve this answer

The choice is more about developer productivity and familiarity. There is nothing inherently "better" about ASP.NET and the MVC variant. There is nothing inherently worse either. Having used ASP.NET MVC, Ruby on Rails, and multiple Java web frameworks, there are several things that you can do to improve the deployed behavior of an app. There are also several things you can do to really tank performance and scalability.

I will go out on a limb and say that MVC allows the developers to create lighter HTML due to the lack of model state (which is required for WebForms). That lends itself to a more performant client experience, and one that is more easily made accessible to a wider range of users. That precision comes at the cost of drag and drop convenience, but you more than make up for it using partials and organizing the code a little differently.

share|improve this answer

People can argue pro/con Asp.Net or any other language/framework.

In reality it doesn't really matter that much.

There will of course be arguments for specific languages in some scenarios of course.

Websites (or any kind of software) can be badly written no matter what language is used.

share|improve this answer

The reason SO was done in ASP.NET is that Jeff and Joel are familiar with that. The only language superiority principle here is that you'll work faster and probably better with a language you already know. The exception is when what you already know isn't really adequate, and ASP.NET is definitely adequate for such a site.

share|improve this answer

Various people have written (attempts at) clones of stackexchange, using things like PHP, Python, Ruby, and C#. I'm not sure any of them qualifies as truly a clone (I'm pretty sure anybody using any of the sites would quickly notice at least a few differences from a "true" stackexchange site). I believe, however, that most of the differences are probably at least partly intentional. In some cases the author(s) may think they have better ideas, and in others they have probably just decided to do something that's easier and (in their opinion) "close enough."

Bottom line: from a technical viewpoint, I'm reasonably certain the same could be done using any of those, and almost certainly others besides. It's undoubtedly open to more argument whether doing so is particularly practical, but I see little room for argument about whether it's possible.

share|improve this answer

The technology is incidental, the people are necessary. Give a great team any moderately capable tool and they'll produce a great product. Give a mediocre team the best tools money can buy and they'll product a mediocre product.

share|improve this answer

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