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
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.
by Paul Snively on Apr 27, 2015 at 10:00:45
Thanks Paul, nice additions!
by fogus on Apr 27, 2015 at 10:02:10
“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.
by James Iry on Apr 27, 2015 at 10:07:56
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.
by Julian on Apr 27, 2015 at 11:40:47
‘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.
by Stephen De Gabrielle on Apr 27, 2015 at 12:07:01
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
by Brian O'Reilly on Apr 27, 2015 at 15:06:27
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.
by passerby on Apr 27, 2015 at 15:34:00
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. :-)
by Tony Hursh on Apr 27, 2015 at 15:34:08
The Art of the Metaobject Protocol. Given enough rope, anyone can shoot themselves in the foot.
by David Biesack on Apr 27, 2015 at 15:51:54
I decided to look over at a shelf and pick just two. I see:
“Clause and Effect” and “Anatomy of Lisp”
by Patrick Logan on Apr 27, 2015 at 15:57:55
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. ;~)
by Thomas Lockney on Apr 27, 2015 at 21:32:33
I’d also add R. Bird’s “Pearls of Functional Algorithm Design”
by Caner Derici on Apr 28, 2015 at 03:00:16
CTM of Peter Van Roy & Seif Haridi. Incredible book. Great MOOC on edX: Paradigms Of Computer Programming. An eye-opener!
by Peter VDL on Apr 28, 2015 at 05:56:28
Good point about missing companions. The two for my above: “The Cat Who Walks Through Walls” and “Do Androids Dream…”, respectively.
by Patrick Logan on Apr 28, 2015 at 08:26:11
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/
by Jonathan Barber on Apr 28, 2015 at 09:37:23
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 …).
by ThomasH on Apr 29, 2015 at 02:45:00
by Roger Turner on Apr 29, 2015 at 18:35:08
Not a CS-fiction but have a nice fiction companion imho: Art of Multiprocessor Programming & Hopscotch by Cortázar
by dmitry on May 6, 2015 at 14:45:53
Maybe I’m stressing it too much, but:
Gödel, Escher, Bach => Gödel, Escher, Bach
by Raimon Grau on May 11, 2015 at 15:18:01
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.
by Ben Smith-Mannschott on Jul 5, 2015 at 23:44:35
s/tracepoint/trackpoint/
“e” and “k” aren’t even close to each other on the keyboard. autocorrect?
by Ben Smith-Mannschott on Jul 5, 2015 at 23:45:47
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.
by Zstats on Jul 5, 2015 at 23:48:04
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 )
by righteous indignation on Jul 6, 2015 at 00:57:45
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
by Patrick Logan on Jan 30, 2019 at 00:07:51
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.
by Eric Berna on Jan 2, 2020 at 09:46:47
@ 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.
by Paul McJones on Jan 4, 2020 at 20:54:42
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.
by Jonas Gorauskas on Jun 2, 2020 at 23:48:13