7

What server-side language(s) should be used for user-created information sites such as Facebook, SE, Blogs, etc.?

7 Answers 7

3

It can be any language. But if you say PHP, I have some points-

From migueldeicaza in Twitter:
Reddit is experiencing some cognitive dissonance pains over StackOverflow using 5 .NET servers instead of 500 PHP ones.

I have also seen a article by a facebook developer team member who said that, if facebook were to re-developed from scratch now, probably they would have chosen python.

So, if your site really scale up, you should consider using other languages than php. Using php you can scale up. But have to do a lot of tweaking IMHO.

14

Well, Facebook is written in PHP and SE sites are written in ASP.NET. Blog engines are pretty diverse in their implementations as well (Wordpress is in PHP, dasBlog is .NET, etc.). The obvious answer is "any language will do, pick whatever you're most familiar with". With the possible exception of languages like C that aren't typically used for large-scale web development.

There are some performance metrics to consider, but just about anything can be made to scale appropriately if/when you run up against having handle massive traffic.

5
  • I believe SE switch from PHP to ASP.NET at some point and there was a large performance increase. I could be remembering incorrectly, however. Commented Jan 1, 2011 at 23:43
  • 4
    @Matthew: SE was written in ASP.NET MVC from the very beginning. Commented Jan 1, 2011 at 23:48
  • Don't forget MediaWiki, also in PHP. Commented Jan 2, 2011 at 5:23
  • @Macneil don't forget me also Develop in asp.net MVC. ha ha very nice. Commented Jan 30, 2011 at 17:56
  • Facebook doesn't use the vanilla PHP implementation. HipHop compiles PHP to C++ which is then compiled with g++. Saying that facebook uses PHP is like saying Noh is just theater. Commented Feb 26, 2011 at 23:45
6

The language does not matter nearly as much as the architecture of the server application.

In theory, sites like these could be created in any language, but in practice it comes down to what languages are reasonable choices given things like differences in your familiarity with them and your choice of platform.

2

Let's see the list

  • Facebook - PHP
  • Twitter - Ruby on Rail
  • Digg - PHP
  • Wordpress - PHP

My impression is that PHP is on the lead, because the owner cost is lower.

Most hosting offer LAMP service in really cheap prices, but not that close with say ASP or J2EE server (Google App Engine may be a escape route for this).

For Small company or individuals, as cost is a vital factor, they'll pick PHP instead. Which makes more users and devs effort driven more into Opensource project in PHP, and thus reinforced the cycle. (Correct me if I am wrong)

As many had mentioned, the language of choice probably decided by the scalability and the deployment environment you have.

3
1

The architecture is far more important. Web servers are quite easy to scale, databases are not.

If you use a relational database you'll need to distribute it amongst different servers. You'll soon need to throw everything you know about RDBMS out the window and use techniques like sharding or a non-relational database.

Then you have other performance gains for caching servers, load balancers. With many servers there is also deployment to worry about.

The language doesn't matter too much when you consider performance is limited by disk usage and ram not CPU. Having said that I have to get in my 2c of PHP hate, it really isn't a nice language.

1

I have a feeling that if Fog Creek, an established firm, wasn't there to help support the infrastructure of SO / SE, ASP.NET MVC / IIS / SQL Server would not have been such an easy and obvious choice. Many startups understandably take advantage of the free or cheap solutions, and by the time they're able to afford something easier to transform into a more robust solution, they are too far deep into it. So they stick with their original stack and tweak it the best they could. Hence, the public growing pains we've witnessed for some "overnight" successes.

That said, sites that popular are so few and far between that it's a "happy" problem if you ever find yourself in that situation. So, like others have said, the language is way down on the list of importance. Focus on architecture, and potential, reasonable growth expectancy for scalability.

0

If I were to pick a language for large scale systems at this point it would probably be Erlang. It has a lot of features designed for fault tolerance and concurrency in telecoms that just make large scale systems easier to build. Also the lightweight thread model will work quite well in that space.

Honestly I don't think there is one perfect language for building large scale systems (but some better choice to be sure)

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.