Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RubyConf AU 2014: http://www.rubyconf.org.au He posted the slides from his talk here: slid.es/arnab_deka/modern-concurrency-practises-in-ruby He posted the slides from his talk here: slid.es/arnab_deka/modern-concurrency-practises-in-ruby
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 this video from RubyConf AU 2014, Arnab Deka presents on 'Modern Concurrency Practices in Ruby.' The talk is inspired by concepts from the book 'Seven Languages in Seven Weeks,' discussing the potential need for better concurrency models in Ruby. Deka provides a comprehensive exploration of concurrency versus parallelism, emphasizing that while both are important, the focus will be on concurrency, particularly in the context of Ruby programming. Key points discussed in the talk include: - **Definitions**: Concurrency is about doing multiple tasks simultaneously toward a common goal, while parallelism involves tasks being executed at the same exact time. - **Threads and Mutexes**: Deka illustrates how to manage state with Ruby threads and the complications that arise from using them, such as potential race conditions and the global interpreter lock. He emphasizes the importance of mutexes to mitigate issues but warns about their impact on debugging and real-world application complexity. - **Atomic Operations**: Introducing the concept of atomic operations as a higher level of abstraction, Deka showcases how they utilize the processor's capability to execute operations atomically, reducing risks associated with traditional threading models. He mentions the `atomic` gem as a valuable tool in Ruby to achieve this functionality. - **Futures**: Deka explains futures, a concept used to manage network calls without blocking the main thread. He uses the `Celluloid` gem to demonstrate creating future operations in Ruby, which allow for efficient asynchronous programming. - **Actor Model**: He describes the actor model, with an example of how Elixir handles processes and message passing, showcasing its benefits for building robust systems by decoupling state from processes. - **Software Transactional Memory (STM)**: Deka touches on the concept of STM, similar to database transactions for in-memory operations, highlighting how it ensures state consistency among competing threads. - **Channels and CSP**: Drawing from Go's capabilities, he discusses how channels can help structure communication between processes efficiently, promoting effective data flow. Deka concludes by encouraging developers to explore these concurrency models, which can significantly enhance the scalability and resilience of applications. He advocates for an open-minded approach toward different technologies and systems, emphasizing simplicity as key in Ruby development. Overall, the talk presents practical insights into modern concurrency patterns applicable to Ruby developers, promoting a deeper understanding of managing concurrency effectively in software design.
Suggest modifications
Cancel