Composability and Fluent Conf 2016
I had the chance to go to O'Reilly's Fluent Conf in San Francisco this month and it was an exciting time.
One presentation I really liked was from Dave King at Exaptive called "Helping your code take flight with the right abstractions". He blended object-oriented and functional programming concepts to demonstrate an abstraction approach that emphasizes not just modularity and loose-coupling, but composability.
I realize that was a lot of jargon, so an explanation in layman's terms is that it is good for code to be built in maintainable units that plug in together, but it is even better to make each unit's inputs flexible enough that it could be useful for someone else's purpose that you never imagined.
He shared a cool example about an app that analyzed images of dogs and tried to guess what breed it it (I have my own interest in image analysis, so I thought that was neat by itself). Because the app didn't (and couldn't, really) prevent people from trying to analyze images of people, the app made funny guesses about what dog a person most resembled.
This is only mildly relevant, but does demonstrate the fun things that can happen when your software is flexible enought to be used in unanticipated but useful ways.
Another highlight from Fluent Conf was I got a free, signed copy of RESTful Web APIs from Mike Armundsen because I was one of the first people at his booth. So I'm excited to read through that.