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 (<a href="https://gwern.net/doc/cs/algorithm/1982-perlis.pdf" rel="nofollow noreferrer">https://gwern.net/doc/cs/algorithm/1982-perlis.pdf</a>) you can see it has transcription errors and omits a bunch - it just drops the last 10! Perlis goes to 1<i>3</i>0, not 120!
Related. Is there a definitive year for this btw?<p><i>Perlisms – “Epigrams in Programming”</i> - <a href="https://news.ycombinator.com/item?id=33702150">https://news.ycombinator.com/item?id=33702150</a> - Nov 2022 (8 comments)<p><i>Epigrams in Programming</i> - <a href="https://news.ycombinator.com/item?id=32176598">https://news.ycombinator.com/item?id=32176598</a> - July 2022 (1 comment)<p><i>Epigrams in Programming</i> - <a href="https://news.ycombinator.com/item?id=25984343">https://news.ycombinator.com/item?id=25984343</a> - Feb 2021 (1 comment)<p><i>Epigrams in Programming (1982)</i> - <a href="https://news.ycombinator.com/item?id=20628827">https://news.ycombinator.com/item?id=20628827</a> - Aug 2019 (24 comments)<p><i>Epigrams in programming (1982)</i> - <a href="https://news.ycombinator.com/item?id=8674919">https://news.ycombinator.com/item?id=8674919</a> - Nov 2014 (7 comments)<p><i>Epigrams in Programming</i> - <a href="https://news.ycombinator.com/item?id=3613900">https://news.ycombinator.com/item?id=3613900</a> - Feb 2012 (2 comments)<p><i>Perlisisms - "Epigrams in Programming" by Alan J. Perlis</i> - <a href="https://news.ycombinator.com/item?id=1701683">https://news.ycombinator.com/item?id=1701683</a> - Sept 2010 (2 comments)<p><i>Perlisisms - "Epigrams in Programming" [repost]</i> - <a href="https://news.ycombinator.com/item?id=1277519">https://news.ycombinator.com/item?id=1277519</a> - April 2010 (2 comments)<p><i>"Epigrams in Programming" by Alan J. Perlis (ACM SIGPLAN Sep-82)</i> - <a href="https://news.ycombinator.com/item?id=482630">https://news.ycombinator.com/item?id=482630</a> - Feb 2009 (3 comments)
This reminds me a lot of "Bumper Sticker Computer Science" from Programming Pearls (1985):<p><a href="https://moss.cs.iit.edu/cs100/Bentley_BumperSticker.pdf" rel="nofollow noreferrer">https://moss.cs.iit.edu/cs100/Bentley_BumperSticker.pdf</a>
Love it! I keep a similar set of quotes. Lots of fun. <a href="https://snarfed.org/software-engineering-quotes" rel="nofollow noreferrer">https://snarfed.org/software-engineering-quotes</a>
> 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.<p>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.
<i>"It is easier to write an incorrect program than understand a correct one."</i><p>That's why it's harder to write a fully typed program in TypesScript than just hack it JavaScript.<p>A static type system will show you edge cases; probably more than you encounter in practice, but also the few that you will.
Do we have this one yet?<p>> <i>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.</i>
This will resonate with any programmer who's known the frustration of asking for time from management to execute a comprehensive code refactoring.<p>> 105. You can't communicate complexity, only an awareness of it.
> 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.<p>How does this need to be rewritten in the sight of Dall-E, Midjourney and friends?
> 51. Bringing computers into the home won’t change either one, but may revitalize the corner saloon.<p>Maybe of these are great, but X-D that one didn’t age well.
Mostly really good, but I have a problem with this one:<p>> 67. Think of all the psychic energy expended in seeking a fundamental distinction between “algorithm” and “program”.<p>I mean... it's semantics but I feel like taking the bait here. I have a weird concept of fun.<p>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.<p>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.<p>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.
> There will always be things we wish to say in our programs that in all known languages can only be said poorly.<p>And that, folks, is why I am studying programming languages for my PhD.
#/usr/bin/env jokelang --dialect punlang<p>Did Perlis diss Perl, or miss Perl?<p>Is Perl A. Perlis language?<p>Perl is a language Perlis did miss.<p>#Please don't diss, this was a chance too good to miss.