read


read
or learn more

Six works of Computer Science-Fiction

Apr 27, 2015

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

Csf

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 Forth

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


  1. This term stands in contrast to Computer-Science Fiction, which is indeed fiction about computer science. 

  2. I intentionally avoided listing books about Artificial Intelligence as they were too obvious. 

27 Comments, Comment or Ping

  1. 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.

  2. Thanks Paul, nice additions!

  3. “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.

  4. 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.

  5. 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.

  6. 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

  7. 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.

  8. 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. :-)

  9. David Biesack

    The Art of the Metaobject Protocol. Given enough rope, anyone can shoot themselves in the foot.

  10. Patrick Logan

    I decided to look over at a shelf and pick just two. I see:

    “Clause and Effect” and “Anatomy of Lisp”

  11. 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. ;~)

  12. Caner Derici

    I’d also add R. Bird’s “Pearls of Functional Algorithm Design”

  13. Peter VDL

    CTM of Peter Van Roy & Seif Haridi. Incredible book. Great MOOC on edX: Paradigms Of Computer Programming. An eye-opener!

  14. Patrick Logan

    Good point about missing companions. The two for my above: “The Cat Who Walks Through Walls” and “Do Androids Dream…”, respectively.

  15. 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/

  16. 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 …).

  17. Roger Turner

    “…books of computer science and/or programming that when you read them you can’t quite believe that what they claim is reality”: M A Jackson’s “Principles of Program Design” (1975) (for companion, a forgotten classic, dated language but timeless ideas: “Last and First Men”?)

  18. dmitry

    Not a CS-fiction but have a nice fiction companion imho: Art of Multiprocessor Programming & Hopscotch by Cortázar

  19. Maybe I’m stressing it too much, but:

    Gödel, Escher, Bach => Gödel, Escher, Bach

  20. 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.

  21. Ben Smith-Mannschott

    s/tracepoint/trackpoint/

    “e” and “k” aren’t even close to each other on the keyboard. autocorrect?

  22. 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.

  23. 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 )

  24. 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

  25. 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.

  26. @ 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.

  27. 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.

Reply to “Six works of Computer Science-Fiction”