Whenever I work on software, I find that it usually has some parts that shine and others that smell.<p>This makes me wonder if there's also code smells in "big" software like iOS or Gmail that should be rewritten?<p>Any experience?
I haven't touched Apple code in a few years, but in the past while doing development on their platforms, I've often downloaded code from opensource.apple.com or the darwin project, and I've usually encountered very high quality code (at least for the low level stuff I was looking at - primarily audio subsystems and objc language).<p>You can actually learn quite a bit looking at these codebases, and I'm glad they opened up as much as they did.
Not sure about spaghetti, but they sure as hell has shit tons of bug in iOS , <a href="https://openradar.appspot.com/" rel="nofollow">https://openradar.appspot.com/</a>
I'm currently working working with another publicly traded SF company that you've heard of, and yes. They have really big, old, codebases, and yes parts of them are nearly incomprehensible.<p>The thing is, they recognize the bad parts and work to fix them when it makes sense. Companies with bad technical leadership will ignore the bad parts- like wallpapering over a crumbling wall.