Mother: Quotes


Learning the art of programming, like most other disciplines, consists of first learning the rules and then learning when to break them.

— Joshua Bloch, 2008, Effective Java, 2nd Edition.
The simple fact is that complexity will emerge somewhere, if not in the language definition, then in thousands of applications and libraries.

— Bjarne Stroustrup, 2009, Masterminds of Programming.
When writing computer programs, certain patterns arise over and over again. For example, programs must often loop through the elements of arrays, increment and decrement the values of variables, and perform multiway conditionals based on numeric or character values. Programming language designers typically acknowledge this by including special-purpose syntactic constructs that handle the most common patterns. C, for instance, provides multiple looping constructs, multiple conditional constructs, and multiple constructs for incrementing and otherwise updating the value of a variable.
Some patterns are less common but may occur frequently in a certain class of programs, or perhaps just within a single program. These patterns may not even be anticipated by a language’s designers, who in any case would typically choose not to incorporate syntactic constructs to handle such patterns in the language core.
Yet, recognizing that such patterns do arise and that special-purpose syntactic constructs can make programs both simpler and easier to read, language designers sometimes include a mechanism for syntactic abstraction, such as C’s preprocessor macros or Common Lisp macros.

— R. Kent Dybvig, 2007, Syntactic Abstraction: The syntax-case Expander, in Beautiful Code.

Other Good Reads:

On Being Sufficiently Smart

Why Your Programming Language Is “Too Academic”

“Text is Dead They Say”, aka parsing technologies from the ’60s are killing productivity.

Growing a language, by Guy Steele.

Michael Feathers, Ending the Era of Patronizing Language Design

The fact that it took decades for the industry to arrive at something as useful as ActiveRecord in Rails is due primarily to the attitude that some language features [in this case, meta-programming] are just too powerful for everyone to use.

Where Tcl and Tk Went Wrong

A good post about code reviews in open source projects:

Back to The Mother Programming Language.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s