In this year's Rails Conf 2018 keynote, David Heinemeier Hansson challenged the Rails community to compress the concepts in code worth keeping so that we can broaden the base of people making the software that is eating the world. It was an inspiring talk that tracked the history of Rails and discussed the kinds of problems DHH sees as improtant to solve.
The talk began with a discussion of three examples of "Conceptual Compression". DHH first talked about relational databases and database administrators - a role largely non existent or 'exotic' to quote the author of Rails. He next related an anecdote of how the Basecamp engineering team dreaded having to implement sharding, or splitting data across multiple databases, as the demands on their application increased. The team kept putting the problem off, until advances in hardware mitigated the need for sharding at Basecamp altogether. Finally, DHH talked about how the introduction of ActiveRecord meant that developers could start using a relational database without writing pure sql all the time.
These trends or conceptual compressions can be thought of as legos. The act of compressing a difficult concept is analogous to increasing the size and specialization of the lego piece. DHH showed a photo of a hand built lego Millennium Falcon. He contrasted this photo with a manufactured Millennium Falcon to show that while it may be fun to build from legos, using an industrial, manufactured process typically ends in a better result.
Conceptual compression is the idea of taking a concept simplifying it such that a developer is able to get 80% of the value with 20% of the effort. The ORM ActiveRecord is a good example of getting significant value with minimal effort. Rather than focusing on writing performant sql queries, now developers can focus on other problems.
DHH said that the story of Rails for the past 15 years has been one of conceptual compression. It is this story that makes him most proud because conceptual compression lowers the barrier to enter the development world. It decreases the amount a person needs to know to get started.
Lowering the barrier to entry is not the current trend in the industry. Instead, new concepts are being created rapidly, but in an absence of any corresponding surge in compression. In other words, the list of things a person ought to know to get into web development is much longer than it used to be.
DHH believes that the result of the proliferation of uncompressed concepts is the increased degree of specialization required in the development industry. He is concerned that a result of increased specialization is increased alienation from one's labor.
The move towards esoteric specialization is coupled with the colonization of the internet by a few mega-corporations. To illustrate this point DHH explained that 89% of advertising spending goes to Facebook and Google. Companies like these are (and this is, in my opinion, the least charitable reading of their actions) getting rich by extracting value from our privacy and attention.
One possible future that emerges from DHH's arguments is quite dystopic. It is increasingly hard or even impossible to be able to develop professional grade applications in small teams. Rather, developers will work for mega corporations in their own highly niche and unfulfilling area of software engineering. Additionally, fewer individuals will be drawn into the field of software development due to the steeper learning curve and increased labor alienation.
Another potential according to DHH is to arm the "rebels" so that we can fight back on technical, economic and societal levels. Technically fighting back means building conceptual compressions that free developers up to work on new problems and entreat would-be developers into the field. Economically, this means building new applications with new business models that are not at best ethically ambiguous. Societally, DHH is advocating for broadening the base of people making software.
DHH ended his talk with a call to action. He said let's compress the concepts worth keeping, reject the ones that are not and broaden the base of people making the software that is eating the world.
I've been working with Rails professionally for a year so I would be lying if I said that I did not have a celebrity moment when DHH took the stage. His talk combined his experience, vision and 'I don't give a shit' attitude to brilliant affect. I found his observations both enlightening and inspiring and I'm so excited to continue learning in the Rails community with new and old friends equally inspired by what could be and the world we can make together.