Finally I have finished reading this one. I read it almost for two months. Probably one of the longest books I have ever read, but it was worth every second.
The book itself is a collections of articles where "Leading Programmers Explain How They Think". The motto couldn't be more cleaner. You get exactly what it tells - experience of developers coming from different fields, programming in different languages (C, Java, Ruby, Python, Haskel and lots and lots more), but never the less great programmers. By now I will just stop telling how great it was and give a list of few of my favorite articles with descriptions:
A Regular Expression Matcher by Karl Fogel. Karl introduces us to a simple C powered regular expression matcher. The matcher doesn't have compiled expressions, nor does it have a full Regex syntax support, but instead he in simple terms describes to us what is under the hood of programmers' workhorse.
Finding Things by Tim Bray. While Karl Fogel describes to us how what the Regex engine is, Tim explains to us how to use it with such beautifull language like Ruby. He shares with us his experience of writing apache logs analizer for his blog.
Correct Beautiful, Fast (in that order), Lessons from Designing XML Verifiers by Elliotte Rusty Harold. Ellotte writes about few very useful optimization tricks like incremental ifs (my name for it :]). Ellote tells us a story about him writing an XML validator, more precisely an XML node name validator. After intensive development he was stuck with fast, but not fast enough for thouthands of validations, node names validator. Even though his validator only allowed latin characters and numbers he still managed to speed it up.
Beautiful Tests by Alberto Savola. In his tail Alberto shows us how to use JUnit to write unit tests. What caught my attention in this article are not unit tests themselfs, but instead what example he gives. As an example Alberto tests binary search algorithm for bugs that where undiscovered for about 30 years after it's introduction.
On-the-Fly Code Generation for Image Processing by Charles Petzold is about how one can bring optimization to a crazy level of code generating code, which will run faster than original code. The author tells about a situation where even machine code was not an option and where radical solution was required - something even faster than assembly language, as incredible as that may seem.
The Long Term Benefits of Beautiful Code by Greg Kroah-Hartman. CERN library was created 30 years ago, but is used up to this day. Greg Kroah-Hartman is a one of the long time users of CERN geometric library. He tells us how sometimes an ugly interface is really a beautifull perl which protects developers from their own mistakes.
Distributed Programming with MapReduce by Jeffrey Dean and Sanjay Ghemawat. This is a story about distributed programming used in Google. Jeffrey and Sanjay tells us how they managed to bring distributed programming to the level where very small amount of additional effort was needed for a novice developer to start writing programps distributed among thouthads of machines in corporation like Google. The success of this library can be proven by number of MapReduce users. By 2007 in Google MapReduce was used 35000 times a day and calculated about 100Gb of data per second!
Beautiful Concurrency by Simon Peyton Jones. Symon introduces us to another way of handling concurrency, where he uses DB like transactions instead of locks to make code multi-threaded. After investigating the internet on this topic I found many who are afraid that this method will bring even more problems then there is already, but nether the less learning how things can be done in different way was still very enjoying to me.
Beautiful Debugging by Andreas Zeller. Andreas tells us a story about the future of debugging becoming reality in his hands. He tells us about his experience searching for a broken code, which later became a fundamental for his thesis on automatic (delta) debugging.
That's it! Other's stories in this book are also great, so I appologize if somebodies else story wasn't included in my list. This is probably because I was not experienced with a language used in example or I just didn't look deep enough into the beauty.
Anybody living in Vilnius, Lithuania can lend the book from me. Just put a line in comments if you are interested. You can also read the book online in Google Library.

1 comment:
Sounds like it is a great book! I will have to get it and read it! Just checked near by library, they have it. :) The last book I read was "The Google Story". I really liked it. It was amazing to read how Google grow from just an idea to a company with such impact on our lives.
Post a Comment