Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
By, Ilya Grigorik The world of concurrent computation is a complicated one. We have to think about the hardware, the runtime, and even choose between half a dozen different models and primitives: fork/wait, threads, shared memory, message passing, semaphores, and transactions just to name a few. And that's only the beginning. What's the state of the art for dealing with concurrency & parallelism in Ruby? We'll take a quick look at the available runtimes, what they offer, and their limitations. Then, we'll dive into the concurrency models and ask are threads really the best we can do to design, model, and test our software? What are the alternatives, and is Ruby the right language to tackle these problems? Spoiler: out with the threads. Seriously. Help us caption & translate this video! http://amara.org/v/GJEt/
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 'Modeling Concurrency in Ruby and Beyond', Ilya Grigorik presents an in-depth exploration of concurrency, emphasizing its complexities and the various models available for programming in Ruby and other languages. The session begins with Grigorik's personal journey and background in concurrency, highlighting the difference between academic knowledge and industry practices. He elaborates on the significance of understanding both threads and events in designing concurrency models, taking into account the hardware architecture and its impact on performance. Key points discussed include: - **Understanding Hardware Architecture**: The need to consider aspects like CPU caches and RAM access times is crucial for optimizing concurrency. Grigorik explains how innovations in hardware parallelism affect software designs. - **The Role of Measurement**: Statistically analyzing performance across various hardware and software implementations is essential to obtain accurate metrics for concurrent applications. - **Alternative Concurrency Models**: Grigorik challenges the reliance on threads as the primary concurrency model, introducing alternatives like the Actor model and Communicating Sequential Processes (CSP). He emphasizes that these models can simplify debugging and enhance performance by avoiding shared state. - **Implementing Concurrency in Ruby**: The speaker discusses practical implementations in Ruby, proposing improved concurrency via event-driven architectures as seen in languages like Go. He shares experiences with developing libraries that streamline concurrent programming in Ruby. - **Cross-Language Learning**: Grigorik encourages the study of concurrency models across different programming languages to inspire innovation and apply new techniques in Ruby. In conclusion, the speaker calls for a broader perspective on concurrency that encompasses a variety of models beyond traditional threads. The session underlines the importance of experimenting with advanced concurrency features to enable cleaner, more maintainable code in Ruby. He invites the audience to actively engage with the growing body of knowledge on concurrency and to explore the collaborative potential within the developer community. Overall, this presentation serves as a valuable resource for software developers aiming to deepen their understanding of concurrency in Ruby and other languages.
Suggest modifications
Cancel