Tell me more ×
Answers OnStartups is a question and answer site for entrepreneurs looking to start or run a new business. It's 100% free, no registration required.

I am looking for recommendatins from the successfull entreprenurs on this forum to advise me on the best software technology platform to develop my web2 webapp on.

The web2 app will potentially be high transaction site

The contenders are:

  • J2EE with Postgress
  • PHP with MySQL
  • Ruby on Rails and MySQL
  • PHP with Amazon AWS and SimpleDB
  • Microsoft .Net platform

Please help me Thanks

share|improve this question
1  
+1. This is a fun one because it demonstrates that even if the answer to the question is "that's not the right question," it's still a great question! :-) – Jason Oct 12 '09 at 3:52
1  
Is there a way to cast a vote for "Belongs on Stack Overflow?" :-) – DThrasher Oct 19 '09 at 1:00
show 7 more comments

33 Answers

1 2

It doesn't matter. There are hugely successful companies built with all the technologies you have listed here. Pick the one you know best and build something great.

share|improve this answer
3  
Amen! No need to have a platform war. It depends on your competence (if applicable), existing infrastructure (if any), and plain old personal preference. – Gabriel Magana Nov 5 '09 at 21:14
show 3 more comments

The more important question is how easy is it for you to find developers under each of those technologies in your area? Each option will scale and do the job, but if you get to the point where you need to hire people to work on it then it's important to plan a bit ahead and not box yourself in.

From a technical point of view, one issue to consider is how you're going to deploy the site. If you're going to have dedicated hardware then any of these will work. But if you're starting with a shoe-string budget, then you'll want to pick a technology where you can find cheap and easy hosting services. Also consider how easy it will be to move to another hosting provider once you outgrow your first one.

The cheapest and easiest will be a simple shared hosting site with PHP and MySQL. Just about every hosting service supports this. You may want to use some sort of pseudo object-oriented framework like CakePHP to help write cleaner code. PHP is really easy to get going with but it's also easy to write unreadable spaghetti code.

There are more specialized sites out there that support Rails (like EngineYard and Heroku). These will probably cost more than vanilla PHP/MySQL hosting services but Rails is a nice platform with a lot of community support and a ton of add-on modules to get things up and running quickly.

As for PHP with Amazon AWS and SimpleDB, these fall under the broad category of slice-based virtual hosting services (like Rackspace). You can set up multiple server slices for your DB, application, and web-server and add more as you go to help you scale. You are given a bare OS to put whatever you want on, so you're not really limited to PHP or MySQL. Also, consider that you can mix and match services, so you can put your video files or static images on S3, but your app on, say, Rackspace, or tech support on AWS but your main app somewhere else.

Personally, I'd stay away from J2EE and .Net (let the flamewars begin :-) mostly because there's more choice with the other technologies when it comes to hosting.

You may also want to take a look at Google AppEngine. It uses Python and their own framework, but it's pretty good for quick-n-dirty web-serice development.

share|improve this answer
1  
+1 For making the point about finding technical talent. You'll want to play to the strengths of your team (or your recruits) as much as possible to reduce your technical risk. – DThrasher Oct 19 '09 at 1:02
1  
-1. Your first sentence was really good, about finding developers. But then you spend ~18 sentences on hosting. That's IMHO the least important differentiator. Decent hosting exists for any programming language; and the convenience of cheap shared PHP hosting won't last because you'll soon need more power than shared hosting offers. If nothing else, you can rent a dedicated server and install OS + webapp framework yourself. – Jesper Mortensen Dec 27 '10 at 23:52

James is right, the framework really doesn't matter. You will probably want to shop around for programmers before you make a decision. The development cost will definitely vary based on which language you choose. For example, vb.net is the most popular language last I checked, so you may get cheaper programmers. However, in my experience you'll find more "amateurish" programmers writing in vb.

My opinion, .net mvc is an excellent platform and very underrated. It's very much like ruby on rails, except you benefit from the maturity and millions of $$s of investment put into the .net framework. The latest version of c# is very terse, and linq makes for an outstanding data layer. Watch Rob Conery's videos on the ecommerce starter kit and by the fourth video you'll see why .net mvc is so awesome.

  1. You don't need a paid version of Visual Studio, you can use the free Visual Web Developer.
  2. .net mvc is open source, although you shouldn't have to touch the source to make it work for you.
  3. the .net framework is very mature and widely used in the enterprise. it's object oriented and visual studio is a great IDE
  4. SQL server express is free and very powerful
  5. Like RoR, you have full control of the html output. Unlike asp.net webforms that vomit viewstate and hidden form controls, mvc is mean and lean
  6. built-in support for jquery

We have created some really great apps with .net mvc and development time has been much faster than with webforms. However, you will find developers on other platforms that could do the same thing, maybe in the same time period or less. So again, it really doesn't matter except when you decide who you want to hire for the job.

I am biased and cannot give you a fair comparison. We have used PHP and Rails apps before, but have done very little coding with them. Also, I would not give you the same level of endorsement for developing .net webforms apps because the end product is just not as elegant.

share|improve this answer
3  
I don't think your VB.NET comment is correct. I believe PHP is probably the most popular "language" right now, and in .NET it's been C# for awhile. – James Avery Oct 12 '09 at 11:58
show 3 more comments

I'd like to think that Developer productity is the only thing that matters- but I've seen what happens to the hosting bill in a Microsoft environment when your scale needs suddenly go from 2 servers (1 db 1 web) to 4 (2 db 2 web). It isn't pretty licensing multiple MSSQL Enterprise servers, so you have to scale up instead of out. You can go a long way with this, but at a certain point it's way cheaper to scale out - unless you're having to pay for licensing on a flock of web servers. Almost any Open source platform is preferable.

This article has an example of what I'm talking about described nicely.

http://www.codinghorror.com/blog/archives/001195.html

share|improve this answer
show 1 more comment

I'm in the same boat so I have to say first of all that this question is great. Secondly, it depends on what type of "startup web 2.0 app" you're doing. There are a ton of great free and commercial solutions out there for Ruby on Rails; for instance if you want a typical subscription-based site, you can buy for $249 a kit that has all of the plumbing taken care of. Nothing like that exists for any other platform that I'm aware of - if you were to go with .NET MVC, for instance, you would have to write all of the subscription and billing code yourself.

In my case, I'm trying to decide between exactly those two platforms (RoR or ASP.NET MVC). Some of the things I've considered are:

  • Which I'm more knowledgeable in, since my startup is bootstrapped and I'll be doing all the programming myself
  • Which is the fastest time to market?
  • Which can scale better/quicker with the least cost to me?
  • Which can be set up for the least cost to have a prototype up and working?
  • What are my options for hosting? Personally I want a "hands off" approach to server configuration since I'm only a half-assed sysadmin and don't want to risk screwing something up by accident.

and finally:

  • If my startup fails, what platform will give me the best experience for the future?

Now in my case, I live in an area that is 94% dominated by .NET programming, with about 3% PHP/MySQL and 3% Java. Virtually nobody here knows or cares about Ruby on Rails. However, as I'm doing my research between ASP.NET MVC and RoR here's what I've discovered:

  • Both platforms are largely similar in their feel. .NET MVC has much less of the "magic" that Rails has (it's more akin to Python's Django framework than Rails, I think) but all of the power, albeit explicit instead of implicit.
  • Rails has more plugins and add-ons available - there are some offerings for .NET MVC (Telerik just released a free set of components, for instance), but the Rails world also moves at lightspeed and the community continually changes what they all do... it's mainly a big game of "follow the leader" where as soon as one prominent Rails developer says "I just found out about X and it's beautiful!" everyone else starts to migrate
  • Both platforms have a lot of hosting options. For the "hands-off" approach I mentioned above, Rails has Heroku and .NET has Windows Azure (although that's still in Beta, I believe?)
  • ASP.NET MVC seems like it's a better option if you think that you'll eventually want to branch off from web development or expand your application, while Rails is firmly entrenched in web development.
  • .NET allows for more software architecture practices than Rails, which tries to keep things "quick and dirty" due to it being "opinionated" software. This is a blessing and a curse IMHO.

I'm still deciding between the two - the biggest problem I have in deciding is the "plumbing" work. With Rails, I can spend $249 (that I don't have at the moment) and get the plumbing code taken care of for me already, but it means that I have to wait until I have that money to buy the kit, and even then it might not be entirely what I need. Also, I repeatedly have issues developing with Rails because I often come to a situation where I know what I want to do, but I'm having trouble fitting it into the constraints of Rails. With .NET MVC I can start the app the way I want it, but all of that yucky plumbing code I need to write myself, instead of focusing on writing my application.

I apologize that this has gotten a bit long-winded, but this question is pretty much one that I was thinking of asking myself :) I hope my findings help you, and I hope that the answers you receive helps me! Good luck!

share|improve this answer
show 2 more comments

Is your idea proven? Or you wanna launch fast then get feedback, iterate fast? Is there any funding constraint?

I am experienced Java Developer & Architect. I am confident enough to design and scale any java website. BUT STILL I am targeting ROR for my startup. Because Ruby community is solid so, you will get enough help (on oDesk or eLance ) + cheap hosting + it will be quick to launch app based on Ruby vs Java.

Java hosting is costlier. Simple example - WebLogic, OracleAS or JBoss will need dedicated server ( @100$/month - not powerful server)

While you can launch your Ruby based app for @10$/month. Once you see traction then you can add more sever etc.

All language/framework are proven to handle high TX but I would like to launch fast to get quick feedback so I can iterate based on user feedback.

share|improve this answer
1  
I don't think it's a fair comparison to quote a price for a dedicated Java app-server vs. a shared Ruby (or PHP, or whatever) host. If you are running a dedicated server (or an EC2 instance) for a Ruby app, it will be similarly priced. – Tony Oct 12 '09 at 17:20
show 1 more comment

I am only a wannabe tech guy, but it was suggested that I go with (and by I, I mean whoever the developers end up being) with the 'stack' with the most incentives to begin with - but, do it properly.

With Sun Startup Essentials and Microsoft Bizspark (only two that come to mind), there are some pretty good inclusions outside of their respective software offerings. These include hosting, advice, support etc..

Now the bit I was told is the 'smart' bit is that, like most things, they all have their own proprietary hooks that may make life easier when developing them initially, but can tie you inexplicably to a certaint techology/provider. Apparently the key to not getting stuck is to avoid these until you are mature (as a product/service manufacturer) to decide where you are going to focus your efforts.

Hey they may be wrong - but it seemed to make sense to me... Maybe thats why I am still a wannabe tech guy!

share|improve this answer

Ruby on Rails

I understand the premise of "it doesn't matter", and there are some good arguments for it... I just don't agree.

I was a .Net developer that started my own startup around 1 year ago. I decided to switch to Ruby on Rails as a complete novice to it (and to linux and all open source really). I couldn't be happy that I switched, and it is one of the best decisions I made. The key reasons are:

  • Development speed is fast with Ruby on Rails, you spend much less time doing plumbing.
  • MVC is a great structure that doesn't get as messy as some others as your software gets larger.
  • Deployment and hosting is amazingly simple with Heroku, scalability too.
  • There is so many good gems out there that take care of big chunks of functionality (authentication, authorisation, file uploads, etc.)
  • Great community support
  • Cheap hosting (this is a big one, Microsoft licensing is expensive, and gets expensive as you scale, open source technologies have a big advantage here)
  • This is a subjective one, but it seems that open source language programmers are more passionate that .Net programmers. I find it easier to find great open source programmers than I do .Net programmers.
  • Easy integration with other tools. There are so many good tools to integrate with in a SaaS app (Chargify for subscription billing, New Relic for server monitoring, etc.). There is very good support for Ruby on Rails with these tools, this can save a lot of time.

I don't agree with use the language you know. Learning a new language can be exciting and be a great way to keep you stimulated. It also really isn't that hard to learn a new language, so don't be scared to try.

share|improve this answer

I think I would be the only one that would say that this matter. Don't let your architecture bite you. I would like to say that RoR is a perfect fit for a startup.

Why?

  1. It's born from a startup. So it has got great startup mindset in it. No joke.
  2. It's mature. It's been out there for 5 years and has been used by many well know startup.
  3. It's full blown. So you only need to worry about what matters most for your apps.

The rest:

  • Java is too expensive. Higher initial investment for hardware, human resources, and too much code to write to do just simple thing. A startup can't afford that.
  • .NET is the same with Java. Too expensive for initial investment.
  • PHP is just a language. But many other PHP frameworks are not as good as RoR.
share|improve this answer

My personal recommendations are Ruby on Rails as it is very easy to iterate and experiment with and Google App Engine (python or Java) which provides a good API and hassle free scalability.

share|improve this answer

Here is my answer based on startup i created gkzone.com and real life experience as techie / coder

J2EE with Postgress   -- too cumbersome and slow for heavy optimisation
PHP with MySQL        -- perfect as its designed for web 2.0 heck 3.0
Ruby on Rails and MySQL   -- similiar to PHP but bit less mature and lacks major features PHP has
PHP with Amazon AWS and SimpleDB -- Amazon AWS too too expensive, stick with simpler solution hosting company+php+mysql+memcache+ if you want noSQL then go for Casandra. 
Microsoft .Net platform  -- avoid at all cost licensing and upfront and maintenance cost is enormously high! - infact MS have started to offer PHP as it has been beating them in market over ASP.net
share|improve this answer

I second the "doesn't matter" point, there are examples of success with all of the technologies. Scalability is in the architecture, not the compiler/interpreter -- if PHP or Ruby runs slightly slower than J2EE, then throw a few more servers into the cluster; AWS makes it trivial.

You should go with the tools that will let you write the best quality of code, with the least effort.

[edit] We've had some amazing productivity with the use of Ruby on Rails (but fumbled with PHP when trying to integrate FOSS projects). Though you could certainly find developers who are passionate about either of the technologies.

share|improve this answer

I second "it doesn't matter" and that if you are going to partner with a co-founder, they might make the decision for you. PHP, Perl and Ruby on Rails are all adequate with MySQL.

share|improve this answer

I have to third the "it doesn't matter" answer. You need to select the one that you know and can develop in. If you are new, then perhaps you need to find some partners to help with the technology. They will have a bias and will want to go a certain direction.

Personally, I am a .Net head and would never choose any open source or Linux related products (just my opinion). Too many issues installing, configuring and maintaining the products.

Rick

share|improve this answer

As a company, we hire for talent and then fit technology into that. For example, we were a PHP and MYSQL only company for over two years.

We met an individual who had a killer interview and came highly recommended from our chairman. Problem was, he was a Ruby on Rails guy.

In the end, our problem was focusing too much on technology. Luckily we realized our mistake and changed our focus to finding talent and working with their preferred technology.

share|improve this answer

I think you would want to choose whatever technology that will get your product out quicker. so I would use RoR or python.

but stay away from J2EE. J2EE is too heavyweight. Takes too long to develop. Its great for consultants because it means more billable hours but not good for nimble startups.

share|improve this answer
show 1 more comment

My current recommendation would be to use django and the google app engine for hosting. Either that or Amazon AWS.

(And to put in context, I'm a Microsoft .Net developer)

Main reason I'd consider Python/Django/Google App engine would be that for starters, it's free. It's massively scalable. And Python/Django look incredible easy to pick up.

But in reality, you should be able to develop on almost any platform. Pick the one you'll be most productive in, and use that. If it gets to a point where you're hitting a limitation of the platform, you should be rolling in green that switching shouldn't be a problem.

That said, a lot will depend what you mean by a high transaction site. Some more information wouldn't hurt.

share|improve this answer

I'm a bit more on the side of picking something does matter. First, it's not just picking a language. You are also probably getting in bed right away with a framework like Django or Rails or Grails or something. And that framework choice could bite you if it's not going to be around for the long haul. With Django/Rails that's not likely going to be the case. But I've seen crazy hyped frameworks in the past die off and leave their developers struggling to port their application to new frameworks.

Take Keel for Java as an example. I built someone's new business around this thing. It was an extremely popular Java framework. Promised a ton of the benefits of something like Rails. But it's gone now. The business owners struggled then to find people to work on it. Even though it was Java and any decent Java developer could work through the thing, the framework definitely added overhead to mastering developing on it.

With our business now, we picked Rails over 4 years ago, and that was a successful pick given it was still pretty immature when we picked it. So be careful with that choice as well.

Also back to the pure language argument, Paul Graham shares a different perspective than the "it doesn't matter, pick what your comfortable with" argument.

share|improve this answer

I'm going to buck the trend here and say that the right choice DOES MATTER. The languages, and more importantly the frameworks, you mention all have significant trade-offs that you should properly consider before making a decision. In particular:

  • Ease of getting product launched and ease of iterating once launched
  • Ability to scale if product really takes off
  • Availability of talented developers
  • Existing codebase (may not apply)

I'm assuming you're bringing in a technical partner to help build your app - he should be able to properly evaluate the alternatives w.r.t. your application. Without knowing anything about it, my general advice is:

  • Give Ruby on Rails a try - language is clean and framework enables rapid development.
  • Avoid Java - too heavy.
  • Avoid .NET - the licensing costs will come back to bite you.
  • Avoid PHP - tends to encourage poorly structured code.
share|improve this answer
show 1 more comment

As a programmer my advice is find a kickass programmer, and let him/her decide.

There are many choices and tradeoffs depending on what you're doing, and each programmer has experience and passion with different technologies, and will be 10x as productive in the environment they prefer.

share|improve this answer
show 2 more comments

This might not be an answer but might be another question on the same context.

Being a Microsoft .NET junkie for most of the day (at work) I've been trying to use some open source alternatives for the side projects, aka PHP/CodeIgniter/jQuery/MySQL. The ultimate reason for going with the open source stack is so I can find some cheap web hosts with less commitments (got hurt with trying an ASP.NET app - didn't take off - paid the rest of the hosting contract $$$$ for nothing).

CodeIgniter was not that hard to pick up but being so used to the .NET platform it's kind of not encouraging much to get things done end-to-end with PHP/CodeIgniter. Always running into one thing or the other issues and spending most of the time trying to figure out how to resolve the issue. Would have been with the .NET stack? Things would have been a lot different. Since I know the platform in-and-out (I'll claim that loosely) I would have deployed the app by now and feel confident about it.

My question to you is, if you are not sure if your idea will take off what platform would you recommend that can leave us with limited $$$ loss in case if the idea doesn't take off?

share|improve this answer

I admit that I have a huge bias in answering something like this, but I would say that you should go with a higher level framework. Something like Drupal. This gives you a lot for free: Content editing, user management, templating engine. One of the most talented developers I know has spent a lot of time at start ups re inventing the wheel to implement these features over and over again.

It means that you can spend time on focusing on focusing on your business plan than building a web site.

Eventually you may find that you outgrow the technology and that it is holding you back, but by that time you should have built your business and can spend time on building out a bespoke architecture.

I would also note that you should be weary of trying to build a super scalable system right from the off. You can get quite a long way by just throwing hardware at the problem. And you can fix bottlenecks when and where you find them. Whatever technology you choose focus on features and usability, some developers love to (try and) build an amazingly archetectured system when given a green field but they should focus on building the business. Your users won’t care so long as things work.

share|improve this answer

This can be done in two steps:

  • Hire programmers with great references and demonstrated skills
  • Use whatever they want to go with

Further elaboration is kind of pointless, in this case :) Sorry for the short answer.

share|improve this answer

It is important to make a distinguish between the programming language, the framework, development methodology and the people in your team.

I would say language is least important. Basically the same end result can be archived in any language be it Ruby, PHP, Java or C#. Trying to ask people to pick will only start a flame war, consider them all equal. They can also all scale, in terms of handling volumes of traffic, equally well.

What is more important than language choice is the gains that can be made from selecting a good framework for any given language. For example a popular framework methodology is MVC (Model View Controller).

Some MVC frameworks include RubyOnRails, CakePHP, Struts (Java), and I believe Microsoft have just released a MVC framework for C#/.NET.

The long term benefits of using an MVC framework which allows for separation of concerns - business logic, querying of data and presentation/User Interface - is essential. Any web developer worth his/her salt will use an MVC (or similar) framework for their respective language. This choice will help prevent your developer and designer stepping on each other toes.

More important than the framework of choice is the development methodology, you will want to look in to Agile methodology. Agile is a banner for a method of developing an application in incremental steps where you release improvements/features on a regular basis based on feedback. You deliver the features which hold the most value to your end users first.

Linked in closely to this are development best practices, is your development team going to be producing documentation, writing tests, using version control, deploying to a staging area?

But most important are the people you choose to hire. It is the people in your team not the technologies that will ultimately help your succeed or otherwise. I would suggest hiring the best, not the least expensive from the beginning, it will be less expensive in the long run and give you a better chance of success. Work together to develop the features which will deliver the most value to your end users with your starting capital.

share|improve this answer

I'm going with the answer, "the one you already know." Mine is the case that my partner already had the ability in Java so that is what we went with. For us, the product was more important as the platform is already proven. Only time will tell if we were right.

share|improve this answer

We're going through the same technology discussion in my startup and I'm going to cast my vote with "it matters". This is a case where you want to choose your ruts carefully, because you're going to be in them for a while.

There are three things to consider:

  1. Your business needs; what makes your business unique?
  2. How does a proposed platform (language and supporting software) serve those needs?
  3. How does the culture that's grown up around the platform or programming language serve your business needs?

I've done a lot of work in the finance and insurance industries. Good companies in those fields tend to use Java. Why? The language and the programming culture surrounding it tend to emphasize security, reliability and correct execution under all conceivable circumstances. Reliability is paramount in any kind of financial system. In this case, the primary goal is met, and the overhead in labor and hardware is a necessary cost of doing business.

Our startup is a completely different animal. We don't need security so much as we need the ability to get something on the air quickly, and still have enough richness that we can add new functionality without running out of horsepower in the platform.

It's a delicate balance between startup costs and headroom. If your company's successful, you'll hit that ceiling. Once you exhaust your platform, you either lose your ability to evolve quickly, or have to swallow the costs of refactoring, or worse yet, reimplementing.

I've seen this technology ceiling in every successful small company I've worked for. That's when they usually go up for sale to a larger company.

share|improve this answer

Initial cost for developing in .NET isn't an issue at all, there is MicroSoft BizSpark programme where you get free licences to all their fully-featured softwares for 3 years, after 3 years you wil still have licences to those softwares you downloaded during that period.

For my startup I chose .NET framework because I have 5 years experience developing in it, I like working on it, and I am more productive when working on it. I could have easily used PHP or Java, but I don't enjoy working with those frameworks.

share|improve this answer

This is a complicated issue.

For example, if you are doing an application which has a heavy geo / location aspect to it, then Django and Postgis is the only viable option.

If you're doing something with heavy legacy integration then perhaps Java would make sense because although it's heavy and slow, it integrates well with SOAP legacy systems.

We just had a client switch from django to rails because they felt like the rails community cared more about user experience and the front end of the application.

If you're concerned about getting a broad selection of developers for cheap, go with PHP.

share|improve this answer

You can also take a look at the Agile Platform by OutSystems.

You can build, deploy and maintain rich web apps fairly easily. The best part of it is the ease of maintenance and change.

The website www.fly.com (a travel search engine) was built with the platform, and has a huge daily load of visitors and search queries, so I'd say your load and scalability concerns are covered.

You can download the Agile Platform here for free, and see a bunch of demos here

share|improve this answer
show 2 more comments
1 2

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.