Hacker News new | past | comments | ask | show | jobs | submit login
What was it like working on the original iPhone project? (quora.com)
145 points by dvdhnt on Dec 28, 2016 | hide | past | favorite | 46 comments



In the Quora post [1] Terry says:

>I wrote about 6% of the Mac OS X kernel, by lines of code, over a period of 8 years. That’s about 100,000 lines of code a year.

Does that mean he wrote 800,000 LOC in 8 years, or am I reading that wrong?

If he did write 800k LOC, I'm curious why the Kernel is so many LOC? Given OSX is based on BSD, I always assumed Apple's kernel would be small in size (LOC) and mostly just glue between BSD code that has existed for decades.

[1] https://www.quora.com/What-was-it-like-working-on-the-origin...


Much of that code will be reimplementation, so the net LOC won't change as much the LOC written. While OSX uses some parts of BSD, which gives it that BSD flavor, it is also substantially a new kernel based on Mach and with many other things under the hood implemented entirely by Apple.

As for the code output, that is on the high-end of what you would expect to see but within the normal range of some highly skilled individual contributors operating within their domain expertise. Of course, this assumes they are largely left alone to do their work and aren't spending half their time in meetings, making powerpoints, etc. Back when I was plying my trade as an individual contributor, I was good for about 8,000 quality LOC per month if I was minimally interrupted, which is only a little less than the engineer in question.


Thanks.

So to extend on that, if his 800 kLOC is only 6% of the Kernal, does that mean Apple's kernel is around 13 million lines?

wow, I had no idea.


Assuming no lines are removed. I often write tens if lines, commit to trigger a test, then rip out hundreds including the ones I wrote. Netcontribution - negative. I consider that a good day's work.



Yeah but if you start a project like that it's difficult to make progress :)


It seems in 2006 the Darwin XNU package was 1MLOC and the Kext another 1MLOC, so I have hard time believing that 11 others MLOC where needed for the iPhone KERNEL.

https://books.google.fr/books?id=K8vUkpOXhN4C&lpg=PA49&ots=O...

Linux 3.13 is 7 MLOC in drivers, 2 MLOC in arch, and only 139 KLOC in kernel, so it's probably the drivers that inflate a kernet size but I doubt the iphone needed so much drivers.

http://unix.stackexchange.com/questions/223746/why-is-the-li...

The guy is probably talking about changed lines (added, removed, changed) and might be liking to fiddle with its code style a lot.


Note that he is talking about OSX not iOS.


Your first misconception is that xnu (the OS X kernel) derives mainly from BSD. In actuality, it's based much more upon Mach than BSD. The BSD subsystem is largely implemented on top of Mach subsystem in the kernel (e.g. a BSD process is implemented on top of a Mach task), and xnu supports both Mach and BSD system calls. There is very little you could port from BSD into xnu without significant work, although obviously there has been a lot of cross-pollination between xnu and BSD (launchd, GCD, mandatory access control, etc.).


Yeah he averaged about 500 LOC a day for 8 years. Which seems insane. That is a wildly productive programmer.


Not just a productive programmer, but one who's working on the sorts of problems that involve just writing code nonstop. I've worked on projects where just deciding what lines to write would take half a day, so that sort of raw code output would've been outright impossible.


How is LOC a measure of productivity?


it's not the measure, but surely it's a measure?


It's a measure of something. The question is whether it's a measure of productivity, which begs the question, what is the definition of productivity?


It's a terrible measure, but all the rest are worse in some way.


LOC is a worse measure than "% of the product", where the product has a global impact?


How do you measure "% of the product"?


boilerplate


Now add the number of hours or days for testing and debugging those 500 lines of code and you get the true amount of time that it took to write 500 LOC. Otherwise I can also write a huge amount of lines of code in a day but pretty much none of it will work correctly, or even run, on the first try .


Should be more aptly titled "Apple internal project secrecy". From the original title i assumed it was going to be about technical security compliance on the iphone, not the multiple levels of NDAs required on top secret projects.


Ya this was disappointingly thin.


Here are some great podcasts with Nitin Ganatra, who was Director of iOS apps at Apple during that time. Transcriptions available too.

http://www.imore.com/debug-40-nitin-ganatra-episode-ii-os-x-...

http://www.imore.com/debug-41-nitin-ganatra-episode-iii-ipho...


"I only got to see the machine doing the remote debugging, not the target — but it was obviously an ARM based system"

I find that a weird statement. If you are pulled into a team because you are a good kernel debugger, in a company where talent in that area likely isn't scarce, wouldn't they pick you because you know ARM, and wouldn't they tell you beforehand exactly what CPU you are dealing with?

There also is very little information in this (or the Quora post), most of which isn't new. How do we know this isn't something someone made up to look interesting (or to score karma on Quora, if it has such a system)?


What I wonder is, what's the pleasure of working in such an environment? Do people get compensated so much that they're ok with not sharing? I like discussing about the latest frameworks at lunch, and I like working in open companies where you try to create links with a cross-department initiative. How's that fun to constantly have the Damocles Spade of the corporate lawyer sending his wrath upon you, inspecting all iPhones of the department, or the corporate spy having lunch at your table to check you're never talking about work? With that system in place, don't you only get a certain type of people (i.e. the opposite of the SV youngster – rather the father who'll stay there for years, half bored half under mortgage)?


Maybe a naive question, isn't he violating the NDA by talking about it now? Do they expire?


Potentially, but his response is vague in nature and doesn't reveal any trade secrets or other information that isn't publicly available. If he had mentioned another project that never went live or that he saw some interesting prototypes then yeah he would be at that point.

It also has to actually matter to Apple or the employer in question to issue a cease and desist order. I'm not sure they care if he revealed a random prototype from 16 years ago.


To be fair, the NDA doesn't cover the specifics of project management culture and level of secrecy involved.

While the things he mentioned in that post are generally unknown outside of Apple, they are basically rules of the unspoken culture on campus.


I think it's a bit of a stretch to try and enforce an NDA on a project that has become public

(of course, if there's a technical/commercial detail that is still not divulged this is still covered by NDA)


This blog entry doesn't add any value, can we change the link to the Quora response[0] instead?

[0] https://www.quora.com/What-was-it-like-working-on-the-origin...


Wow, the Quora reads very different to me. Article: "See the crazy amount of secrecy." Quora post: "I was read in informally on the project, sometimes you have to wing it to get any work done."



> P.S.: if you care, you can pretty much figure out what any secret project is. And no, I’m not going to disclose how you do it, but really? Trivially easy.

Let me reveal how... and you won't believe how simple it is. You Google it.

Once you know the codename, the whole security theatre comes to an end for the non indoctrinated because the moment you Google "<codename> apple project", you see a bunch of results from obscure websites. You click on them and shit, they are accurate leaks.

Same goes for internal utilities as well. Google "<internal utility name> apple" and you sometimes even get a link to a DMG.

So basically Apple's obsession with secrecy is nothing more than security theatre causing inefficiencies within the company.

The leaks are mostly from Chinese domains which makes me thing they happen from the manufacturing side of the business.


Oh wow, didn't see that before I posted the 9to5 link. I wish it would let me change it.


Let me put it this way, Apple is all high on secrecy stuff and have these black cloths, NDA and every other secretive procedure that a developer has to go through. OTOH, Android OEMs like Samsung, HTC, etc. don't do any of that and just use pure open source android, and yet they too manage to sell their phones like hot cakes exactly like Apple!


Maybe Apple need all that stuff in order to sell stuff like Android.


The interesting thing about Quora is that it has a lot of personal anecdotes directly from people involved. That's really unfortunate considering all the dark patterns and user hostile design the site utilizes. Along with their registration paywall, they also do other things to hoard all that user-contributed knowledge: https://konklone.com/post/quora-keeps-the-worlds-knowledge-f.... Really disappointing, imagine if Stack Overflow was run this way. I hope this rant is on-topic enough considering that the post is just quoting a Quora source and if Quora ever shuts down or fully hides itself, these kinds of posts will be all that we have of the knowledge shared by these experts.


The robots.txt comment explaining that they disallow the Internet Archive crawler to protect users' privacy sounds so facetious given they require people register with their real names and in certain cases go as far as to ask for government ID scans: https://techcrunch.com/2011/02/14/quora-to-oddly-named-users...


Wow that's blatant discrimination. Hasan himself put it best in the email:

> Your reason for querying the authenticity of my name seem arbitrary and unfair. Discriminating against non-familiar names begs the question: non-familiar to who? Would you have questioned me had I used a fake but common English name? If you intend to attract a global community of users you will have to reconsider this approach.

And the protecting privacy bit is a huge cop-out because it's only really "protecting" them from honest actors who adhere to robots.txt. Not to mention that publishing something with your name on it is effectively making that association public; just like how you should assume that passwords committed to a public GitHub repository are no longer secure, you should exercise the same vigilance with your identity. Sure it's great that they let you change it, but someone out there probably already knows the association and wrote about it, and anyone persistent enough to use the Wayback Machine on an anonymous post will probably find out what they need anyway.


I don't think it's so important that the Stack Exchange websites are included in the Internet Archive's Wayback Machine. What really matters to me is that, like Wikimedia websites (http://download.wikimedia.org/), they offer downloadable dumps under a free license (https://archive.org/details/stackexchange). This way, anyone who wants can mirror their contents.


It seems my problem is that I don't want to ask my questions on Quora (for the same dark patterns and user hostile design you mentioned) and can't ask my questions on Stackoverflow (because they're closed as non constructive or not a good fit etc).


I also heard that during lunch people would be placed randomly and randomly have someone who would make sure no NDA-breaking topics were discussed.


The only story I've heard about Apple lunches was the one where a guy (overweight by his own description) bought a big muffin on campus. Jobs was in the vicinity. Saw the guy. Didn't say anything but gave a stare of death at both the guy and the muffin. Next day, there were no muffins to be found at Apple.

Sorry I can't find the original link for the story.


I also heard the opposite.


This is a major corporation; not elementary school.


"you're holding it wrong" sounds pretty childish to me


It seems like a lot of fuss about nothing to me, especially now that we can see it in hindsight.

There was a big fuss about this issue and then a few weeks later everyone went on about their business, using their phone and enjoying using it without any real problems for a few years. And then they got a new iPhone because they liked the first one so much.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: