« Undersökning av Java-system för agentbaserad modellering | Main | Physics of Society »

februari 04, 2004

The Selfish Class

The Selfish Class (PDF) skriven av Brian Foote och Joseph Yoder beskriver varför viss kod "överlever" med utgångspunkt i darwinistiska teorier. Titeln alluderar till Richard Dawkins bok The Selfish Gene.

Ett tack till Peter Lindberg för peket till artikeln. Han skrev en notis om den anno 2002.


Abstract:
This paper takes a code’s-eye view of software reuse and evolution. A code-level artifact must be able to attract programmers in order to survive and flourish. The paper addresses the question of what an object might do to encourage programmers to (re-)use it, as opposed to using some other object, or building new ones. THE SELFISH CLASS pattern shows how focusing on code, rather than systems, processes, or personnel, can lead to fresh insights into software evolution and the forces that drive it.

The remaining patterns focus on more specific problems that evolving artifacts might confront. A software artifact that WORKS OUT OF THE BOX provides enough defaults to get the user up and running without needing to know anything about the artifact. An artifact that presents a LOW SURFACE-TO-VOLUME RATIO exposes its services via a relatively compact external interface, while encapsulating significant internal complexity. GENTLE LEARNING CURVE observes that artifacts that don’t pose an undue learning burden on beginners can win users, while revealing additional complexity later. PROGRAMMING-BY-DIFFERENCE shows how code can adapt without mutating. FIRST ONE’S FREE suggests that giving your code away will help to make it popular. WINNING TEAM suggests that you can ride the coattails of a winning system to victory.


Den undersökning som skrevs om i Undersökning av Java-system för agentbaserad modellering skulle kunna ses som ett exempel på analys för att utröna överlevnadsvärdet hos de studerade systemen.

Posted by hakank at februari 4, 2004 08:43 EM Posted to Komplexitet/emergens | Systemutveckling