Reading new book: Programming Language Design Concepts

Cover of Programming Language Design ConceptsIn the spirit of parallelism, I’m still reading Concurrent Programming in Java 2nd Edition and now concurrently reading Programming Language Design Concepts by David A. Watt.

I’ve just started the latter today… It’s a playful romp through the intricacies of type systems, data abstractions, control flow, concurrency, and programming paradigms in general as implemented in many popular languages both old and new. A perfect summer read.

There’s a great deal of comparing and contrasting popular and influencial languages like Haskell, Ada, C, C++, Java, and even the occasional mention of Python. Thankfully, the abomination known as PHP is nowhere to be found… and why should it be? — other than to highlight poor language design. Of course that would require that you consider PHP an actual language that has been designed rather than an accidental collection of C-implemented functions that may be scripted in a web page.

Anyhow, enough bitterness (can you tell I’m forced to write PHP in my day job?)… I found the following interesting quote on page 40. I hope I’m not breaking the rules by duplicating it here:

In practice the greater security and efficiency of static typing outweigh the greater flexibility of dynamic typing in the vast majority of applications. It is no coincidence that most programming languages are statically typed.

I recommend the book. After three chapters, I’ve learned a lot, and gained a new perspective on my own favorite languages.


About this entry