iOS at Facebook [pdf]
static1.squarespace.com
static1.squarespace.com
There is absolutely no reason for the Facebook app to be so large and have so many classes. The app itself doesn't do that much.
So yeah, it's probably all dead code that's still there.
You couldn't think of a more charitable interpretation? I'm not one to care about rules but the hn guidelines on commenting are important for making sure the community doesn't eat itself alive like reddit did/does.
>The app itself doesn't do that much.
Right, but in the presentation he made it clear that it was less about what the app does and more about the number of engineers making changes to it. Given the size of their teams all making their own changes to the iOS codebase, doesn't it make sense to modularize it so they aren't tripping over each other breaking the application constantly? They don't have a dedicated iOS team and having one would bottleneck the other teams.
Well if it doesn't do that much, why are so many engineers working on it? Perhaps they have so many people working on it because they are all redoing the same stuff and not working together?
I really don't know the answer, but find it fascinating and can't wait to see what Facebook is doing in 10 years time.
To be successful does software need to (check off what you think would matter):
* Make money directly
* Make money in-directly
* Be used by at least 1 user (not including dev + dev friends and family)
* Be alive and working in 6 months
* Be alive and working in 2 years
* Be alive and working in 10 years
* Simply ship so dev gets a positive yearly review
* Be bug free
* Only crash N% of the time (who cares just re-run it and don't do the bad thing)
* Quality / features don't matter as long as marketing is talking about it and people play with it so it looks successful.
* Simply exist, but be subsidized by some one or something so devs keep hacking on it even if no one uses it.
* Still be useful when there are zero devs working on it.
SRC: http://www.wired.com/2015/09/google-2-billion-lines-codeand-...
Right below it:
> Doesn’t include commits to bump version numbers, add translated strings etc - actual number is over 4,000
Any way you slice it that is a chaotic pace of change.
Interesting. Any source for this claim? And also what's the full size of Whatsapp team?
So I guess with iOS they wrote/rewrote some part of the system functionnalities to better fit their needs.
If anything they're the opposite of sloppy.
We call these things technical debt. But it sounds like they just never fix them. Refactors never happen.
What alternative way would you suggest to keep your mega team productive and shipping features?
2. I seriously have to question that they absolutely need that pace. I don't buy it for a second that any of this is necessary or better than the alternative.
This has two clear advantages. You don't need to fill a form every time you change the smallest of functions and when you mess up, you don't impact everyone else. Honestly, I don't get the negativity.
EDIT: I don't mention dead code because that can be, if really needed, removed by a tool so I think the point is moot.
It can easily be cleaned up in an automated fashion and they don't do it. That's exactly what everyone means by slop. If you could pick up the clothes on your floor but don't, it's not because you're a hacker.
Update: not only do they not clean it up, they ship this shit to a billion people. Talk about lazy.
The performance advancements on the hardware side of the platform are almost entirely consumed by the ever-increasing complexity of the most popular app on the software side.
But no, it's stuck on OSX 10.5...
I did the same with old SPARC kit a number of years ago too.
But since software developers have been dealt a good hand (demand-wise) in these decades, we get away with it. And call it "hacker culture", so it sounds hip and even correct.
[1] https://gigaom.com/2015/01/26/facebooks-new-android-app-goes...
Android apps enjoy bytecode that is getting JIT-ed on install.
https://developer.apple.com/library/watchos/documentation/ID...
I've only ever encountered the term once online since. I just tried to Google for it again and I can't find the write combo of terms to find it ("toll booth networking? no.... toll booth computer science? no.....")
So I tried to answer that question with what happens on a concept level, and the person on the line said "No. The answer is 'Toll Booth Blah'. 'Toll Booh Blah'" and moved on to the next question. Like she was Alex Trebek and there was only one way to answer the question.
Meanwhile Google thought I was good enough to fly over for an in-person interview at around the same time, so I just wrote Facebook off as being terrible at hiring and moved on.
To date it's still the worst phone interview experience I've had, and I've had some awful ones.
Don't get me started, tech interviewers are so bad...
But, whatever, rewrite Xcode I guess.
Simple fact of the matter is that you're going to run into those type of questions by non-technical people at any big software company with which you interview. It's on you to be able to smell out what they want and answer with something that demonstrates your abilities and gives them what they're looking for.
Facebook engineers keep telling everyone that React Native is not used in the main Facebook app. I always wondered what is stopping them from start using it. Perhaps app size is a massive concern? Maybe all this tooling around their app is not really compatible with React Native?
Its interesting that they have a ton of legacy Obj-c code (considering that companies started to build apps not very long time ago, and they already re-wrote their app several times) I wonder if any other company is a situation like this well other than Apple.
I only really downloaded it so that I could get notifications, and now m.facebook.com can send them from Chrome, so I'm very happy to totally app-less.
That gave me a chortle :)
"Move fast and break things"
I'm glad they're not holding any critical data like our personal information, what we do, what we think and where we are then!
If this set of slides embodies 'hacker culture' which it claims to, I am not a hacker, neither are my colleagues and I'm proud of that.
The whole thing stinks of arrogance hiding incompetence. I'm not putting anything near facebook, ever.
> break stuff, but be ready to be penalized
I've seen things break a few times, and the attitude is always "how do we fix this" and then "how do we fix the system to prevent this type of error in the future", never "whose fault is this"
> occasional hack
They seem to happen fairly often
> nights
They're mostly days, since a large number of people have families to go back to; some people stay late with beer and pizza and friends, because that's the kind of thing they enjoy doing, but it's an optional extra. (Technically the hack day is optional too -- if you're not interested, you can carry on as normal)
> when there is an upcoming release
Hacks aren't about video-game-industry style deadline crunches - quite the opposite; a hack day is when you pause your regular work (barring emergencies, ofc) in order to explore and experiment with things you're interested in but wouldn't normally work on.
> in the near-term
Releases are always near (like, multiple times per day).
They actually tried not too long ago... [0]
[0] http://www.cnet.com/news/heres-why-the-facebook-phone-floppe...