The Pattern on the Stone - by W.Daniel Hillis – Brief Comments
The Pattern on the Stone is a very interesting book. It accomplishes its purpose of describing “the
simple concepts that make computers work”.
It carries the reader from the
fundamental concepts of computing, explained in a simple, interesting and clear
way, to the threshold of the future, when computers could build themselves,
learn, think and – maybe – feel as a living being!
Let me highlight some strong points and also some opportunities for
improvement I think I saw.
Universal Computer, Building
Blocks, Boolean Logic, Finite State Machines
I found these initial chapters one of the best parts of the book. In the Preface, the author already introduces
the idea that a computer can be built of several materials, not necessarily electronic,
since their essential nature transcends technology.
I had heard about “biological computers”, for example, but did not
really understand how it could work until I read the book and its explanations
about the Universal Computer. The
examples the author provides with pipes and valves and with strings and sticks
are simple and provide a complete understanding of the basic concept.
Programming
I think the programming classes our teacher Russel Feldhausen gives us
are better than the book's explanations about programming. The explanations are not bad, but are outdated, and does not cover all programming language paradigms. Being a basic book, it could not mention Functional Programming, Logic Programming or
Symbolic Programming (see http://en.wikipedia.org/wiki/Programming_paradigm
; see also http://people.cs.aau.dk/~normark/prog3-03/html/notes/paradigms_themes-paradigm-overview-section.html
). But I think it could describe a
simple Declarative Language as, for
example, SQL. And I felt that this part
of the book lacks examples as good as the initial chapters. I’m not sure if somebody can actually
understand how a procedural program works just based on the book.
Algorithms and Heuristics
Again, a series of chapters that I enjoyed the most! The book explains how heuristics makes possible dealing with “un-computable” problems, using search spaces and hill
climbing method.
I found remarkable how heuristics moves computing out of the “true or
false” terrain, into the land of “educated and well-considered guesses”. That brings computers operation a lot closer
to human being’s reasoning – and, thanks to Daniel Hillis, now I know how this
is done!
Parallel Computing, Machine
Learning, Neural Networks, Simulated Evolution
These chapters are not so easy to read – and understand – as the
initial ones. These difficulties would be expected,
since the subjects are more complex. But
the author did a good job explaining the fundamental concepts and providing
examples. The description of the
creation of “sorting programs” thru “evolution” amazed me! “Simulated
Evolution” producing programs more efficient than the author could write, and, furthermore, programs that he cannot understand how they work?!
That’s something to think about!
I’m not sure if I’m amazed, scary, or both!
A final remark over Analogic
Computers
I felt the fact that difference between analogic and
digital computers is not just of precision could have been emphasized. The difference in precision can even
be irrelevant, as the author points out.
What he does not highlight is that an analogic computer is comparing
actual objects, is measuring the real
world, and a digital computer will always work with symbols. I’m not saying that
one is better than another, I’m just saying that they are different in this
fundamental way. Since the focus of the
book is digital computers, it’s understandable.
But I like to highlight that everything inside digital computers is virtual. Abstractions, symbols, not the real
world. And due to the high importance digital
computers affect our lives in real word, it could be wise to keep this in mind!
No comments:
Post a Comment