The Three R's

The other day I mentioned the following on Twitter:

"There is a really key piece of insight that folks may miss from the most recent React Podcast. I urge folks building modern web apps to start around this time stamp and listen forward. Real nugget of wisdom style of things to come"

I linked out to a snippet from this React Podcast episode. In it, Chris Biscardi talks about three products that will shape the way we, developers, build things (on the web) for the foreseeable future. These three R's are as follows:

  1. Rome
  2. Rust
  3. Ruby On Rails

Please take the time (maybe an hour's worth while you garden) to listen to that episode. To this author, these three pieces of technology embody these two concepts:

Community

The Rust's communities use of RFCs, Rails' myriad of online communities as well as Rails Conf, and Rome's philosophy section all showcase projects dedicated to community building. With a world filled with tools, those that highlight and encourage community from the ground up tend to be the real winners.

These communities not only sustain the lifecycle of these projects but, end up allowing the products to have a much more sustainable growth curve. Just like offline communities, there are friendships built, money exchanged, and ideas and expression shared throughout the group. Developers pine to be advocates and stewards of these communities when they are formed with inclusivity in mind.

Convention Over Configuration

There seems to be a select group of people who are returning to this idea when building items for the web. Rails has upheld this mantra for years, Rome's existence is to ease the config fatige in the world of JavaScript, and Rust aims to apply convention where convention makes sense. Namely in their modules and tests.

Over the last 5-10 years (it feels like), developers have begun to ashew the concept of convention. This is true in how we organize our Express backends, the proliferation of ways to serialize the shape of JSON in API's, and the onslaught of different ways to build our single page frontends.

Exploring these tangents in toy or personal projects is an absolute joy. However, when it comes to making a decision with a team it can be a brutal 'mincing' of words. Each person brings a different style to the table and with no convention, everyone in the room is likely accurate in their own snowflake of a way.

What products/frameworks or ideas do you think will shape the next 5/10 years of programming for the web? Feel free to reach out on Twitter if you want to share.