Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RubyConf 2016 - To Clojure and back: writing and rewriting in Ruby by Phill MV Act 1 - State of Grace After many years of Ruby, we built our app in Clojure, why not. Clojure is a breath of fresh air. Learn a lisp today! Act 2 - The Fall It's harder to succeed when you're in a new and different ecosystem. How Clojure contrasts with Ruby. Act 3 - The Wilderness Rewriting your app is a bad idea but we did it anyways. How we came to that decision. Act 4 - Reconciliation How I write Ruby has changed: a discussion.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In the talk titled "To Clojure and back: writing and rewriting in Ruby," presented by Phill MV at RubyConf 2016, the speaker recounts the journey of transitioning from Ruby to Clojure while building a software service at App Canary. ### Key Points: - **Act 1 - State of Grace**: The initial excitement of utilizing Clojure, described as a "breath of fresh air," emerges from a desire to expand skills and move beyond the perceived stagnation of Ruby. The use of Datomic, a unique database, facilitated this transition. - **Act 2 - The Fall**: The challenges of adapting to a new ecosystem, where Clojure’s functional programming paradigm contrasts with Ruby's, are discussed. Issues like poor architectural decisions and difficulties in structuring apps lead to complications. - **Act 3 - The Wilderness**: Despite recognizing the risks of rewrites, the speaker reflects on the decision to rewrite their application due to frustrations with the initial architecture and ecosystem. - **Act 4 - Reconciliation**: The experience of re-immersing into Ruby after using Clojure allowed for significant development shifts. Key insights on applying immutability and creating value objects in Ruby emerge from this experience. ### Significant Examples: - **Clojure vs Ruby**: Clojure’s immutability and functional programming principles streamline code and enhance predictability, contrasting with the complexities of mutable state in Ruby. An example discussed is the assurance around variable mutations in Clojure, enhancing code integrity. - **The Rewrite Process**: The final transition back to Ruby saw an increase in code lines but a decrease in complexity and improved performance by switching to PostgreSQL. The speaker notes that the rewrite was conducted more efficiently than the initial build. ### Important Conclusions and Takeaways: - The journey underlines the value of embracing new technologies while recognizing the depth of knowledge gained from them. Although the immersion in Clojure was beneficial, the speaker advocates for appreciating the Ruby ecosystem and integrating lessons learned about immutability and functional programming. - A warning against hastily implemented distributed systems points to the advantages of monolithic architectures for simplified development processes. - The importance of developer satisfaction and the enjoyment of coding are paramount, emphasizing the need for balance between cleverness and fulfillment in software development.
Suggest modifications
Cancel