Every programming language has some fundamental idea(s) that drives its design and evolution.
For Haskell that’s functional purity and state-of-the-art static typing, for Erlang that’s distributed programming and fault tolerance, for Clojure that’s simplicity and stability.
What all these examples have in common is that they are relatively easy to understand and map to design decisions in the languages. This, in turn, makes it possible to determine down the road whether a language sticks to its core values or deviates from them.
Ruby, however, is very different. It’s world famous for its unique creed - “optimizing for programming happiness”. But what does this really mean? How does one optimize for happiness?
Unfortunately I’ve never heard Matz speak about this, so in this talk I’ll offer you my perspective instead. I'll also discuss some of the recent changes to Ruby and whether they adhere to its creed or not. Controversy & fun ahead!