I'm wanting to create a web site that will have a slot machine game on it. I want to have a facebook app as well as apps for mobile (iphone/android).
I want to have prizes and a progressive jackpot on the site as well, so they would all need to work together. I also want it to be highly scalable so hopefully one day it could handle up to 50 million users.
I'm not sure what language is the best for me to write this in. Is there someone that has done something like this that can offer me some advice? It would be greatly appreciated.
Choose the language you are most familiar with. Forget scalability. I know it sounds weird, but the success of your app will depend on completely different things.
What you need is not the most elegant code architecture or the most scalable app. You need a service that serves existing needs. This is harder to make than you imagine. Concentrate on that. Worry about scaling when you need to. Be happy if you reach that point. Most people don't.
Ruby on Rails Amazing web framework. Simple, elegant, code and there are cloud hosting platforms like Heroku.com and Engineyard.com that will make it easier to 'scale.'
Usually use PostgreSQL or mySQL for database.
:Pretty much all I code new projects in.
PHP The most popular server side website technology. Facebook uses it, among others. mySQL or PostgreSQL as the database. You can use Symfony or cakePHP frameworks to speed along some things if needed.
ASP .NET, Java, Python PERL There are lots of options but I RoR & PHP are great.
But Mihaly is right, worry about 'scaling' when you need to worry about scaling. Nice to look ahead but, its really not a concern for 99.9999% of websites ;)
There are a few opinions around "ignore scaling" as a concern, I would like to put a case that is a little different.
While I agree most techies, including myself, get all caught up in performance concerns, most of which turn out to be completely useless, there is still several good cases for still including performance as ONE OF your key design metrics.
Then balancer is, its better to get something running today than to have the ultimate performance based system.
My advice would be have performance and good seperation of concerns design in the list but don't obsess about it. If you isolate components of the system you should be in good shape.
As for "which langauge" to use?
It doesn't matter all that much, a well designed system in a slow langauge can be far better than a slapped together system written in C or assembler ... plus you stand a chance of finishing it.
I use .NET and SQL Server because I know them backwards, know what the rules are and when to break them, SQL Server I can normally tune to perfection ... In comparison JAVA, RoR, MySQL, Oracle etc I don't know much about, they probably can do the job just fine too.
I know the overall design pricipals that would probably keep me on track with any OO langauge but I know I can make my tooling hammer when the time comes ... and in Australia I can hire a LOT of developers capable of doing the same ... People, the true scale concern over raw instructions per second if you really grow.
Your "50 Million users" goal This is a nice goal to have but really you need to ask