David Tanzer, Oliver Zymanski explain with examples how to apply the rules and principles of object-oriented software design to create simple architectural designs.
Jessica Kerr explains through Java and C# code samples six principles of the functional programming style.
David Nolen introduces Om, a ClojureScript library that adds a functional layer on top of Facebook React, providing OO abstractions in a MVC environment.
Gerard Meszaros advises on using the right abstraction level and automation tools when creating unit or system-level tests.
Josh Suereth discusses Scala: expressions, abstracting behaviors, FP & OOP, Futures & Promises, libraries with implicit classes and value classes, tracking lexical state with implicit values.
Marc-Daniel Ortega shares code snippets showing how to implement some logic in a functional language inspired by “Functional Programming in Scala”, avoiding the OOP influence.
Tijs van der Storm discusses object algebras as a solution to the expression problem – the inability to extend functional programming languages.
The authors introduce a new language paradigm meant to enhance OOP with multi-dimensional context, providing details on context-based dispatch, and showing a glimpse of their early prototype.
Crista Lopes writes a program in multiple styles -monolithic/OOP/continuations/relational/Pub-Sub/Monads/AOP/Map-reduce- showing the value of using more than a style in large scale systems.
Creighton Kirkendall discusses how polymorphism is implemented in Clojure, Ocaml, Haskell and Scala.
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.