Links, news, Resources: Object Oriented Programming (1)

I’m a compulsive link collector 😉 (you can check my delicious links to see what I means). I usually share my links, news, discoveries via my Twitter feed, too. It’s time to share some of the links by topic. Let start with one: Object Oriented Programming. I will use the list to my own consumption, too 😉

Avoiding Dependencies
Insidious Dependencies
Avoid Entrenched Dependencies
Interesting entries by Steve Smith, to learn about dependencies between our objects and their consequences

InfoQ: Classes Are Premature Optimizations

Justin Love discusses the difference between the classic OOP programming model based on classes and prototypal inheritance built on objects as done in JavaScript, and how they affect performance.

He mentions Smalltalk and Self, too. Link via @HernanWilkinson.

Mixins vs Traits
Stackoverflow discussion: What is the difference between Mixins and Traits? Link via @jfroma.

Interfaces are not abstractions
To discuss:

the proliferation of interfaces that typically follow from TDD or use of DI may not be the pure goodness we tend to believe.

Modelos de Software con Objetos
@HernanWilkinson’s Spanish blog, about software models with objects.

Mi idea es postear lo que conozco sobre modelar/desarrollar con objetos, en base a lo que damos en la materia de POO y DAO de la UBA y mi experiencia personal

Going completely prototypal in JavaScript

In this post we present the Proto API which implements inheritance in JavaScript in a purely prototypal fashion. This contrasts it with all other JavaScript inheritance APIs that the author is aware of.

Hardware support for Objects: The MUSHROOM Project
A Distributed Multi-user Object-Oriented Programming Environment, with object-based memory.

In 1986 a group at the University of Manchester embarked upon an investigation into how developments in computer architecture could benefit the performance of dynamic object-oriented languages. We reasoned that if the object-oriented approach was of such great benefit to software development, then it would be all the more attractive if there was little loss of performance. Over the next five years we developed an architecture to support object-oriented languages, called the Mushroom architecture. The aim of the research was, starting with carte blanche, to discover what sort of architecture was best suited to Smalltalk-like languages.

Job Security through Code Obscurity
Use objects to obfuscate your code, specialize via inheritance, use lot of patterns, obscure code flow with virtuals and templates, include everything and more.

A non-hierarchical approach to object-oriented programming
Remember Flavors, object-oriented extension to Lisp.

Organic Programming
A Generative, Iterative and Pattern Language Independent (GIPLI) aproach to creating timeless Domain Specific Languages (DSL).

Solving the Expression Problem with OOP

The problem is, in a nutshell, how do you build an extensible data model and an extensible operation model that meets three goals: Code-level modularization, Separate compilation, Static type safety

Adding Dynamic Interfaces to Smalltalk

In this article we present SmallInterfaces; a new ontology of dynamic interfaces which makes a powerful use of the dynamic nature of Smalltalk. SmallInterfaces adds interfaces as honorary members to Smalltalk’s extensive reflection mechanism, in a manner portable across the many Smalltalk variants.


Trylon is a computer language. It is basically a cross between Python and Smalltalk. It uses indentation for program structure, like Python, and it uses Smalltalk’s expression syntax (but with precedence). Its objects are dynamically typed, but its programs are statically compiled (via C).

Object-Oriented PHP for Beginners

you’ll learn the concepts behind object-oriented programming (OOP), a style of coding in which related actions are grouped into classes to aid in creating more-compact, effective code.

To have gettters or not? Encapsulation vs use

SOLID by example
Source code examples in .NET, to understand SOLID principles.

The Open/Closed Principle: Concerns about Change in Software Design

This post investigates the applicability of the “Open/Closed Principle” when we add new functionality to a software design whose source code is entirely under our control.

Agent nouns are code smells
Discussion about: class names ending with agent nouns are a code smell (agent nouns as “helper”, “manager”)

Coding: The agent noun class
Mark Needham response to the above post.

OOP: What does an object’s responsibility entail? at Mark Needham

I believe that an object should be responsible for deciding how its data is used rather than having another object reach into it, retrieve its data and then decide what to do with it.

LDNUG : Mixing functional and object oriented approaches to programming in C#
Video of a talk by Mike Wagg and Mark Needham

Enough for this post. I will write more topic links posts.

Keep tuned!

Angel “Java” Lopez

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 )

Google+ photo

You are commenting using your Google+ 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