Talk:312: With Apologies to Robert Frost
Since the wiki is so new, I thought I'd motivate a discussion about the topic here, first, rather than just blindly charging in and mucking up the text on the main page. Later, if there's no objection, I'll merge the points here into the main page.
A few clarifications.
- The description is flawed somewhat, in that Lisp (which adherents humorously "insist" means "Lots of Insidiously Silly Parens") is in fact very strict about matching parens. The problem is that parens are ubiquitous; every nontrivial expression starts with an opening paren, and ends with a close paren. This differs from Perl, which, depending on how it's written, may end with a semicolon, closing curly brace, or sometimes even another character.
- The comparison between Perl and Lisp is a little off the mark, too. Lisp is a very simple language (structurally; I shan't vouch for conceptually) which has the "elegant" characteristic that programs and data are essentially the same thing: lists of sub-expressions. It is quite easy for a Lisp program to build a data structure which is itself a runnable program. This "feature" is frequently exploited in artificial intelligence circles. Perl, on the other hand, is a haphazard accretion of syntactic oddities so complex that the grammmar cannot be modeled using standard compiler tools. On the other hand, it can, with an economy of syntax, perform some very powerful operations, and has a vast library of utility functions that make very complex operations "easy" to do.
Now, putting on the Opinion hat, my take is that the suggestion that the universe is written in Perl refers to the "messiness" of physics, chaos theory, and the like, somehow being attributed to the quirks surfaced by the implementation; if it were to be done again the comparative "elegance" of Lisp would, one is led to believe, result in a universe that at some fundamental level was simpler and more consistent, with predictable beginning and end.
- To what degree is the rigidity of matching parentheses a feature of Lisp and not a feature of specific implementations of it? I remember one of my professors telling me that they used to just throw a bunch of parentheses at the end of the program. I know in at least one implementation, there is at least a variable that, when true, causes the interpreter to ignore extra right parentheses. As for Perl, if you wish to add more information to the explanation about it, then I'd say go ahead. However, at present there's not really any comparison between the two languages at all in the text. I didn't feel that it was especially necessary to understand the details of Perl to get the comic, so I didn't describe it beyond calling it a popular computer programming language. Erenan (talk) 12:03, 1 August 2012 (EDT)