Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
We all love Ruby. But let's face it: It isn't perfect. We each may have a personal list of complaints. Yours will vary; this is mine. These are the things about Ruby semantics and the Ruby core that I find counter-intuitive, difficult to remember, incomplete, improperly designed, or not quite adequate. There might even be one or two notes here on syntax, the most fundamental level of any language. And "hate" may be too strong a word; but once in a while, we have to ask what is lacking in our favorite tool, so that someday when replace it, we will have something better (whether that thing is called "Ruby 2.0" or something else entirely). Help us caption & translate this video! http://amara.org/v/FGdy/
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
The video, titled "Ten Things I Hate About Ruby," presented by Hal Fulton at the LoneStarRuby Conf 2011, examines various aspects of the Ruby programming language, highlighting its imperfections and counter-intuitive features. Fulton's aim is to provoke thought and discussion regarding Ruby's design elements that could be improved. **Key Points Discussed:** - **Global Variables:** - Ruby inherits global variables from Perl, which include confusing symbols (e.g., $!, $, etc.). - These globals are rarely used and can lead to side effects, prompting a desire for a culture that avoids them. - **Code to Objects Conversion:** - Various ways to convert code into objects exist, causing confusion even for experts. - Differences between `Proc`, `Lambda`, and the newly introduced 'stabby lambda' can complicate coding for many users. - **Reflection Confusion:** - The reflection system in Ruby complicates understanding which methods belong to which classes and their accessibility (public, private, protected). - **Method Arity:** - The ability to determine method parameters is inadequate, as Ruby doesn't provide sufficient support to know how many parameters a method requires. - **Ruby Gems Complexity:** - Discrepancies in requiring gems (historically varied practices) lead to confusion on different systems and setups. - **Syntax Problems:** - Elements of Ruby syntax, like class appending with `self` and rescue notation (`=>`), are often cumbersome and confuse developers. - **Ordered Hashes:** - Although Fulton personally doesn't use ordered hashes, he acknowledges their practicality for certain use cases. - **Balancing Syntax:** - A discussion on whether Ruby has too much or too little syntax, emphasizing the importance of clarity in programming notation. - **Keyword Arguments & Hashes:** - Fulton shares frustrations regarding the use of hashes as substitutes for keyword arguments and wishes for a more elegant solution. **Conclusions and Takeaways:** Fulton concludes by emphasizing that while Ruby has many strengths, awareness of its weaknesses and potential improvements is vital for developers. Each Rubyist may have their own set of challenges and preferences, which could lead to further discussions and ideas for the language's evolution.
Suggest modifications
Cancel