Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
By Terence Lee Ruby is a great language for building CLIs. There’s an amazing selection of existing libraries like Thor, GLI, or even OptionParser. You probably use a number of Ruby tools everyday like chef, the heroku toolbelt, , and of course the rails command line tool. Though it’s easy to build a Ruby CLI, distributing it to end users is much more complicated because it requires a Ruby runtime. One option is to rely on Ruby being already installed on the end user’s computer. The other is to bundle ruby as part of the distribution package. Both of these are problematic so much that Vagrant, CloudFoundry and hub (Github command-line tool) have all switched over to Go. But there’s still hope! In 2012, Matz started working on a lightweight embeddable ruby called mruby. Since mruby is designed for being embedded in other compiled languages, it also solves the distribution problem. In this talk we’ll look how we can write CLI tools using mruby to produce a self-contained binary that can be shipped to end users. Help us caption & translate this video! http://amara.org/v/HKqb/
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 "mruby: a Packaging Story Filled with Freedom," Terence Lee discusses the challenges of building and distributing command-line applications in Ruby and introduces a solution through the lightweight, embeddable Ruby implementation called mruby. Key Points: - **Introduction to Command-Line Applications**: Terence begins by explaining command-line applications and their importance in interacting with the terminal. He contextualizes his background and experiences related to Ruby and command-line tools. - **Distribution Challenges**: A significant problem with deploying Ruby command-line tools is the necessity of having Ruby installed on the user's system. Terence shares how Heroku initially used Ruby gems for the Toolbelt but faced issues with Ruby version discrepancies among users. - **Transition to Bundled Ruby Runtime**: To mitigate distribution problems, Heroku decided to bundle Ruby with their Toolbelt, but Terence notes the inefficiencies this created during packaging and sharing across different platforms. He elaborates on how the adoption of Go for building CLI tools emerged as a solution to ease distribution and runtime concerns. - **Introduction to mruby**: In 2012, Matz developed mruby to address these issues, making Ruby usable in embedded environments. Terence introduces his project, MRuby CLI, aimed at creating self-contained binaries which can be easily distributed without requiring a separate Ruby installation. - **Performance Advantages**: He highlights the performance improvements offered by mruby, noting its faster boot times and minimal runtime overhead compared to traditional MRI Ruby applications. Demonstrations include the stark contrast between boot times of "Hello, World!" programs using MRI and MRuby CLI, showcasing MRuby’s efficiency. - **Cross-Compilation and Ease of Use**: Terence emphasizes that MRuby CLI allows for cross-compilation across major operating systems, simplifying the build process and making it straightforward for developers to create and share applications. He describes the setup process and emphasizes the lightweight nature of the binaries produced. - **Comparison with Existing Solutions**: Additionally, he discusses existing alternatives like Traveling Ruby and other emerging programming languages that also offer easy distribution, acknowledging their benefits and drawbacks. - **Final Insights**: Terence encourages the Ruby community to explore MRuby and its ecosystem while acknowledging it is still evolving. He invites developers to contribute and helps them navigate the shift in packaging paradigms to enhance their command-line tools. In conclusion, Terence Lee’s talk illustrates the potential of mruby as a transformative tool that allows Ruby developers to overcome longstanding distribution challenges for command-line applications, emphasizing community engagement and continued innovation in the Ruby ecosystem.
Suggest modifications
Cancel