Title text: 'Are you stealing those LCDs?' 'Yeah, but I'm doing it while my code compiles.'
Computer programming involves writing instructions for a computer to follow, in a specific programming language, which is largely human readable and writable, at least to programmers who understand that language. However, for the computers to follow instructions, they need to be given machine code — the actual "language" that computers "speak" and one that can be written directly with the correct tools, but would be too tedious and error-prone for just about any practical modern project where alternatives exist, where anything more than a Hello World could be awkward to implement straight into machine-code.
Conversion from the more conveniently human-writable code into computer-executable files is performed by interpreters or compilers. Interpreters (e.g. that for PHP for one example) generally read through the code, or script, each line at a time as and when required, and has to do a lot of work with various processing overheads and the risk of hitting an invalid instruction or mistake in syntax that it can't handle. It also requires that a relevant version of the interpreter exist on any machine that has to run the script and perhaps some additional knowledge by the end-user.
For widely distributed (and especially commercial) programs, some form of compilation will instead be used. Compiling may have just one computer system read through the man-written code and (barring errors) produces the equivalent stand-alone and direct machine-readable code, suitable for a given range of computers. This process might involve several passes to check for 'obvious' errors in the code, as well as converting some programming concepts that are easiest for humans to understand into equivalent concepts that may be far easier for the computer to work with.
As such, compiling takes a certain amount of time at the time of production. Depending on the size of the project and the power of the computer doing the compilation, it may measure in hours, but at least only needs to be repeated if an untrapped error needs fixing or additional features added in at a later date. As of 2015 the Linux Kernel contains over 19 million lines of code, arguably a massive job for any compiler, but if done correctly it saves time for all the people who will ultimately be using its output.
Thus, when Cueball is caught wasting time at work, he argues that such activities are not worse than any other possible ones, at this moment. If his job is writing code and compiling it, then there may be nothing else that he can do right now. He cannot usefully tweak the code before it finishes compiling and the expected result checked.
The title text takes this a step further. Cueball claims that all activities are equally benign while the code is compiling — and that includes committing illegal acts, such as stealing LCDs.
- The #1 Programmer Excuse for Legitimately Slacking Off: "My code's compiling."
- [Two programmers are sword-fighting on office chairs in a hallway. An unseen manager calls them back to work through an open office door.]
- Manager: Hey! Get back to work!
- Cueball: Compiling!
- Manager: Oh. Carry on.
add a comment! ⋅ add a topic (use sparingly)! ⋅ refresh comments!