
Brian Foote on the State of OOP, Refactoring, Code Quality
Brian Foote looks back at the promises of OOP and discusses which, if any, of them became reality. Also: a look at NoSQL, refactoring and code quality, testing and static typing and more.

Brian Foote looks back at the promises of OOP and discusses which, if any, of them became reality. Also: a look at NoSQL, refactoring and code quality, testing and static typing and more.
The MagLev project has released version 1.0 of their Ruby VM. The Ruby implementation is based on the GemStone/S Smalltalk VM which comes with GemStone's distributed cache, ACID transactions, and persistence system (OODB). InfoQ caught up with Monty Williams of the MagLev project to talk about where MagLev fits on the NoSQL spectrum, and much more.
The OOP conference (Object Oriented Programming) was held in Munich, Germany, from 24th to 28th January 2011 with “Business Impact through Mastering Change” as its general motto. Despite of its name, the OOP represents one of the largest and long-lasting events on the general field of software engineering.

The goal of modeling domain concepts through objects set by OOP has for a long time been handled in insufficient ways. In this article we introduce the concept of Composite Oriented Programming, and show how it avoids the issues with OOP and reignites the hope of being able to compose domain models with reusable pieces.
.jpg)
So you have a bunch of objects - let's call it an object graph - provided by some API. Now you want to to process the objects - which requires some intermediate data, for instance: the process creates some metadata that needs to be stored with the objects. The problem: where to store the metadata? We'll show how to use Ruby singleton classes to handle this problem.
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.
Andrey Breslav introduces the upcoming Kotlin language created by JetBrains, a general purpose JVM-based language, statically typed, object-oriented, and meant to be more concise than Java.
Jonas Bonér and Kresten Krab Thorup discuss some key aspects of Erlang like fault tolerance and reliability and how the Akka and Erjang projects try to bring them to the JVM.
Kresten answers questions about current programming languages and problems they solve. He also tries to look at what is missing for addressing issues we face today such as concurrency. He discusses its importance and tries to portray the language that would take us to the next level helping to tackle these issues easily.