4 ms·
I guess I'll be that guy and say that I highly doubt the author has taken more than a cursory glance at more than half his list. He certainly hasn't had the dee
by apetresc 9y ago
I guess I'll be that guy and say that I highly doubt the author has taken more than a cursory glance at more than half his list. He certainly hasn't had the deep epiphanies he's implying from each of them.
Seriously, he expects people to believe he's evaluated the code of the Linux kernel, the Chrome browser, Postgres, LLVM, Tensorflow (just to name a few, less than half of his list), deeply enough to be able to make statements like "finest codebase in [x, y category] that I've seen", while also being the CTO of a company?
- markpapadakis 9y agoI never implied that I studied the Linux kernel codebase insight out -- specifically, I was interested in the networking stack and the VFS layer, and from there I looked into the memory subsystem and certain drivers implementation. I did map the codebase to the extent that I can more less find my way around easily. Same is true for Chrome. I was interested in the code for the various UI components, but I looked into other bits here and there. I 've studied most of Postgres, LLVM and Tensorflow codebases - as in, I went through pretty much most if not all files looking for interesting bits (and finding plenty). I guess there's no way to "prove" anything to anyone, but I don't really care or want to do that either -- it's not about bragging rights, if that's what you implied; I just thought I 'd share a list of codebases I came across that I thought were interesting and worth of other people times. As for my job, and my work, you may want to check out my Github profile (https://github.com/markpapadakis https://github.com/markpapadakis) -- though there's only public stuff there. I guess I like to spend my free time learning instead of say, watching tv or waste time elsewhere:)
- hoosieree 9y agoYou can definitely skim codebases and get a feel for things like "no comments" or "names are in English", but for large codebases I doubt any single person could say they "understand" it in its entirety. It's hard to even make an observation like "names are meaningful" without a lot of context.
- rents 9y agoCan you also suggest how much time one can expect to spend on a particular codebase (which are listed) to get any meaningful take-aways? I am interested in exploring codebases now that I have sufficient experience and feel confident (and not initimidated). This will be useful because then I can start from the smaller (simpler) ones and move on to the complex ones later. Any recommended path, please do suggest.
- markpapadakis 9y agoIt depends on the size and what you are trying to do. For example, lately I 've spent maybe a week studying Lucene, and kept going back to it every other day, because I needed to understand pretty much everything about it, to get ideas for improving Trinity ( https://github.com/phaistos-networks/Trinity https://github.com/phaistos-networks/Trinity ). Some other codebases are so vast it takes a lot, lot longer to understand them enough to feel 'comfortable' navigating them (e.g the Unreal Engine codebase). Most codebases however are quite small, and within 1 hour, or a few, you 'll be able to understand where to go to find what you need, which are the primary data structures and functions, etc.
- antirez 9y agoAt least in regard to the Linux kernel, the interesting thing about this code base is that you can study the different sections separately. For instance the networking code, the VFS, the scheduler, are quite isolated from other stuff. However this also means that there is a variety of authors writing a variety of unrelated parts, in practical terms is a non uniform code base so it's hard to have an evaluation that works for everything. Btw, some of the parts I liked less are the ones written by Linus :-) Because he tends to make things a bit implicit in certain cases apparently. The VFS layer is an example.
- markpapadakis 9y agoExactly. This isolation ( though obviously they all make use of many core APIs ) makes it easier to focus on one component at a time. I didn’t like the VFS layer that much ;)
- geofft 9y agoI'm interpreting "finest codebase in [x, y category] that I've seen" to mean only what it says - out of the codebases he's seen, which may not be many, it's the finest. I tend to run into new large codebases pretty frequently just from having to work with them. I'd say that happens maybe once every month or two for me, and I'm not even prioritizing this. I literally didn't know Ruby two weeks ago and now I've read through RSpec because I needed to submit a patch to some RSpec tests that were doing something unusual. For a CTO who's listing all the things he's seen his entire career, is two dozen codebases really that surprising?
- p0nce 9y agoI'll echo the sentiment. In our working life we don't get to know many codebases in depth. And the ones we do know, it's not at all obvious if they are relevant, or a regular disposable mess.