Programming Languages used by Facebook

Programming Languages used by Facebook:

Facebook is social networking. People have been “facebooking” each other for about 9 years now, making Facebook the most used social network with over 800 million users worldwide. But how does Facebook work?

In this article, I will discuss the programming languages used by facebook or you can say Facebook’s front-end/back-end infrastructure.

=========================================================================

The Front End


Facebook uses a variety of services, tools, and programming languages to make up its core infrastructure. At the front end, their servers run a LAMP (Linux, Apache, MySQL, and PHP) stack with Memcache. Not a computer science expert? Let’s take a look at exactly what that means.
__________________________________________________________________________________
Linux


Linux is an open source operating system kernel. It is very customizable and good for security.
__________________________________________________________________________________
Apache




Linux system runs on Apache HTTP server. It is also open source and one of the most popular web server in use today.
__________________________________________________________________________________

MySQL

MySQL is the backbone of Facebook’s database infrastructure. Facebook utilizes MySQL because of its speed and reliability. It is also an open source.
__________________________________________________________________________________

PHP
PHP is an incredibly popular scripting language which makes up the majority of Facebook’s code-base. Facebook uses PHP because it is a good web programming language with extensive support and an active developer community and it is good for rapid iteration. PHP is a dynamically typed/interpreted scripting language
__________________________________________________________________________________

MEMCACHED


Memcached is a distributed memory object caching system. It is Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.


========================================================================

The Back End

Facebook’s backend services are written in a variety of different programming languages including C++, Java, Python, and Erlang. Their philosophy for the creation of services is as follows:

1. Create a service if needed

2. Create a framework/toolset for easier creation of services

3. Use the right programming language for the task


A list of all of Facebook’s open source developments can be found here. Here’s the essential tools that Facebook has developed.
__________________________________________________________________________________

Apache Cassandra is a distributed storage system for managing structured data that is designed to scale to a very large size across many commodity servers, with no single point of failure.
__________________________________________________________________________________

Apache Hive is data warehouse infrastructure built on top of Hadoop that provides tools to enable easy data summarization, adhoc querying and analysis of large datasets.
__________________________________________________________________________________

FlashCache is a general purpose writeback block cache for Linux. It was developed as a loadable Linux kernel module, using the Device Mapper and sits below the filesystem.
__________________________________________________________________________________

HipHop for PHP transforms PHP source code into highly optimized C++. HipHop offers large performance gains and was developed over the past two years.
__________________________________________________________________________________

Open Compute Project an open hardware project aims to accelerate data center and server innovation while increasing computing efficiency through collaboration on relevant best practices and technical specifications.
__________________________________________________________________________________

Scribe is a scalable service for aggregating log data streamed in real time from a large number of servers.
__________________________________________________________________________________

Thrift provides a framework for scalable cross-language services development in C++, Java, Python, PHP, and Ruby.
__________________________________________________________________________________

Tornado is a relatively simple, non-blocking web server framework written in Python. It is designed to handle thousands of simultaneous connections, making it ideal for real-time Web services.
__________________________________________________________________________________

Subscribe CYP

To get status on your mobile....!
Type F (space) ComputerYouthPk & send it to 40404