“Go” is a new systems programming language created by Google. Syntax is based on C++, and it compiles (like greased lightning apparently) – even has a Printf()! But beyond trivial similarities it is a very different beast: Interfaces replace class … Read More
Deconstructing Software
Holarchy 101
Herbert Simon’s parable of the watchmakers was constructed to convey his belief that complex systems will evolve from simple systems much more rapidly if there are stable intermediate forms present in that evolutionary process than if they are not present. … Read More
The parable of the two watchmakers
The parable of the two watchmakers was introduced by Nobel Prize winner Herbert Simon to describe the complex relationship of subsystems and their larger wholes. There once were two watchmakers, named Hora and Tempus, who made very fine watches. The … Read More
Travelin’ lite (the only way to fly)
Of course, you can’t code up a (meaningful) system without some number of building blocks. So even in a perfectly architected and layered system, you inevitably accumulate some baggage as you move up the stack. The trick, though, is to … Read More
Identifying transitive closures with Structure101
Here an interesting use case. I am currently working on a reuse project. We have a large legacy Java application that we are trying to farm for implementations of some high level functions in a new application. To do this … Read More
Graphviz on steroids
We just released our new generic jobbie, Structure101g. If you already know Structure101 for Java or Structure101 for C/C++, you probably already have a good idea of what Structure101g might be. This is for those (and there are many, oh … Read More
Software erosion and package tangles
My recent post on architectural erosion in the findbugs code-base was generally well received, but there were some skeptical voices. In a comment, Emeric questioned whether cyclic dependencies at the package level are anything more than a smell (if that). … Read More
Software erosion in pictures – Findbugs
My particular area of interest in software these days is the importance of levels of abstraction above the raw code. In Java, the most natural place for these to manifest themselves is through the package structure (though this is certainly … Read More
Structure101 Takes Home Jolt Productivity Award
Just got back from SD West and unpacked our Jolt Productivity Award. Huge credit and thanks to all the users that provided the stream of feature suggestions that has contributed to making Structure101 such a great product. And congratulations to … Read More
Structure101 named 2008 JOLT finalist …
… in the Design and Modeling category. Yeah!