Code against Code – a Darwinian theory of software development ?
The mechanical era produced many marvelous characters, Charles Darwin being my favourite. Admired by me for his great contribution to the theory of design and also for his marvelous beard. Always wondered how he found the time to groom it ? amidst his all-absorbing work. I guess, it must have helped him preserve his dignified composure as he reeked havoc amidst the Christian community, the biologists, zoologist and geologists of his time.
His then controversial theory is now used by scientist of all hues to understand and interpret how things evolve. We have discussed in this blog how his theories of evolution applies to design. But since software plays a defining role in generating designs, should we not stop to think how this theory may apply to the tools of design ?
Code now plays a critical activity in the determination of architectural form. Its effect on architectural form is now apparent. Its evolution and its use within the younger architectural community is beginning to play a defining role in architecture; mainly because designers have now started to play with code in a way they have never done before.
Now does this require us to assume that this code needs to be open sourced ? cranked out mainly by hippie types? argues not ; an, an interesting article - A Darwinian theory of open source development strategies. It argues for a healthy co-existence of proprietary and open source software each building on the strength of the other each having particular advantages that is necessary and healthy for the development of software.
This article points out :
Darwin’s comparison of natural and artificial selection is worth thinking about in the context community and vendor-led development:
“As man has produced and certainly has produced a great result by his methodical and unconscious means of selection, what may not nature effect… Man selects only for his own good; Nature only for that of the being for which she tends.”
We are beginning to see these models of software development emerging in generative design. The Autodesk community of users built around closed proprietary software, the much more active Rhino community built around open commercial platform and the processing community based around free open source software. These create interesting models for internal and community based environments for software development in design.
It further points out :
If we think about development models and processes then it is possible to the various potentially competing players in collaborative communities as having a similar impact on the development of a particular project as various potentially competing factors – climate, habitat, existence or dearth of predators etc – do in the evolutionary process.
So, there seems to be no simple answers. Co-existence and collaboration between competitors seem to be key for the healthy development of generative design.