David Tanzer, Oliver Zymanski explain with examples how to apply the rules and principles of object-oriented software design to create simple architectural designs.
Gerard Meszaros advises on using the right abstraction level and automation tools when creating unit or system-level tests.
Eddy Bruel details how objects are implemented internally in SpiderMonkey as shape trees and slot vectors to minimize the memory footprint and obtain better JIT optimization with inline caching.
Stuart Sierra introduces some general guidelines for designing systems which make their data and abstractions more transparent to developers, using code examples in Clojure.
Jim Duey surveys several abstraction techniques that can help in writing reusable code in Clojure.
Ola Bini attempts to answer a few questions: Why are new languages still being created, Is it worth choosing languages strategically, and Does language actually matter?
Michael Feathers, Brian Foote, Richard P. Gabriel, Joshua Kerievsky, Eliot Miranda and Dave Ungar put Objects on trial and found them guilty for not living up to their promise.
David Nolen critiques the tools, languages and methodologies used today from the perspective of solving the “mapping dilemma”, introducing match, a pattern matching library for Clojure.
Dean Wampler discusses the merits of several controversial issues: Goto, Design before Code, Design Patterns, Corba vs. REST, Object Middleware and ORMs, and Identiﬁers with Spaces.
Richard Pawson discusses a case study of a large pure OO project for the Irish government, presenting the challenges met, the reason for choosing pure OO, and lessons learned implementing it.
Alex Miller presents some of the abstractions that make Clojure a great language: Collections, Sequence and Higher Order Functions, Multimethods, Protocols, Atoms, Macros, and others.
Marius Eriksen considers that leaky abstractions lead to scalability issues, while those providing narrow access to explicit resources - map-reduce, shared-nothing web apps, big table - scale better.