Six works of Computer Science-Fiction
Computer Science-Fiction1 is not actually fiction. Instead, these are books of computer science and/or programming that when you read them you can’t quite believe that what they claim is reality. Indeed, very often works of Computer Science-Fiction push the limits of your understanding of just what constitutes the art of programming.2
Smalltalk-80: The language and its implementation
Almost everything about Smalltalk and its history is too fantastical to believe, and of all the references on Smalltalk, this book provoked the most longing sighs. The denouement of the book is of course the implementation of the Smalltalk interpreter in Smalltalk, which is in many ways a star-map to a world much like our own, only better.
A science fiction companion to this book: Island
Thinking back on all of the programming books that I’ve read, I would be hard-pressed to think of one that was more influential on my personal programming style than Leo Brodie’s Masterpiece.
A science fiction companion to this book: Native Tongue
Concepts, Techniques, and Models of Computer Programming
While Thinking Forth motivated change in my micro-level programming stylings, CTM definitely influenced my macro-level systems-level thinking. CTM is a book that I’ve read a few times and each time that I do I discover something mind-bending. I suspect another read-through is forthcoming.
A science fiction companion to this book: The Foundation Trilogy
Project Oberon: The design of an operating system and compiler
Wirth’s magnum opus is the quintessential example of Computer Science alternative-history world-building.
A science fiction companion to this book: Perdido Street Station and the world of New Crobuzon.
The Architecture of Symbolic Computers
While Wirth’s Oberon system and language is comprehensive and unique, it does tend to fit into our known computer science universe. However, Kogge’s book describes languages and systems that seemingly turn what we know of hardware and software on their heads.
A science fiction companion to this book: Anything by Phillip K Dick
Structure and Interpretation of Computer Programming
SICP is an exploration of programming free-love. Indeed, the tone, examples, references, and hearken to a programming life that if true, would be an absolute blast to live in. Of course, SICP and its contained dictums do not outline a utopia. Instead, they point to a method of working that demands a lot, and likewise provides proportional reward. However, like many great works in this vein, one eventually stops reading and returns to the harsh reality in which they operate. Fortunately for us, SICP contains a formula for revolution.
A science fiction companion to this book: The Moon is a Harsh Mistress
What are your favorite works of Computer Science-Fiction?
:F
27 Comments, Comment or Ping
Paul Snively
I’d add “The Reasoned Schemer,” which makes the connection between functional and logic programming seem both magical and like “why aren’t we all doing this?”
“Purely Functional Data Structures,” or “No, you’re not getting the years you wasted getting ‘Undo’ right back. Bwahahahahahaha!”
“SQL and Relational Theory,” or “Wow, the object/relational impedance mismatch is worse than I thought—and objects are the problem!”
“Probability Theory: The Logic of Science,” because the probability you understand probability without reading this is 0.
Apr 27th, 2015
fogus
Thanks Paul, nice additions!
Apr 27th, 2015
James Iry
“Learn to Program X in 21 Days” can be the low grade potboiler science fantasy books with lurid covers that promise far more than the contents deliver.
Apr 27th, 2015
Julian
McCarthy’s original LISP paper was pretty amazing, which I discovered while reading Ian Piumerta’s Maru source code (also pretty Computer Science Fictiony), even though I read it many many years after he wrote it. Then, just when I thought LISP and Clojure were the most magic (I still do think they’re pretty magic), I encountered “Programming in Haskell”… Oh… My… God. :) So good.
Apr 27th, 2015
Stephen De Gabrielle
‘The New Turing Omnibus’, along with ‘the magic machine’ and ‘the armchair universe’ by AK DEWDNEY really appealed to the young (Science fiction Reading) me.
The current (older) me just had their mind blown by ‘Self’- but there is no book.
Apr 27th, 2015
Brian O'Reilly
Paradigms of Artificial Intelligence Programming — http://norvig.com/paip.html
Danny Hillis’ phD thesis “The Connection Machine”
Programming Pearls 1 & 2
Concrete Mathematics: A Foundation for Computer Science
Apr 27th, 2015
passerby
I’d suggest that van Roy & Harid’s CTM would be better matched by the works of Jack Vance on the diversity of the Gaean Reach.
Apr 27th, 2015
Tony Hursh
K&R first edition. It starts with “Hello, World” and a hundred or so pages later you’re doing low-level Unix filesystem manipulation.
You could pair with one of E.E. “Doc” Smith’s space operas — the ones where the heroes have weapons that can annihilate entire galaxies. :-)
Apr 27th, 2015
David Biesack
The Art of the Metaobject Protocol. Given enough rope, anyone can shoot themselves in the foot.
Apr 27th, 2015
Patrick Logan
I decided to look over at a shelf and pick just two. I see:
“Clause and Effect” and “Anatomy of Lisp”
Apr 27th, 2015
Thomas Lockney
The best part of this is the science fiction companions, so I’m a bit disappointed by the fact that the suggestions in the comments are missing them. In light of that, my suggestion is The Little MLer. The companion would be Edwin Abbott Abbott’s Flatland. ;~)
Apr 27th, 2015
Caner Derici
I’d also add R. Bird’s “Pearls of Functional Algorithm Design”
Apr 28th, 2015
Peter VDL
CTM of Peter Van Roy & Seif Haridi. Incredible book. Great MOOC on edX: Paradigms Of Computer Programming. An eye-opener!
Apr 28th, 2015
Patrick Logan
Good point about missing companions. The two for my above: “The Cat Who Walks Through Walls” and “Do Androids Dream…”, respectively.
Apr 28th, 2015
Jonathan Barber
Lovely list of books to read. I just wanted to point out that Thinking Forth appears to be legally available online for the cost of the download at: http://thinking-forth.sourceforge.net/
Apr 28th, 2015
ThomasH
Stepanov’s and McJones’ “Elements of Programming” opposit Herman Hesse’s “The Glass Bead Game” (which might not be considered Computer Science-Fiction in the classical sense, but still …).
Apr 29th, 2015
Roger Turner
Apr 29th, 2015
dmitry
Not a CS-fiction but have a nice fiction companion imho: Art of Multiprocessor Programming & Hopscotch by Cortázar
May 6th, 2015
Raimon Grau
Maybe I’m stressing it too much, but:
Gödel, Escher, Bach => Gödel, Escher, Bach
May 11th, 2015
Ben Smith-Mannschott
As luck would have it, I just spent the weekend getting ETH Oberon (nee “System 3”) from December 2000 running on my ThinkPad T20. The T20 has a three-button tracepoint so using Oberon on it is reasonably natural even without an external mouse. Ah, the memories.
It was trickier than hoped because the SSD I chose to use was, at 64 GiB, far beyond the size that the BIOS, DOS or Oberon really know what to do with.
The maximum heap size of ETHOberon appears to be 192 MiB. This is an insane amount of heap for a typical Oberon installation. Still, even if you allocate 100 MiB worth of binary tree notes and then let the stop-the-world mark-and-sweep GC rip, it only hiccups slightly.
Funny thing: I don’t know if it’s this hardware or Oberon that’s doing it, but it makes a quiet noise between chirping and buzzing whenever it’s actively computing something, so you can actually hear the garbage collector run if the collection is large enough.
Jul 5th, 2015
Ben Smith-Mannschott
s/tracepoint/trackpoint/
“e” and “k” aren’t even close to each other on the keyboard. autocorrect?
Jul 5th, 2015
Zstats
Vahalia’s “UNIX internals: the new frontiers” (where “new” means circa 1994). Each chapter is basically: here’s a classic problem in operating systems, and here are three different systems to solve it, at least one of which is batshit crazy and at least one of which includes “let’s invest $100M in a new generation of microprocessors to solve this better.” It may be more “computer historical fiction” than science fiction, but still fantastical.
Jul 5th, 2015
righteous indignation
How about the 6 books spoke of in the movie Hackers?
1 (Green) International UNIX Environments 2 (Orange) Computer Security criteria DOD Standards 3 (Pink) Guide to IBM PC`s 4 Devil book Unix Bible 5 Dragon Book Compiler Design 6 (Red) NSA Trusted Networks a.k.a ugly red book (SOURCE: http://www.imdb.com/title/tt0113243/faq#.2.1.6 )
Jul 6th, 2015
Patrick Logan
Great list. People also might want to know the original Smalltalk books and almost every book on Smalltalk are available free online… http://stephane.ducasse.free.fr/FreeBooks.html
Jan 30th, 2019
Eric Berna
I would suggest Object-Oriented Software Construction by Bertrand Meyer. I read the first edition, which was much shorter than the revised second edition. It very much fits this theme, describing a software construction methodology supported by the Eiffel language, but since Eiffel never had commercial success, the methodology didn’t either.
I can’t think of an appropriate science fiction companion.
Jan 2nd, 2020
Paul McJones
@ ThomasH: we’re honored to be mentioned. When the hardback edition of EoP went out of print at the end of 2018, we made available a free PDF and a very low-cost paperback — see http://elementsofprogramming.com for both.
Jan 4th, 2020
Jonas Gorauskas
Every chapter in Hacker’s Delight (https://www.amazon.com/Hackers-Delight-2nd-Henry-Warren/dp/0321842685/) reads like a different Philip K. Dick short story.
Jun 2nd, 2020
Reply to “Six works of Computer Science-Fiction”