[HN Gopher] Epigrams in Programming
       ___________________________________________________________________
        
       Epigrams in Programming
        
       Author : ustad
       Score  : 55 points
       Date   : 2023-12-22 08:34 UTC (1 days ago)
        
 (HTM) web link (cpsc.yale.edu)
 (TXT) w3m dump (cpsc.yale.edu)
        
       | dang wrote:
       | Related. Is there a definitive year for this btw?
       | 
       |  _Perlisms - "Epigrams in Programming"_ -
       | https://news.ycombinator.com/item?id=33702150 - Nov 2022 (8
       | comments)
       | 
       |  _Epigrams in Programming_ -
       | https://news.ycombinator.com/item?id=32176598 - July 2022 (1
       | comment)
       | 
       |  _Epigrams in Programming_ -
       | https://news.ycombinator.com/item?id=25984343 - Feb 2021 (1
       | comment)
       | 
       |  _Epigrams in Programming (1982)_ -
       | https://news.ycombinator.com/item?id=20628827 - Aug 2019 (24
       | comments)
       | 
       |  _Epigrams in programming (1982)_ -
       | https://news.ycombinator.com/item?id=8674919 - Nov 2014 (7
       | comments)
       | 
       |  _Epigrams in Programming_ -
       | https://news.ycombinator.com/item?id=3613900 - Feb 2012 (2
       | comments)
       | 
       |  _Perlisisms - "Epigrams in Programming" by Alan J. Perlis_ -
       | https://news.ycombinator.com/item?id=1701683 - Sept 2010 (2
       | comments)
       | 
       |  _Perlisisms - "Epigrams in Programming" [repost]_ -
       | https://news.ycombinator.com/item?id=1277519 - April 2010 (2
       | comments)
       | 
       |  _" Epigrams in Programming" by Alan J. Perlis (ACM SIGPLAN
       | Sep-82)_ - https://news.ycombinator.com/item?id=482630 - Feb 2009
       | (3 comments)
        
         | mlochbaum wrote:
         | I believe this is the original publication, 1982:
         | https://dl.acm.org/doi/10.1145/947955.1083808
        
           | spenczar5 wrote:
           | Ah, the age - 41 years! - explains a lot and makes me so much
           | more forgiving of these. They certainly come from another
           | era.
        
             | CoastalCoder wrote:
             | I stopped reading around #60, but I've gotta say that the
             | first 40 or so really resonated with me.
        
         | o11c wrote:
         | The (1982) seems legit, at least for the collection. However,
         | the Yale site is incomplete, stopping at 120 instead of 130.
         | 
         | Canonical location is https://doi.org/10.1145/947955.1083808
         | leads to https://dl.acm.org/doi/10.1145/947955.1083808 (preview
         | page, incomplete and not text-selectable), PDF link
         | https://dl.acm.org/doi/pdf/10.1145/947955.1083808 is seems to
         | have text data though?
         | 
         | https://web.archive.org/web/20180827170243/http://thecoremem...
         | is a reformatted text PDF of the full version, and
         | https://web.archive.org/web/20230127130734/http://pu.inf.uni...
         | is a full HTML version, which only went offline this year.
         | 
         | https://en.wikipedia.org/wiki/Epigrams_on_Programming
        
           | dahart wrote:
           | > stopping at 120 instead of 130
           | 
           | Maybe that's somewhat reasonable (?) given the last nine are
           | epigram epigrams, not directly about programming...
           | If there are epigrams, there must be meta-epigrams.
           | 122. Epigrams are interfaces across which appreciation and
           | insight flow.       123. Epigrams parametrize auras.
           | 124. Epigrams are macros, since they are executed at read
           | time.       125. Epigrams crystallize incongruities.
           | 126. Epigrams retrieve deep semantics from a data base that
           | is all procedure.       127. Epigrams scorn detail and make a
           | point: They are a superb high-level documentation.       128.
           | Epigrams are more like vitamins than protein.       129.
           | Epigrams have extremely low entropy.       130. The last
           | epigram? Neither eat nor drink them, snuff epigrams.
        
             | o11c wrote:
             | But that's no excuse for omitting "121. In seeking the
             | unattainable, simplicity only gets in the way."
        
       | leecoursey wrote:
       | This reminds me a lot of "Bumper Sticker Computer Science" from
       | Programming Pearls (1985):
       | 
       | https://moss.cs.iit.edu/cs100/Bentley_BumperSticker.pdf
        
         | quercusa wrote:
         | Good advice for 1985:
         | 
         | Allocate four digits for the year part of a date: a new
         | millennium is coming.
         | 
         |  _David Martin_
         | 
         |  _Norristown, Pennsylvania_
        
       | snarfed wrote:
       | Love it! I keep a similar set of quotes. Lots of fun.
       | https://snarfed.org/software-engineering-quotes
        
         | olooney wrote:
         | Ha! I'm going to steal some of these for my list:
         | https://www.oranlooney.com/quotes/
        
       | amadeuspagel wrote:
       | > 10. Get into a rut early: Do the same process the same way.
       | Accumulate idioms. Standardize. The only difference(!) between
       | Shakespeare and you was the size of his idiom list - not the size
       | of his vocabulary.
       | 
       | A beautiful thought and I would add that Shakespeare only wrote
       | in english, developing his ability in that beautiful if messy
       | language further and further, rather then trying all sorts of
       | different languages to gain different perspectives on writing.
        
       | k__ wrote:
       | _" It is easier to write an incorrect program than understand a
       | correct one."_
       | 
       | That's why it's harder to write a fully typed program in
       | TypesScript than just hack it JavaScript.
       | 
       | A static type system will show you edge cases; probably more than
       | you encounter in practice, but also the few that you will.
        
       | gwern wrote:
       | This version shouldn't be linked, even though it's the canonical
       | one everyone links, because it's bad. If you check it against the
       | original paper
       | (https://gwern.net/doc/cs/algorithm/1982-perlis.pdf) you can see
       | it has transcription errors and omits a bunch - it just drops the
       | last 10! Perlis goes to 1 _3_ 0, not 120!
        
         | smitty1e wrote:
         | #131 HTML rhymes with 'hell' for a reason.
        
         | fuzztester wrote:
         | Your arithmetic is off by orders of magnitude.
         | 
         | 120! - 130 is not 10!
        
         | Y_Y wrote:
         | Worse is better
        
         | fuzztester wrote:
         | Reading the epigrams,
         | 
         | a flash of insight:
         | 
         | Perlis was a secret Zen master.
        
           | spenczar5 wrote:
           | You know, I dismissed these too easily in a different
           | comment. Thinking of them as koans - containing
           | contradictions, not holding truth, but revealing insights via
           | the reader's debate and struggle and resistance - makes me
           | like them a lot more!
        
             | fuzztester wrote:
             | he
             | 
             | https://translate.google.com/?sl=auto&tl=ja&text=heh&op=tra
             | n...
             | 
             | Make sure to press the speaker icon in the lower box. ;)
        
             | zem wrote:
             | or, in perlis's own words:
             | 
             | > 125. Epigrams crystallize incongruities.
        
       | klik99 wrote:
       | Mostly really good, but I have a problem with this one:
       | 
       | > 67. Think of all the psychic energy expended in seeking a
       | fundamental distinction between "algorithm" and "program".
       | 
       | I mean... it's semantics but I feel like taking the bait here. I
       | have a weird concept of fun.
       | 
       | I've always understood it as a program takes external input
       | and/or gives external output (like keyboard presses, display to
       | screen, write to disk, etc) whereas an algorithm is self
       | contained and can run on any turing machine regardless of
       | capabilities.
       | 
       | Basically "Side Effects", but I avoided using that phrase because
       | input isn't clearly a side effect, but if your semantics don't
       | require no side effects for an algorithm, then yeah a program is
       | functionally equivalent to an algorithm.
       | 
       | Mostly semantics don't capital-M Matter, but can be important to
       | clarify meanings. Depending on what project/team I'm working on I
       | can have completely incompatible definitions of the same word in
       | the same day.
        
         | 082349872349872 wrote:
         | Instead of attempting to offer a distinction between algorithm
         | and program, how about the following relations?
         | spec -< algorithm -< program -< executable
         | 
         | where each (a -< b) says both that b implements a and that
         | there are almost always multiple valid potential bs for any
         | given a.
        
       | jhncls wrote:
       | > 39. Re graphics: A picture is worth 10K words - but only those
       | to describe the picture. Hardly any sets of 10K words can be
       | adequately described with pictures.
       | 
       | How does this need to be rewritten in the sight of Dall-E,
       | Midjourney and friends?
        
         | 082349872349872 wrote:
         | It doesn't. Consider the first 10k words in my /usr/dict/words
         | equivalent.
         | 
         | They start:                   A         a         aa
         | aal
         | 
         | and end:                   anticonductor
         | anticonfederationist         anticonformist
         | anticonscience
         | 
         | How do you want to describe those with a picture?
         | 
         | (ok, these days one could make a long, thin screen shot, but a
         | non-trivial picture, that doesn't factor through a textual
         | representation? Even representing the 8 strings given here via
         | graphics sounds iffy to me...)
        
         | AnimalMuppet wrote:
         | It doesn't need to be rewritten at all. I can ask Dall-E for a
         | picture that conveys the meaning of the Sermon on the Mount,
         | say, or of Einstein's 1905 paper on special relativity.
         | Whatever I get will not convey the content that the sermon or
         | the paper convey - not even close.
        
         | dahart wrote:
         | That epigram is referring to a fundamental asymmetry of
         | information between words and pictures. Having a machine that
         | can come up with many different pictures from a few words
         | doesn't only not say anything about how to make a picture from
         | _any_ 10K words, it somewhat reinforces the epigram's point.
         | 
         | Those models may be more adequately described by #63: When we
         | write programs that "learn", it turns out that we do and they
         | don't.
        
       | Applejinx wrote:
       | Proto-buzzfeed? I guess this is like other forms of candy: it's
       | great that it exists and you still shouldn't eat it.
        
       | 082349872349872 wrote:
       | Do we have this one yet?
       | 
       | > _70. Over the centuries the Indians developed sign language for
       | communicating phenomena of interest. Programmers from different
       | tribes (FORTRAN, LISP, ALGOL, SNOBOL, etc.) could use one that
       | doesn't require them to carry a blackboard on their ponies._
        
       | dahart wrote:
       | > 51. Bringing computers into the home won't change either one,
       | but may revitalize the corner saloon.
       | 
       | Maybe of these are great, but X-D that one didn't age well.
        
       | fuzztester wrote:
       | #/usr/bin/env jokelang --dialect punlang
       | 
       | Did Perlis diss Perl, or miss Perl?
       | 
       | Is Perl A. Perlis language?
       | 
       | Perl is a language Perlis did miss.
       | 
       | #Please don't diss, this was a chance too good to miss.
        
       | ashton314 wrote:
       | > There will always be things we wish to say in our programs that
       | in all known languages can only be said poorly.
       | 
       | And that, folks, is why I am studying programming languages for
       | my PhD.
        
       | zem wrote:
       | this one is very thought-provoking:
       | 
       | > 4. Every program is a part of some other program and rarely
       | fits.
        
       ___________________________________________________________________
       (page generated 2023-12-23 23:01 UTC)