Hacker News new | ask | show | jobs
by fn1 1336 days ago
Off-topic, but how the Facebook, Messenger or Instagram-app need a million lines of code is absolutely beyond me.

I had a few encounters with facebook's opensource code (mostly around react-native) and it is generally subpar in my opinion.

3 comments

Facebook is primarily a message and photo sharing application but it also has group boards, dating, live video streaming, a marketplace, browser games and probably more features. Then there are all the features for targeted ads, tracking, payment and so on. All of this is available almost all around the world.

How do you implement these features for more than a billion active users in less than a million lines of code? Even 100 million sounds like a low estimate.

Why does the Linux kernel have more than 30 million lines of code?

You could ask if these features make sense. But in the end it is their business decision to make.

how does the number of active users affect the size of the application?
You need to support a huge range of devices and cultures.
Aside from the technical challenges of running a system with such a massive amount of data:

translations (left to right text and layout: https://sy-sy.facebook.com/), different laws depending on jurisdiction; for example privacy/moderation/takedowns, taxes/payment/invoices if you are selling anything, accessibility

If you ever start a company and you have the long-term goal to offer your service in multiple countries I would advise you to launch in at least 2 countries, preferably supporting different languages.

My guess is that it's an extreme case of Conway's law, with many teams that produce mountains of code hidden behind some API. Not to mention codebases provided by external firms, which could amount to a large % of all those KLOC.

I'm interested in how they avoid "Roman empire syndrome", as in owning more software than they can maintain while actively expanding it.

Rome held on to its land for a while. More like napoleon or Alexander syndrome
This happens with "everything" apps that have hundreds of features you have never seen, each serving a tiny fraction of the userbase who somehow stumbles on them and justifying the PM/eng resources to keep them chugging along, or abandoned and left to rot until these migrations come along.