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.

Which technology / architecture would you recommend for a startup planning to write a social web app?

I see the following candidates, and would like your opinion, as I do think this is the right place to ask

  1. Google App Engine + GWT (free but no RDBMS yet)
  2. Jruby, Grails, ROR or other rapid convention over configuration frameworks
  3. PHP (what is good for Facebook is good for me?) + MYSQL
  4. Plain old Java (Spring/Seam + Hibernate / other JPA) + Jquery / Struts2
  5. ASP.NET MVC with its rapid turnaround and large 3rd party component market

My current choice is #1, but I was wondering if there is a community consensus on some of the items.

For client side I plan using when possible JQuery / Sancha(ExtJS) Any recommendation on other client frameworks? should I even consider Flex? Silverlight?

Although this is not directly a programming question, I urge you to comment if you think this question should be revised, or moved to another location, or was answered recently.

share|improve this question
1  
Some requirements could help. Any that you list could be used to build a 'social web app'. Now, a social web app with specific requirements could limit what you could use. –  Steve Evers Nov 14 '10 at 19:25
2  
Replace 'ASP.NET' with 'ASP.NET MVC' in 5. –  Jakub Konecki Nov 14 '10 at 20:14
    
@Jakub Konecki If he does that he doesn't have such a big 3rd party component market. –  Jeremy Nov 14 '10 at 20:23
3  
Not sure this question is very useful. Do you just want people to vote on their favorite language? –  Jeremy Nov 14 '10 at 20:26
    
@Jeremy - that's true - but can you name one social web app that uses 3rd party controls extensively? IMHO most of them grow their own suites of controls that match their particular needs –  Jakub Konecki Nov 15 '10 at 20:43
show 2 more comments

3 Answers

up vote 10 down vote accepted

Use the one that you have experience with.

There's no point IMHO to waste time learning new set of technologies if you're already comfortable with one.

share|improve this answer
1  
Why the downvote? This is good advice. That's not to say you should never learn new technologies, just when your goal is to actually complete the project in a reasonable time-frame, it makes sense to go with what you know. –  Dean Harding Nov 14 '10 at 22:30
    
@Deah Harding - Agree (within reasonable limits, of course). +1 to counter the downvote. –  Rook Nov 14 '10 at 23:27
    
Probably why facebook choose PHP. –  JeffO Nov 15 '10 at 3:16
    
So what if the only language you know is x86 Assembler? I think everyone would agree that is no good. How about C? C++? As we move higher up the power curve we'll eventually find an answer everyone accepts but the first answer that is acceptable will vary. Some may think C++ is good enough, some C#, some would demand a dynamic language. –  Jeremy Nov 15 '10 at 22:25
1  
@Ehrann - If that's what you're comfortable with - go for it. I'm using ASP.NET MVC + Func + Entity Framework - do you really want to learn it from scratch just to create an app that will do exactly the same as the one you can write using GWT? ;-) –  Jakub Konecki Nov 16 '10 at 22:01
show 1 more comment

Any environnement where you would feel highly productive, let's say if you only know plain Java and don't master any framework that could boost you productivity, it might worth be looking at other alternatives, these days Ruby On Rails seems to be one of the the darling of SAAS apps ...

Apparently it's very easy to deploy often there (and that would be one of your requirement as a new startup),since you will be shipping code super often ...

So basically even if you're productive in one given environnement for coding, and your tool set do not allow you to deploy you your code & database structure in a few minutes, it might be wise considering another option

share|improve this answer
add comment

You could also look at Planet Framework: http://www.planetframework.com/

The way I see it, it's basically a Django-inspired framework with elaborate real-time features, a clear support for scaling and developer-friendly tools.

However, the downsides are that it's closed-source, the developer community is small, and there are no active public discussion/answers/help forums or similar.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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