Carlo Pescio-On Growth and Software
Successful software tends to grow.
In practice, software can grow only in two ways: by adding new, independent blocks of code (whatever those are in a given language / paradigm: procedures, functions, classes, clauses, aspects, …) or by making existing blocks of code bigger. In many cases, it grows through a combination of the two.The way we shape our software encodes an implicit growth model, and correspondingly, supporting specific growth models requires specific shapes and leads to the natural emergence of known (and novel) language constructs.
This talk will explore the relationship between the demands of growth and the responses of software constructs, with examples in Scala, Haskell, and just a sprinkle of C#.