303: Compiling

Explain xkcd: It's 'cause you're dumb.
Revision as of 02:48, 6 April 2015 by 173.245.50.140 (talk)
Jump to: navigation, search
Compiling
'Are you stealing those LCDs?' 'Yeah, but I'm doing it while my code compiles.'
Title text: 'Are you stealing those LCDs?' 'Yeah, but I'm doing it while my code compiles.'

Explanation

Programming is essentially writing instructions for a computer to follow, in a specific programming language, which is designed to be human readable to make the programmers' job easier. However, for the computers to follow these instructions, they need to be translated into machine code— a "language" that computers "speak". Such conversion from human-readable source code into computer-executable filesis performed by (compilers), and takes certain time — depending on the size of the project and the power of the computer doing the compilation, it may measure in hours. As of 2015 the Linux Kernelcontains over 19 million lines of code, a massive job for any compiler.

In general, programming languages are implemented in two ways: interpreters and compilers. Interpreters convert the code at the time when it is currently running (PHPfor one example), but compilers convert the source code all at once into executable files. After compiling, the resulting code will run much faster than interpreted code, since it has already been translated into the proper binary language. However, compiling code can take a long time, especially if the compiler is set up to correct syntax errors. When Cueball is caught wasting time at work, he argues that such pastime is not any worse than any other at this moment, as no modifications can be made to the code that he should otherwise be working on until it finishes compiling, anyway.

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 LCDmonitors.

Transcript

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.


comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!

Discussion

I was sooo amused when I heard about the most common error report when Delphi was released to the linux platform: "the compile button doesn't do anything"...

The "fix" was to introduce a checkbox that defaulted to not close the compile window once complete :-)

For being so open-sourced they are quite close-minded ;-)

Usually interpreters don't create any code but use the source language as instructions to the interpreter. The situation is complicated by the existence of compilers which compile to an intermediate code (Java byte code for example), then compile the byte code to machine code.

Jstout (talk) 21:54, 13 December 2013 (UTC) 141.101.81.4 07:04, 10 November 2013 (UTC)Nicklas

(In response to the JavaByte thing, whoever said that) I just revamped the explanation (because it looked like two different explanations mashed together). Now it's not repetitious, but longer than I had intended it to be. It would have been even longer had I gone into Java, so I left that out. However, I would say that Java (human writable) source code is 'compiled' into Javabyte code, which is then 'interpretted' by the Java Engine on the end-user's machine. But the original compilation puts it in an easier-to-interpret form than any human-written version would be, even whilst being still flexible across differing platforms. However, it can be a fuzzy line, these days, what exactly does what. YMMV. 141.101.99.114 00:30, 8 September 2015 (UTC)

"Liquid Crystal Display Displays" This bothers me. 173.245.55.85 19:59, 13 March 2014 (UTC)

https://en.wikipedia.org/wiki/RAS_syndrome -- Wesha (talk) 19:36, 11 May 2015 (UTC)

Made it into a wiki link and removed Displays. Kynde (talk) 20:10, 28 March 2014 (UTC)