
Peter Norvig on a 45-year-old article about a checkers-playing program - mayoff
http://blogs.scientificamerican.com/at-scientific-american/2011/08/23/systems-analysis-look-back-1966-scientific-american-article/
======
norvig
Aw shucks, guys ... you make me blush with your compliments.

Tell you what, Ill make a deal: I'll keep writing if you keep reading. K?

~~~
pchristensen
Deal. You promise?

Since you're here, what do you feel like is a bigger constraint for Google (or
the worldwide technical economy) - software engineering discipline or computer
science fundamentals? I understand that you work in research, but for a hugely
profitable company, so you have the insight to give a good answer.

~~~
norvig
Promise.

Good question. I think the engineering discipline part is much harder. I'm not
sure that is because the problems really _are_ harder: messier, ill-defined,
changing over time; or whether it is that the academic community has focused
on more well-defined formal/fundamental questions and mostly nailed them, so
what we're left with is the harder messier stuff. Certainly it is easier for
me to find someone to hire fresh out of college who has excellent CS
fundamentals than to find someone with strong engineering discipline. And
while my title included "Research", we all work very closely with Engineering.

------
Lewisham
The more I read from Norvig, the more I am convinced that history will judge
him as being one of the most influential computer scientists of the post-
Turing era.

His ability to find elegant solutions in the hardest looking problems, and
communicate them so well that you feel it was _so obvious_ that you should
have found it immediately, is unparalleled.

~~~
davmre
Norvig is an excellent popularizer and accessible writer, and of course also a
very sharp researcher. Because he works in industry I can understand why he
might have a higher profile on a site like HN. But "most influential of the
post-Turing" era is an incredibly high bar. His personal research
contributions are (afaik) on par with what you would expect of a professor at
a top school, e.g. Berkeley, where he used to work. But there are hundreds of
such people, even just within AI; I think it's only fair to recognize their
achievements and influence as well. Personally, my vote for most influential
would probably go to someone on the Turing award list...
(<http://en.wikipedia.org/wiki/Turing_Award>)

This is not to dump on Norvig at all - he's smarter and more accomplished than
I'll ever be, and between the popularity of his internet writings and his co-
authored textbook being used in pretty much every undergraduate AI class
taught in the past 20 years, he's certainly one of the most widely read
computer scientists of all time; probably more people have read his work than
ever read Turing's. I just want to push back a bit on the culture of
idolization and hero worship that sometimes develops around popular scientists
(see also: Feynman, though he did at least win a Nobel prize); it tends to
blind people to the true depth of talent and knowledge that exists in the
world.

~~~
rudiger
You've articulated this much better than my (admittedly ham-fisted) response.

------
ajb
"CPL was so new that it had no compiler, nor a complete formal description.
Journal articles from 1963 and 1968 and a posthumously published set of notes
from 2000 partially describe versions of the language that are slightly
different than the one presented in the article."

Apparently a formal definition was finally written down in "CPL working
papers", but this was never published. The only place I know which has a copy
is the Bodleian library at Oxford:

[http://www.nationalarchives.gov.uk/a2a/records.aspx?cat=161-...](http://www.nationalarchives.gov.uk/a2a/records.aspx?cat=161-csac71180&cid=3-5-1#3-5-1)

It would be a good thing if someone (google?) were to scan this piece of
computer history and put it on the web.

~~~
bmm6o
This makes CPL seem like a pretty odd choice of language for such a widely-
read magazine article. He couldn't have expected his readers to be familiar
with it, especially since the language was still changing at the time. Did he
think it was close enough to pseudo-code that it was ok?

~~~
ajb
Readers at the time would have expected to do somewhat more work to understand
a program; ASCII had only recently been standardised, so even programs in the
same language would have slightly different syntax, depending on the computer
they were written for (also see stropping:
<http://en.wikipedia.org/wiki/Stropping_%28programming%29> ).

But fundamentally, he was the designer and major promoter of CPL.

------
swannodette
Beautiful. Please read everything this man has ever written. I don't care what
you think about Lisp - buy yourself a copy of the Paradigms Of Artificial
Intelligence Programming and work through it. It's one of the greatest books
on the practice of problem solving ever.

~~~
tokenadult
_Please read everything this man has ever written._

Yes. Especially, please read "Warning Signs in Experimental Design and
Interpretation"

<http://norvig.com/experiment-design.html>

before submitting to Hacker News a link to a press release or low-quality news
report about a new research finding. This link is by far my favorite link to
post in comments on HN, because the issues brought up in "Warning Signs in
Experimental Design and Interpretation" come up over and over and over again
in discussions of purported research findings.

------
jparise
Here's the accompanying source code: <http://norvig.com/sciam/checkers.py>

    
    
      There are four parts to this program:
      (1) Strachey's checkers program in CPL:
          OriginalCPLprogram is the original program, verbatim
          ModifiedCPLprogram fixes a typo and two small conceptual problems
      (2) A parser for the CPL language.  This is encoded in the external
          file 'cpl.g', which is then processed by yapps2.py to produce cpl.py,
          which we then import, allowing us to use cpl.parse on ModifiedCPLprogram.
      (3) Functions described but not implemented by Strachey (such as Null and Shift).
      (4) Variable definitions and functions not listed by Strachey.
      (5) Test cases.

------
rhomboss
Mr. Norvig has been a huge inspiration to me ove the years. I sent him an
e-mail a couple of years ago with a quick question. He responded within
minutes, and as a young lad, that was huge.

It's really inspired me to try and become someone who not only writes and
creates brilliant things, but also helps to foster that same ability in the
younger generation.

------
chrislo
This is a great opportunity for Scientific American to release a few old back
issues in digital form. A HTML version of the article in question is
available, but it would be nice to see in the original format. The issues are
sadly out of print when I visit the links.

------
darklajid
I read the whole article without taking a single sip from this cool beer next
to my laptop.

In other words: Wow. Amazing. From the 'I read old science magazines on the
attic' start to the final 'Let's revive this program, build a translator to
python, a test suite and check the result' - the article was an amazing read.
Thanks a lot. More of that, please!

------
Jd
This is the first time I've seen the distinction made between waterfall and
spiral methodologies, with agile seemingly considered a subset of the spiral
model. Any other resources anyone knows about on this distinction?

~~~
psykotic
Rapid Software Development by Steve McConnell, the same guy who wrote Code
Complete, is a great pre-XP, pre-Agile book on the software development
process that covers the waterfall and spiral models, evolutionary prototyping
and delivery, and a host of other approaches.

------
k4st
Great article, with the exception that code indentation does not appear to
have made it through the editing process.

~~~
ralph
<http://norvig.com/sciam/sciam.html> preserves the indentation.

~~~
eru
Much better. Thanks!

