Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RubyKaigi2017 http://rubykaigi.org/2017/presentations/DeltonDing.html High Concurrent Ruby Web Development Without Fear We've been debating on the concurrency solution of Ruby for several years. Numerous custom "evented" drivers have been built, but for most of these projects, developers are required to think in the "evented" way to get things work properly, which not only breaks the elegance of Ruby programming, but also greatly increases the complexity of the refactoring process. We will then think in Ruby, looking for the solution to make your whole web application "evented" with great meta-programming features of Ruby language itself. So that, you could still concentrate on your business models while programming as usual, but the performance may boost to 5 times faster or more without any hesitation.
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 presentation titled "High Concurrent Ruby Web Development Without Fear," Delton Ding addresses the challenges and solutions associated with enhancing concurrency in Ruby web applications. He begins by sharing his personal experiences leading to the conference, including hardships faced during his travel due to a typhoon, which sets a relatable context for the audience. Ding emphasizes that, while Ruby is often viewed as slow, effective concurrency solutions can be employed to significantly boost performance without sacrificing the elegant nature of Ruby programming. **Key Points Discussed:** - The "sweet spot" for concurrency in Ruby: Solutions should be straightforward to implement and should not require extensive changes to existing code. - Anecdote about a startup, Zhu Jie, shows the failures of a non-concurrent backend during high traffic, underscoring the necessity for reliable concurrency strategies. - Benchmarks indicate that while Ruby may lag in raw performance, real-world applications are often I/O-heavy rather than CPU-intensive. Thus, the need arises for asynchronous processing models to manage this I/O effectively. - The debate over Ruby's performance is discussed, acknowledging the Global Interpreter Lock (GIL) and the memory consumption challenges in traditional multi-threaded models. - Ding critiques traditional asynchronous approaches in Ruby, citing issues like "callback hell" prevalent in JavaScript, which can similarly arise with Ruby's EventMachine. - He explores the potential of using fibers for better context switching in concurrent handling while also addressing the limitations of current approaches and drivers. - The presentation discusses efforts to develop a lightweight web framework, dubbed Midori, aiming to mitigate I/O blocking and optimize middleware processes. - Specific examples illustrate how metaprogramming can allow existing Ruby codebases to achieve better performance, preserving familiar coding styles while enhancing speed. - Future goals include enhancements in I/O handling, support for HTTP/2.0, real-time communication improvements, and seamless integration with Rails, thus broadening Ruby's applicability in modern web development. **Conclusions and Takeaways:** - Delton Ding stresses the importance of evolving Ruby to meet modern demands by integrating beneficial features from other languages while retaining its ease of use. - The Ruby community is experiencing a resurgence of interest, fueled by innovative solutions that breathe new life into the language's application in high-concurrency environments. - Ding's work serves as a roadmap for developers aiming to improve Ruby's concurrency capabilities while maintaining its elegant syntax and programming model.
Suggest modifications
Cancel