Extra thoughts on "Assemblage" Oriented Programming

Brief followup thoughts on the previous article. Read that first. Classes? Classes are really just techniques to help construct objects. In an “Assemblage” language the Assemblage or Pattern itself is the way you construct the objects. The grammar explains how to parse a plain EDN or JSON-like data-literal into the assemblage. So perhaps we don’t …

On Architecture and Modules

Another long Quora Answer Why is it important to agree on software architecture principles? In a sense, some of this is an update on my thinking on “modularity” (eg. ThoughtStorms:DecompositionByLanguageIsProbablyAModularityMistake Well, possibly it’s only important in an “organizational” sense. In that people in your team or project need to be aligned in their conception of …

Conway’s Corollary

Ian Bicking’s post on Conway’s Corollary is a must-read thought on isomorphisms between the organization and product structures. What, asks Bicking, if we don’t fight this, but embrace it. Organizational structures are allegedly for our benefit. Why not allow them to shape product? Or when this is inappropriate why not recognize that the two MUST be …

Modularity At Fine Granularity

Ian Bicking has a fascinating question. I’m just going to quote the whole thing because it’s so good and important :  The prevailing wisdom says that you should keep your functions small and concise, refactoring and extracting functions as necessary. But this hurts the locality of expectations that I have been thinking about. Consider: function …

Modules In Time : Synthesizing GitHub and Skyrim

Thanks to Bill Seitz I picked up on a Giles Bowkett post I’d missed a couple of months ago which compares the loosely coupled asynchronous style of development that companies like GitHub both promote and live, with the intensely coupled synchronous raids that occur in online game-worlds. Bowkett seems confused by the apparent contradictions between …