Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Dilemma of Simplicity

The Dilemma of Simplicity

Over the years we've learned to pay attention to the importance of a number of highly desirable qualities in software: readability, maintainability, adaptation to change. We've accepted these values as good and actively pursue them yet we consistently ignore what is probably the best method of achieving these qualities, it's staring us right in the face now.

Slowly but steadily the philosophy of embracing simplicity in software design by carefully calculating and minimizing unnecessary complexity is gaining traction in our community, and for a good reason: it organically pushes us to the best software practices we all know and love, it both embraces all the core principles the ruby community has developed over the years while rejecting many of the common practices we carry based on inertia but which directly contradict these values.

In this talk I explore my journey on this shift in perspective from certain fragments of our community and how thinking about simplicity as one of our core values can push us to be better developers while producing better quality of software. We don't need our crutches anymore, let's drop them together!

Pablo Astigarraga

April 26, 2014

More Decks by Pablo Astigarraga

Other Decks in Programming


  1. User Experience uri = URI('http://example.com/index.html')! params = { :limit =>

    10, :page => 3 }! uri.query = URI.encode_www_form(params)! ! res = Net::HTTP.get_response(uri)! ! puts res.body if res.is_a (Net::HTTPSuccess)
  2. User Experience payload = {'key1': 'value1', 'key2': 'value2'}! ! r

    = requests.get(! “http://httpbin.org/get",! params=payload! )! ! r.status_code