This appendix covers the software libraries used in this book, along with installation instructions and examples.
The authors share a combined experience in software development dating back to the early 90s. One could say we have seen our fair share of languages and frameworks, both popular and esoteric. It has always seemed that any language or approach you chose gave you a subset of speed, maintainability, and ease of development—but never all of them. From the practical standpoint, educational languages were mostly useless (e.g., Pascal), interpreted languages were slow, “enterprise” languages are arduous to develop and maintain (e.g., Java and its many mind-numbing frameworks). Some of the newer languages were easy to code fast and showed decent performance (e.g., Perl), but the code often grew into a cryptic mess which not many wanted to touch (they also tended to call it a “write-only language”).
That said, we see Python as a godsend to all developers. It miraculously combines all the good things we always wanted: it is incredibly fast, makes it easy to develop complex yet robust enterprise-level systems, and is designed to maintain clarity as development expands.
Aside from the beautiful syntax and the fact we now write in 10 lines what used to take three pages of Java, there is one feature we like in particular: what some now call exploratory programming. Python is a language best enjoyed interactively ...