Difference between revisions of "1833: Code Quality 3"

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
m (fixed typo: changed "no" to "not".)
m (Explanation: Spelling/case (ref. <https://en.wikipedia.org/wiki/JavaScript> and <http://en.wikipedia.org/wiki/Forth_%28programming_language%29>).)
Line 21: Line 21:
 
   ]
 
   ]
  
{{w|Alan Turing}} was a British theoretical computer scientist, often considered the father of the field. His [https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf 1936 paper] outlined Turing machines, a theoretical model for computing, as well as computability and the halting problem. Theoretical computer science is very different from practical coding; understanding the contents of the paper would not at all help a coder to understand today's algorithms, design patterns, and best practices. This is not helped by a page of Javascript example code. {{w|Javascript}} is a popular programming language which makes web pages responsive to user inputs, and while Javascript arguably solves the problem in a practical manner (as opposed to Turing's very theoretical work), it does get a lot of criticism - for instance it is {{w|Strong and weak typing|nearly untyped}}, which allows the programmer to do very interesting things, like {{w|JSFuck}}. Then, example code is used to explain a concept in programming or demonstrate how a program works, but it does not actually run on any computer. "Guessing everything in between" would involve attempting to write code using skills that could range anywhere from the most basic programming to Turing's extremely advanced ideas.
+
{{w|Alan Turing}} was a British theoretical computer scientist, often considered the father of the field. His [https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf 1936 paper] outlined Turing machines, a theoretical model for computing, as well as computability and the halting problem. Theoretical computer science is very different from practical coding; understanding the contents of the paper would not at all help a coder to understand today's algorithms, design patterns, and best practices. This is not helped by a page of JavaScript example code. {{w|JavaScript}} is a popular programming language which makes web pages responsive to user inputs, and while JavaScript arguably solves the problem in a practical manner (as opposed to Turing's very theoretical work), it does get a lot of criticism - for instance it is {{w|Strong and weak typing|nearly untyped}}, which allows the programmer to do very interesting things, like {{w|JSFuck}}. Then, example code is used to explain a concept in programming or demonstrate how a program works, but it does not actually run on any computer. "Guessing everything in between" would involve attempting to write code using skills that could range anywhere from the most basic programming to Turing's extremely advanced ideas.
  
 
In the final panel, Ponytail references {{w|leet|leet-speak}}, in which symbols are replaced with similar-looking symbols, and a {{w|manifesto}}, a statement of a person or group's beliefs and intentions. A manifesto from a survivalist cult leader might be nonsensical, even before being translated to leet-speak. Memory allocation is a low-level computer programming concept; most modern languages have features that take care of memory allocation for the programmer, possibly implying that Cueball does not know how to use these features.
 
In the final panel, Ponytail references {{w|leet|leet-speak}}, in which symbols are replaced with similar-looking symbols, and a {{w|manifesto}}, a statement of a person or group's beliefs and intentions. A manifesto from a survivalist cult leader might be nonsensical, even before being translated to leet-speak. Memory allocation is a low-level computer programming concept; most modern languages have features that take care of memory allocation for the programmer, possibly implying that Cueball does not know how to use these features.
Line 29: Line 29:
 
{{w|Forth_(programming_language)#Programmer.27s_perspective|Forth}} is an old programming language that tends to be difficult to read. It is stack-based, meaning that values to be operated on are moved on a {{w|Stack (abstract data type)|stack}} before the operation to be performed is given. Using stacks can be considered different from programming languages that resemble natural human language (e.g. {{w|COBOL}}). While stack-based computing makes some problems very simple (for example, it is relatively simple to design a Forth compiler, or reversing the order of an array) and uses less computing resources, such programming languages are not easy to learn.  Since Forth allows the programmer to rewrite the language, or define their own language, and it does not enforce restrictions like data types, it may be especially easy for novices to write cryptic code.
 
{{w|Forth_(programming_language)#Programmer.27s_perspective|Forth}} is an old programming language that tends to be difficult to read. It is stack-based, meaning that values to be operated on are moved on a {{w|Stack (abstract data type)|stack}} before the operation to be performed is given. Using stacks can be considered different from programming languages that resemble natural human language (e.g. {{w|COBOL}}). While stack-based computing makes some problems very simple (for example, it is relatively simple to design a Forth compiler, or reversing the order of an array) and uses less computing resources, such programming languages are not easy to learn.  Since Forth allows the programmer to rewrite the language, or define their own language, and it does not enforce restrictions like data types, it may be especially easy for novices to write cryptic code.
  
A {{w|cryptogram}} is a cipher puzzle, generally one easy enough to be solved manually. The title text implies that the code is so bad that it looks like unreadable FORTH code that is missing random characters.
+
A {{w|cryptogram}} is a cipher puzzle, generally one easy enough to be solved manually. The title text implies that the code is so bad that it looks like unreadable Forth code that is missing random characters.
  
 
==Transcript==
 
==Transcript==

Revision as of 12:42, 21 July 2019

Code Quality 3
It's like a half-solved cryptogram where the solution is a piece of FORTH code written by someone who doesn't know FORTH.
Title text: It's like a half-solved cryptogram where the solution is a piece of FORTH code written by someone who doesn't know FORTH.

Explanation

This comic is the third in the Code Quality series and is a direct continuation of 1695: Code Quality 2 released a good year before this one. It was followed almost half a year later by 1926: Bad Code, where the name changed but the code quality did not. Again in this comic, as in the previous, Cueball does not directly appear, only speaking off-panel; however, as it is a continuation of the series, it is clear that this is Cueball's code.

In the first panel, Ponytail references query strings, which store information, such as search queries or page numbers, relevant to the URL. Query strings are not meant to be especially human-readable, so a song based on one would likely not be a good one.

A tactical flashlight is a light that can be mounted on a gun for use in low-light scenarios. They tend to be very durable and very bright. Different models have different features and capabilities, so they are given cool-sounding model numbers. JSON (JavaScript Object Notation) is a subset of JavaScript used, by many programming languages, as a convenient way of recording structured data. It's not clear what else would be in the table (tables typically have more than one column) and JSON technically has arrays and objects (dictionaries) but not tables, but a JSON array of objects of these model numbers would look something like:

 [ { "model": "TACT X700"},
   { "model": "Atomic Beam USA 5000" },
   { "model": "E2D LED Defender" },
   { "model": "J5 Tactical V1-Pro" }
 ]

Alan Turing was a British theoretical computer scientist, often considered the father of the field. His 1936 paper outlined Turing machines, a theoretical model for computing, as well as computability and the halting problem. Theoretical computer science is very different from practical coding; understanding the contents of the paper would not at all help a coder to understand today's algorithms, design patterns, and best practices. This is not helped by a page of JavaScript example code. JavaScript is a popular programming language which makes web pages responsive to user inputs, and while JavaScript arguably solves the problem in a practical manner (as opposed to Turing's very theoretical work), it does get a lot of criticism - for instance it is nearly untyped, which allows the programmer to do very interesting things, like JSFuck. Then, example code is used to explain a concept in programming or demonstrate how a program works, but it does not actually run on any computer. "Guessing everything in between" would involve attempting to write code using skills that could range anywhere from the most basic programming to Turing's extremely advanced ideas.

In the final panel, Ponytail references leet-speak, in which symbols are replaced with similar-looking symbols, and a manifesto, a statement of a person or group's beliefs and intentions. A manifesto from a survivalist cult leader might be nonsensical, even before being translated to leet-speak. Memory allocation is a low-level computer programming concept; most modern languages have features that take care of memory allocation for the programmer, possibly implying that Cueball does not know how to use these features.

At this point Cueball, quickly becoming impatient with Ponytail's sass in what is supposed to be a formal code review, retorts that if she can't start giving him the constructive criticism that he's looking for, he can always find someone else to replace her. Ponytail smugly responds that nobody else would be able to stomach his code for more than one sitting, and that she's the only one he's got.

Forth is an old programming language that tends to be difficult to read. It is stack-based, meaning that values to be operated on are moved on a stack before the operation to be performed is given. Using stacks can be considered different from programming languages that resemble natural human language (e.g. COBOL). While stack-based computing makes some problems very simple (for example, it is relatively simple to design a Forth compiler, or reversing the order of an array) and uses less computing resources, such programming languages are not easy to learn. Since Forth allows the programmer to rewrite the language, or define their own language, and it does not enforce restrictions like data types, it may be especially easy for novices to write cryptic code.

A cryptogram is a cipher puzzle, generally one easy enough to be solved manually. The title text implies that the code is so bad that it looks like unreadable Forth code that is missing random characters.

Transcript

[Ponytail sitting in front of a computer screen typing. Cueball speaks only off-panel, but since this is a direct continuation of comic 1513 and 1695: Code Quality and Code Quality 2 where Cueball is shown, there can be no doubt it is him.]
Ponytail: Your code looks like song lyrics written using only the stuff that comes after the question mark in a URL.
Cueball (off-panel): Sorry.
[Zoom in on Ponytail's upper body.]
Ponytail: It's like a JSON table of model numbers for flashlights with "tactical" in their names.
[Zoom back out again. Ponytail has lifted her hands off the table and is slightly leaning back against the chair.]
Ponytail: Like you read Turing's 1936 paper on computing and a page of JavaScript example code and guessed at everything in between.
[Zoom in again on Ponytail's face.]
Ponytail: It's like a leet-speak translation of a manifesto by a survivalist cult leader who's for some reason obsessed with memory allocation.
Cueball (off-panel): I can get someone else to review my code.
Ponytail: Not more than once, I bet.


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

Discussion

I think the FORTH in the title text also references the CIA statue, which is a cryptogram with 3 parts solved and the fourth part remains unsolved. Possibly also the date May fourth, which was a popular topic on reddit because of Star Wars (and because this comic was posted just after May 4). 173.245.50.102 18:33, 5 May 2017 (UTC)

No. Unlike the computer on which the Forth language was developed, comics allow words with more than 5 letters to be used, so if it was a reference to these it would have been spelled 'Fourth'. The programming language would also have been spelled that way if Chuck Moore had had a decent computer (but maybe then he wouldn't have invented the language). He reckoned it was a fourth-generation language, superseding third-gen languages like C or Pascal. We all have blind spots about the potential of our pet projects. Or kids. 162.158.38.28 13:01, 8 January 2020 (UTC)

I know Elonka (the CIA Kryptos expert), and I think she'd disagree. 172.68.54.58 15:37, 6 May 2017 (UTC)

Please describe JSON table. Apparently it's some type of programming language that is so popular that Google can't find a definition among all the examples.--162.158.62.21 17:11, 6 May 2017 (UTC)

Could the reference to "tactical" flashlights be a dig at the current practice of taking a standard flashlight and adding things like crenelated bezels, high-powered LEDs, multiple flashing modes, heavy casings etc.? "Tactical" has turned into a nearly meaningless advertising buzzword, as a current search on Amazon ("tactical flashlight") turns up over 20,000 listings.These Are Not The Comments You Are Looking For (talk) 03:44, 7 May 2017 (UTC)

Does the timing of Halley's comet meteor shower apply to the last panel? Amber (talk) 18:28, 7 May 2017 (UTC)

As I review this series of comics, I really wonder if the text is intended to be set to music, and if so what pop song it scans against. Any takers? JohnHawkinson (talk) 06:13, 12 May 2017 (UTC)

I believe this comic strip is a reference to the Deadpool movie, in which the main character, Wade, is given a battery of insults by his best friend. If you look at the behind the scenes footage, you will see that the person giving the insults actually has a much longer barrage of insults before Deadpool ultimately states his impatience, and that the list of insults was actually quite enough as-is. Watch it and you will see the similarities.172.68.146.14 10:51, 19 January 2018 (UTC)