Vikram Chandra -- Geek sublime: the beauty of code and the code of beauty =========================================================================== There are at least two aspects to Chandra's book: the parts that apply to modern computer programming and coding and the parts that apply principles of Indian philosophy and poetry to coding. Disclaimer: I'm a programmer. I've written code for computers for many years using a variety of programming languages and running on a variety of machines and software environments. So, I'm reading and viewing some of what is in "Geek sublime" from a special point of view. Because I spend a good part of my time reading and trying to understand code and trying to make fixes to it, I care more about whether code is understandable and modifiable than I do about some notion of elegance or on aesthetic qualities based on an external standard or guide. It may also be significant that I program in high level, interpreted languages, mostly Python (https://www.python.org/), but also a bit in Ruby (https://www.ruby-lang.org/en/) and Erlang (http://www.erlang.org/). These are languages whose design places emphasis on code that is clean, readable, and easy to debug code over, for example, execution speed or memory usage. I much prefer Python, Ruby, and Erlang over low level, cryptic languages like C and C++, which make reading code and finding and fixing errors so much more difficult. Having said that, code that has the the qualities of elegance and aesthetics that Chandra discusses, likely will trend toward readable and modifiable code. However, I say shoot for code that is readable and modifiable and the aesthetics will follow, rather than aiming for the aesthetic qualities and hoping that the readability and maintainability follow from that. An interesting section is where Chandra discusses some differences between qualities of art and those of code. I believe he may be focusing on two points: (1) all art is not aesthetic in the sense of being beautiful; and (2) art breaks rules, for example, good writers of fiction (and good orators, too) sometimes break the rules of grammar. If we are to use art or aesthetics as a guide to producing *good* code, then we will likely want to slide over those differences. We will want to write code that is elegant, pleasing, even beautiful in some sense. And, because our language processor or compiler (whether C, C++, Python, Ruby, ...) will not accept code that breaks grammar rules (and other rules besides. This second aspect is not a defect in the language processors; we (computer programmers) *want* that processor or compiler to warn us about mistakes in our code. In fact, the language I use most often, Python, does rather loose compile time error checking, and so I often run a style/error checking program against my code (that code checker is called flake8). The title of the book is a little misleading, for me at least. "Geek sublime" suggests that this book is aimed only, or mostly at techies and computer programmers. It does address issues of computer programming, and does attempt to employ aesthetic, poetic, and philosophical ideas to help us improve the computer programs we write. But, much of the book seems addressed to writers of fiction, which after all, is what occupies a good portion of Chandra's life. So, the range of readers to whom this book might be interesting is likely to be larger that the title suggests. And, then there a dose of futurism toward the end of "Geek sublime". And, we fade off with a bit of mysticism at the very end, or perhaps it's romanticism. It's an interesting book, but I feel like I'd have to enter some alternative mental state in order to appreciate it. Perhaps, in the future, I'll revisit "Geek sublime"; I'll have changed; and additional parts of the book will be meaningful for me. In the meantime, it's entertaining, but only scattered sections are practical and usable by me. But, then, it's likely that practicality is not the right frame of reference through which to view this book. 11/24/2014 .. vim:ft=rst:fo+=a: