Which server-side language does Facebook use

Which programming language is actually used where ...?

Did you know that there are already more than 700 different programming languages ​​worldwide? That number sounds pretty impressive, even though only a few out of 99% of all programmers are used. And even when we talk about the TOP 10 languages, we actually generally don't know which ones made Facebook a success and which ones were used to create your favorite video game.

Most Internet users only want to satisfy their curiosity with the question "Which programming language was actually used to create Instagram / my mobile phone game / or this particular website?" But when it comes to budding developers, they are likely to have to ask this question more often, especially if you want to find out which language they need to learn in order to be able to continue working on one or the other software.

Regardless of which "language group" you belong to, this article will provide you with the full answer to the questions asked above. In addition, we will present you with an extensive range of examples. So let's find out which programming language was used to create which applications and which websites ...

Very simple websites

The simplest webpages of all time, which you probably created yourself in your computer science class during your school days, will be created with HTML. However, these are quite simple in structure and have no functional elements whatsoever. An example of such a website can look like this:

This is not exactly what you would expect from a beautifully designed website. To ensure that your web pages are properly designed, you may need to use CSS. They are responsible for ensuring that the visual elements of your website look special and unique.

If you need to add interactive elements such as forms, animations, buttons, popups, quizzes, etc. to your website, then you will need to use "JavaScript".

However, the first two design elements mentioned in this section are not programming languages: HTML is a page description language, while CSS is a style sheet. In contrast, JavaScript is a full-fledged programming language used to code scripts for websites and simple applications.

But all of this only applies to the front end, i.e. that part of the website that you can actually see. If you delve deeper into the data access levels of the apps processed by the server and not by the clients, you will come across the most diverse types of scripts, which differ from one use case to another.

If we look at the statistics on these technologies, we find that the back-ends of 78.9% of the websites were created using PHP. This is explained by the fact that around 35% of all websites created use “Wordpress” as the CMS and these pages are based on this development environment and WordPress itself is based on PHP.

But not only the programming languages ​​mentioned above are used when creating websites: Other languages ​​used are Java (3.5%), Ruby (3.3%) and Scala (1.6%) but also Python (1.4%) %) is used for this. For example, “Airbnb” is based on Ruby, Apple's website is made up of a combination of Java and Scala, and “Reddit” uses Python as the primary backend language.

The social media like Facebook, Instagram and Twitter

Speaking of "Reddit", this represents more of an online community than just a simple website and is somewhere between a news service provider and a social media network. Instagram, the second most popular social media platform, is written entirely in Python. This language is characterized by a simple syntax and is therefore often recommended as the entry language for beginning software developers.

But Instagram's experience has also shown us that Python is not just a compromise between simplicity and efficiency. This language is also fully scalable for such huge projects as Instagram, Pinterest or Youtube, which are characterized by their extremely extensive collections of graphics, images and videos.

Facebook, on the other hand, started out as a PHP website, but later developed its own PHP dialect language called "Hack". Currently, Facebook is mostly based on this language, but it also includes some parts made with Python, C ++, Java, and the lesser-known D or Erlang. The original Twitter interface initially used "Ruby on Rails". "Scala" later became their basic language, "LinkedIn", however, remains with Java and Scala.

And what do the messenger systems use?

Don't listen to those who claim that “Instagram” and “TikTok” are at the top of the hierarchy of needs of social media addicts. This is not true because the messaging systems have meanwhile taken the lead in terms of usage intensity. The popularity of “WhatsApp” is only surpassed by “Facebook” and “Youtube” and is currently the third most popular social medium worldwide. It is the undisputed number one messaging system, followed by “Facebook Messenger” and “WeChat”.

These messenger systems are characterized by the fact that they are quick, easy and convenient to use, and they save your users unnecessary additional information that we often find in our social media feeds. In this way, they became just as effective a means of communication as traditional digital social platforms, but without the information overdose that comes with them.

The tech stack used to create this software is also different. WhatsApp, WeChat and the early version of Facebook Messenger use "Erlang" as their programming language. Although Erlang is nowhere near as well known as other coding languages, it is nonetheless a multi-purpose language that is also used by “Amazon”, “Ericsson” and “Cisco” for a wide variety of requirements. Erlang is good at handling multiple simultaneous connections and forwarding messages. And it is precisely because of these advantages that a large number of news applications have quickly made use of this language

"Viber" and "Telegram" use several languages ​​at the same time for their backend. For the desktop app, Viber uses C, C ++, and Java. Telegram is relatively the same in the technology used; The tech stack includes C, C ++, and Qt. For mobile apps, both obviously used Android-native Java and Objective-C for iOS, which will later be migrated to Swift.

Triple-A games like GTA, PUBG, RDR

In the 1970s, it was software developers, with their exclusive access to computers, who published and popularized the first video games. But it's also pretty clear that almost always the same developers were behind every title developed at the time. However, video games have developed rapidly over the last - almost - 50 years and a large number of software developers have continued to fall for this software area. Some of them even took up this profession because of their love for video games.

"If you want more people to start programming games, encourage them to play more video games," said Mark Zuckerberg, founder of Facebook. And since video games seem to be one of the keys to entering a profession, we should find out what languages ​​they are based on.

And here is something noteworthy: Triple-A projects such as "GTA", "Red Dead Redemption", "PUBG" or "Assassin's Creed" do not use any programming language in the conventional sense. They use so-called "gaming engines", which are special frameworks for computer games that control the course of the game and are responsible for the visual representation of the course of the game. This main development environment is usually based on C, C ++, or Java. These game engines therefore define the graphics occurring in the game, the game physics, the sounds and animations and even the artificial intelligence, which we will meet in the last chapter of this article.

Both "GTA 5" and "RDR 2" are based on the "Rockstar Advanced Game Engine". Some of the previous games in this series, especially GTA 3, Vice City and San Andreas, use Renderware as the game engine.

"PUBG" is based on the "Unreal Engine 4", which was also used in titles such as "Dead by Deadlight", "Fortnite" and "Tropico 6". The "Witcher 3" is controlled by "REDengine 3", while "Assassin's Creed: Odyssey" uses "AnvilNext". All the engines mentioned are based on C ++. So if you want to become a game developer, now you know what language to learn.

Online casino games

Speaking of online games: seven out of ten people associate online casino games with the one-armed bandits, also known as slot machines or slot games. According to a study, 71% of casino players prefer slot games or video poker over all other types of casino games. From a technological point of view, these are also the most interesting to implement.

Modern slot machines must have a strong foundation on the server side, as permanent communication between the servers of the game providers, the game producers and the online players is required. This is the only way to ensure that the gaming machines deliver a timely gaming result. This is represented by specially determined numbers, the combinations of which are calculated by most casinos using dedicated hardware with random number generators (RNGs).

Therefore, every slot machine should be programmed in such a way that an immediate data transfer between casino servers and the backend of the slot machine is guaranteed. Therefore, as a game developer, you need to be familiar with either C ++ or Java in order to create such a game. Basically, these games do not differ that much from the other games that we have already mentioned in the chapter described above.

However, casino games do not use game engines, but rather work like web applications. In theory, you can also use a different one in addition to these two programming languages. And of course you also need JavaScript in the frontend. And if you combine JavaScript, HTML5 and CSS3, your game will run on all devices, including smartphones and tablets, and these will be visually entertaining and quick to play.

Mobile apps and games

In 2020, users will spend around 90% of their time with apps, preferring them to mobile web versions. Instead of adapting the website in question for mobile devices (which, by the way, should always be done by default), companies are developing a stand-alone mobile app dedicated to this particular service.

The mobile environment as we know it is dominated by two operating systems: “Google Android” and “Apple iOS”. Each has its own operating language for app development. For example, if you want to create an app or a game for Android, you will use Java. If you choose iOS, i.e. Apple, you will have to master "Swift" and preferably "Objective-C".

There are also some frameworks for cross-platform mobile app development. The apps created with their help are referred to as so-called “hybrids” and can be created much faster, easier and therefore also more cost-effectively. However, they do have some drawbacks such as poorer performance than native apps. Popular frameworks for building hybrid apps are Ionic, React Native, and Apache Cordova.

Artificial intelligence

AI is currently the most complex and at the same time most ambitious product that we will introduce in this article. It is forecast that this market will grow by 840% over the next five years and will contribute enormously to the increase in global economic growth. The sales value is estimated at € 126 billion for the year 2025. However, it is currently believed that there are now only a few hundred AI specialists overall, but it will take millions of AI professionals to pay tribute to the current pace of technology growth.

Hence, AI is a very potential niche for those looking to see software development as their long-term career path. Mastering AI skills, however, takes more time and resources than other software development sectors, but the average salary of an AI engineer is usually twice that of a normal software developer.

And which programming languages ​​are used here? Unsurprisingly, Python is also the first choice for AI solutions. For example, 57% of industry professionals are more likely to use Python than C ++, which in turn is the other popular language for AI software.

The conclusion and the summary

Let's take a look at the 2019 Stack Overflow Developer Survey. There, 69.7% of the respondents stated that they use JavaScript for their daily tasks, 63.1% use HTML and CSS. So it can be assumed that most of the developers in the world have a front-end orientation. The most popular server languages ​​are Python (used by 39.4% of professional developers) and Java (39.2%).

This statistic also shows that game development is not very common, while website development shows the highest prevalence. At the same time, however, more complex products such as the “Google ecosystem” or artificial intelligence require the creation of an extended tech stack.