I love gems. We all love gems. Gems are great. But the core requirement of any gem is that it abstracts a piece of functionality out into a general re-useable library. Sometimes that extra generalization can cause an explosion in complexity both in the gem library and in the client code that leverages it. In this talk we’ll look at hand-rolled replacements for a number of common gems and weigh the pros and cons of a generalized library versus a specific implementation.
I will keep "hating on gems" to an absolute minimum. This is about observing and weighing tradeoffs, not "durrrr, this gem sucks!"