A Complete Understanding is No Longer Possible
Programming in the 21st Century - James Hague - February 27, 2012Let’s say you’ve just bought a MacBook Air, and your goal is to become master of the machine, to understand how it works on every level.
Amit Singh’s Mac OS X Internals: A Systems Approach is a good place to start. It’s not about programming so much as an in-depth discussion of how all the parts of the operating system fit together: what the firmware does, the sequence of events during boot-up, what device drivers do, and so on. At 1680 pages, it’s not light summer reading.
To truly understand the hardware, Intel has kindly provided a free seven volume set of documentation. I’ll keep things simple by recommending Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 1: Basic Architecture (550 pages) and the two volumes describing the instruction set (684 pages and 704 pages respectively).
Objective-C is the language of OS X. We’ll go with Apple’s thankfully concise The Objective-C Programming Language (137 pages).
Of course Objective-C is a superset of C, so also work through the second edition of The C Programming Language (274 pages).
Now we’re getting to the core APIs of OS X. Cocoa Fundamentals Guide is 239 pages. Application Kit Framework Reference is a monster at 5069 pages. That’s help a file-like description of every API call. To be fair I’ll stop there with the Cocoa documentation, even though there are also more usable guides for drawing and Core Audio and Core Animation and a dozen other things.
Ah, wait, OpenGL isn’t part of Cocoa, so throw in the 784 page OpenGL Reference Manual. And another 800 pages for OpenGL Shading Language, Second Edition.
The total of all of this is 79 pages shy of eleven thousand. I neglected to include man pages for hundreds of system utilities and the Xcode documentation. And I didn’t even touch upon the graphics knowhow needed to do anything interesting with OpenGL, or how to write good C and Objective-C or anything about object-oriented design, and…
(If you liked this, you might enjoy Things That Turbo Pascal is Smaller Than.)
Categories: Blogs Programming in the 21st Century
Erlang on Twitter
» erlang_qomara (ES☀): Morning sarah {} ☀:*
» th3rac25 (th3rac25): RT @EvMill: Why is Erlang great for the web? I break it down at Erlang Factory [45 min video]: https://t.co/zYKuOYf87w #chicagoboss
» karl_grz (Karl Grzeszczak): Heading to #Chicago #Erlang meetup with @bryanmurphy and @davidkotas to go nerd it up!
» nicholasf (Nicholas Faiz): This is pretty interesting to watch: http://t.co/pOINDC1zFO . /cc @fredwu #elixir
» willhsiung (Will Hsiung): Taking Metra to the Loop for the 3rd straight day of Meetups, this time with Chicago Erlang Group. #erlang #programming #functional
» Tiarandella12 (Tiara Randella): @erlang_qomara yakk om koo
» erlang_qomara (ES☀): Hhaha, klo ga mau di duakan lbih baik jngn mendua :x 3-|
» bostonou (Jonathan Boston): @NashFP @nashdotnet is Erlang School going to be part of the monthly NashFP meeting or a separate meeting? cc @dougselph
» livelock (antoinette algorithm): 0:00 /usr/local/hoss/lib/erlang/erts-5.7.3/bin/beam.smp -k true—-root /usr/local/ #ChurchOfMars
» Muh_Erlang (M. Erlangga Pangestu): @evlinkohar ngpo vlin
Statistics
Number of aggregated posts: 10650
Most recent article: May 20, 2013
Latest comments
» Moraru on This is Why You Spent All that Time Learning to Program: It is true that computer science was a pain in the back at time that i’ve had to learn it…
» Commercial hand dryers on Couchbase Meetup at new HQ: Buy online from here where you will get so much of variety in Commercial hand dryers for people. If you…
» Fort McMurray Homes on Motivated Reasoning and Erlang vs Python vs Node: I don’t really understand why this post is motivational? I don’t even see a post, just a title. Fort McMurray…