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.
Jim Coplien believes that we have done OOP the wrong way for 40 years, and suggests an approach to reflection based on the DCI paradigm and influenced by the human society.
Michael Homer introduces Grace, an educational OO language used to teach programming to students.
Jamie Allen explains some of the terminology encountered by Scala developers and not only: OO features, pattern matching, functional programming, actors, futures, tuples, implicits, type theory, etc.
Alex Aitken and Nick Faulkner share lessons learned building a cross-platform HTML5 application based on GOOS principles (Growing Object-Oriented Software).
Matt Butcher explores the philosophical systems devised by Plato and Aristotle, showing how Plato laid the foundations for what is now OOP, while Aristotle’s dynamic model is at the core of FP.