Editing 378: Real Programmers
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 8: | Line 8: | ||
==Explanation== | ==Explanation== | ||
− | This comic | + | This comic satirises the mythical {{w|Real Programmer}}. To quote Wikipedia, "the term Real Programmer is computer programmers' folklore to describe the archetypical 'hardcore' programmer who eschews the modern languages and tools of the day in favour of more direct and efficient solutions". The implication is that modern programmers are coddled by today's tools of the trade, which eschew detailed understanding for simple workflows. {{w|GNU nano}} is a {{w|text editor}} - a program often used to edit the source code of other programs; it is modern, simple, and easy-to-use. {{w|Emacs}} and {{w|Vim (text editor)|Vim}} are also text editors, and {{w|ed (text editor)|ed}} is a {{w|line editor}}. These represent progressively more "old school" solutions to the problem of editing code. {{w|cat (Unix)|cat}} is a Unix program that concatenates and outputs the contents of files. Things get steadily more ridiculous from here. Using a magnetised needle to flip bits on a hard drive requires nanometric precision and intuitive mastery of binary code, but in the early days of programming people did use needles sometimes to fix bugs on {{w|Punched card|Punched cards}}. The use of a magnetized needle may also be a reference to the {{w|Apollo Guidance Computer|Apollo AGC guidance computer}}, whose instructions were physically written as patterns of wires looped around or through cylindrical magnets in order to record binary code. |
− | The first | + | The above-mentioned methods are the ones mentioned in the comic. The first is used by the Cueball-like guy sitting at his desk. The second guy who looks over the computer guy's shoulder, the Emacs guy, is the one with the punch line - typically the one represented by [[Cueball]]. Then follows [[Megan]], two [[:Category:Multiple Cueballs|more Cueball like guys]] and [[Hairbun]]. |
− | + | The final character (yet another Cueball look-alike) suggests the utterly surreal idea of using butterflies; he is just using the {{w|Butterfly effect in popular culture|Butterfly effect}}, a "phenomenon whereby a minor change in circumstances can cause a large change in outcome". The joke at this point relies on stretching the connection between the ideas of "difficult-to-use" and "requires detailed understanding of underlying principles", to suggest that not only do ''Real'' Programmers know everything about how computers work, but they know how to manipulate the ambient physical environment in elaborate ways to cause computers to do what they want, akin to performing {{w|trick shot}}s that accomplish feats of programming. | |
− | + | However, as the emacs Cueball from the first frame then comments, this type of programming has already been implemented as an emacs command, which is then mentioned by the cat Cueball: ''C-x M-c M-butterfly...'' To this the butterfly Cueball can only say ''Dammit, Emacs.'' as this has just proven that real programmers use emacs... | |
− | |||
− | |||
− | |||
− | |||
− | + | {{w|GNU Emacs}} is a popular editor known for its vast profusion of features and extensions to perform all sorts of functions beyond simple text editing, and is widely regarded as one of the best examples of software which succeeds despite being totally riddled with {{w|Feature creep|featuritis}}. It is likely that [[Randall]] really thought this was a great tool at the time of this comic. | |
− | + | Emacs commands are usually referred to by the key sequence required to activate them, such as "C-x M-c" (Control-x Meta-c, though this exact key sequence is a bit different from most Emacs commands). The macro referenced is a pun on the play/movie titled "{{w|M. Butterfly}}". The butterfly programmer saying "Dammit, Emacs" plays on Emacs' notoriety for its kitchen sink design approach of tossing in all the features and options that anybody might ever conceivably want. By way of example, later versions of Emacs actually added a totally useless "M-x butterfly" command as an easter egg, in reference to this very comic: see the [http://www.youtube.com/watch?v=OQtxhuX6ano YouTube demo] and [http://www.screenr.com/a2s screenr demo]. | |
− | + | To cap this the title text suggests manipulating the {{w|Physical constant|universal constants}} in order to create a universe in which the required computer data will exist. The programmers shown may even represent the fulfilment of this master programmers plan. The universe may have been designed in such a way that the programmers ancestry would result in his parents, who would meet and have a child, who would learn programming and eventually find himself in a position where he undertakes the task of creating a program, which fills the disk with the desired data. In tandem, of course, all of the people involved with creating and developing all the required hardware, software, raw materials, computer science, electricity, logic (etc., etc., etc.) would have to be part of the master plan. Put simply, it would probably be simpler just to use Emacs. To put it theologically this Real Programmer would be called God. | |
− | + | [[505: A Bunch of Rocks]] features Cueball as a ''Real'' Programmer, who designs the universe out of boredom as a simulation made of rocks. He would also be a God of our universe, although he did run it as a simulation just by setting the physical constants. | |
− | |||
− | |||
− | |||
− | |||
==Transcript== | ==Transcript== | ||
− | :[A Cueball | + | :[A Cueball like man sits at a computer, programming. Cueball (the protagonist of the story) stands behind him and looks over his shoulder.] |
:Cueball: <code>nano</code>? Real Programmers use <code>emacs</code>. | :Cueball: <code>nano</code>? Real Programmers use <code>emacs</code>. | ||
Line 39: | Line 31: | ||
:Megan: Hey. <u>Real</u> Programmers use <code>vim</code>. | :Megan: Hey. <u>Real</u> Programmers use <code>vim</code>. | ||
− | :[A second Cueball | + | :[A second Cueball like man appears behind her.] |
:Ed Cueball: Well, <u>Real</u> Programmers use <code>ed</code>. | :Ed Cueball: Well, <u>Real</u> Programmers use <code>ed</code>. | ||
− | :[A third Cueball | + | :[A third Cueball like man appears behind him.] |
:Cat Cueball: No, Real Programmers use <code>cat</code>. | :Cat Cueball: No, Real Programmers use <code>cat</code>. | ||
Line 48: | Line 40: | ||
:Hairbun: <u>Real</u> Programmers use a magnetized needle and a steady hand. | :Hairbun: <u>Real</u> Programmers use a magnetized needle and a steady hand. | ||
− | :[A fourth Cueball | + | :[A fourth Cueball like man enters, facing them all. We see him facing the last two Cueball like men and Hairbun.] |
:Butterfly Cueball: Excuse me, but <u>Real</u> Programmers use butterflies. | :Butterfly Cueball: Excuse me, but <u>Real</u> Programmers use butterflies. | ||
− | :[A Cueball | + | :[A Cueball like programmer is standing and holding out a butterfly in front of his computer. The butterfly flaps its wings.] |
− | :Butterfly Cueball ( | + | :Butterfly Cueball (narrating off-screen): They open their hands and let the delicate wings flap once. |
− | :[The next two panels are smaller | + | :[The next two panels are smaller and the two texts below are written uninterrupted respectively above and below both panels. The first panel is the Cueball like programmer with the butterfly, and above him four curved arrows pointing up or down. The second panel shows the upper atmosphere, with large clouds far below and the earth even further down. Also here are shown seven of the same type of arrows.] |
− | :Butterfly Cueball ( | + | :Butterfly Cueball (narrating off-screen): The disturbances ripple outward, changing the flow of the eddy currents in the upper atmosphere. |
− | :Butterfly Cueball ( | + | :Butterfly Cueball (narrating off-screen): These cause momentary pockets of higher-pressure air to form, |
− | :[ | + | :[Also the next two panels are smaller and the texts below are written uninterrupted above both panels. The first panel shows the atmosphere, again with clouds, and four parallel lines coming from above, and then they begin to merge, getting quite close at the bottom of the panel. The second panel shows the four lines merging on a driver platter.] |
− | :Butterfly Cueball ( | + | :Butterfly Cueball (narrating off-screen): Which act as lenses that deflect incoming cosmic rays, focusing them to strike the drive platter and flip the desired bit. |
− | :[All the programmers who | + | :[All the programmers who has commented so far stands in the order they have commented facing the last Cueball like man who slaps his forehead.] |
− | :Cueball: Nice. 'Course, there's an | + | :Cueball: Nice. 'Course, there's an Emacs command to do that. |
− | :Cat Cueball: Oh yeah! Good ol' | + | :Cat Cueball: Oh yeah! Good ol' C-x M-c M-butterfly... |
:Butterfly Cueball: Dammit, Emacs. | :Butterfly Cueball: Dammit, Emacs. | ||
Line 77: | Line 69: | ||
[[Category:Physics]] | [[Category:Physics]] | ||
[[Category:Rankings]] | [[Category:Rankings]] | ||
− |