Creating Facebook

What programming languages would one need to know to create Facebook from the ground up (obviously there are various so list in terms of benefits, if you can)? Are there any good books on the subject you know of?

edit: books won´t help you that much ... learn the languages from the scratch (for example at http://php.net/ ...).
to code something similar like facebook will take quite some years, to make it work at a large scale even more!

edit: books won´t help you that much ... learn the languages from the scratch (for example at http://php.net/ ...).
to code something similar like facebook will take quite some years, to make it work at a large scale even more!

Click to expand...

I figured php would be central but there's other sweet stuff like python. Also I imagine there's at least one book out there on the optics of building a social networking site, such as common features and functions, optimal layouts, etc. Wouldn't want to reinvent the wheel now..

i think the most difficult thing about creating something like facebook is to keep it running with some million users ... server management, fast database access, security issues, .... problems you can´t imagine in your worst nightmares !
In case you don´t want to waste your time, you should try community systems like "jomsocial" for joomla and change it for your needs.

You could make facebook with php, MySQL and AJAX knowledge - but to make something that can actually support 10's of millions of users requires a bit more.

I read an article once about how Facebook delivers image content. They have a custom Linux-based operating system with a simplified filesystem that houses the images in various resolutions. These are then cached all over the world - with a special cache for profile pictures. It's serious business - the number of submitted photographs per day is absolutely astonishing and somehow they can dish them out incredibly quickly.

To answer the OP - I would guess:
C and C++ for the operating system stuff
Ruby on Rails or PHP with AJAX/Javascript for the UI
SQL (obviously) for DB work

The simplest way to look into something like that is to actually look towards working on plugins within the FB dev community. It gives a run down of the sites roots, but as Blue mentioned it's not something that you would build "Huge" from day one. It's an evolution, changes occur slowly and are obviously documented well for the team of developers that are required.

By all means you can build an Alpha branch of some new networking site, but I'd really suggest if you did that not to try and do everything all at once, or you'll just over complicate your project.

Personally I've not toyed with it myself, although obviously a lot of people have since there are a lot of plugins available. Some of them obviously require a dedicated host like those multiplayer games, but some of the simple questionnaire ones are just data stored on the FB database.