Sure, if you modify one.cc (or.cpp) file at a time, you will only compile one file. And if you keep your sources short and your headers organised it wont take long anyway. But what if you modify a header file? In a library used by the whole application?
While I was working over summer, we regularly made changes to a core IDL file (hey, I wasn't the guy who put all the system interfaces in one file!) resulting in a 4-hour coffee-break on a decent PC And this was just the system layer and GUI. To rebuild everything (including embedded code for various modules) would take 12 hours or more.
Sure you may not recompile everything very often - but imagine what the 12 hours (or 4 hours) would be like if you used the 100 developers PCs on that floor alone. Of course, at some point - probably well before 100 - the cost of organising the distributed compile and transferring files around starts to negate the benefits.
How many full builds do *you* make before each release, when it can take months from initial feature freeze to release? How much will it affect your shipping date? (and how many $$ in wages are you paying people for those hour long coffee breaks all the time?:)
Sure, if you modify one .cc (or .cpp) file at a time, you will only compile one file. And if you keep your sources short and your headers organised it wont take long anyway. But what if you modify a header file? In a library used by the whole application?
While I was working over summer, we regularly made changes to a core IDL file (hey, I wasn't the guy who put all the system interfaces in one file!) resulting in a 4-hour coffee-break on a decent PC And this was just the system layer and GUI. To rebuild everything (including embedded code for various modules) would take 12 hours or more.
Sure you may not recompile everything very often - but imagine what the 12 hours (or 4 hours) would be like if you used the 100 developers PCs on that floor alone. Of course, at some point - probably well before 100 - the cost of organising the distributed compile and transferring files around starts to negate the benefits.
How many full builds do *you* make before each release, when it can take months from initial feature freeze to release? How much will it affect your shipping date? (and how many $$ in wages are you paying people for those hour long coffee breaks all the time?:)