Ruby Is The Future
enfranchisedmind.com
Ruby Is The Future
1–10 of 56 posts
Re: Ruby Is The Future
#2"... later upgrades to the library don’t need to be re-fixed: the one-time patch will automatically get re-applied by application code automatically!"
Anyone who fails to realize how monkey-patching can and will break both subtly and catastrophically across library upgrades has no business advising anyone regarding language choices.
[Edit] I hate April Fool's Day. Depressingly, the author's satire is so subtly aligned with common arguments as to so thoroughly fool.
Re: Ruby Is The Future
#3The author claims that monkey-patching private methods to expose them publicly is representative of Ruby's beauty, and specifically: "... later upgrades to the library don’t need to be re-fixed: the one-time patch will automatically get re-applied by application code automatically!" Anyone who fails to realize how monkey-patching can and will break both subtly and catastrophically across library upgrades has no busin…
As for monkey patching, yes, it's ill-advised in general just as global scope and gotos are ill-advised for similar reasons. However, monkey patching is a powerful feature if used responsibly as Chad Fowler has noted ("The Virtues of Monkey Patching"):
http://chadfowler.com/index.cgi/Computing/Programming/Ruby/T...
Now admittedly, not every programmer is as competent or responsible as Chad Fowler or the programming world would be a very different place but the point is there's a right way and a wrong way to do it.
Werner Schuster's article on InfoQ ("Ruby's Open Classes - Or: How Not To Patch Like A Monkey") has more good advice on how to do it the right way:
http://www.infoq.com/articles/ruby-open-classes-monkeypatchi...
Re: Ruby Is The Future
#4The author claims that monkey-patching private methods to expose them publicly is representative of Ruby's beauty, and specifically: "... later upgrades to the library don’t need to be re-fixed: the one-time patch will automatically get re-applied by application code automatically!" Anyone who fails to realize how monkey-patching can and will break both subtly and catastrophically across library upgrades has no busin…
Just because it's a satire doesn't mean the title in incorrect. I would argue that Ruby is, in fact, the future for the same reason that Python is the future. As for monkey patching, yes, it's ill-advised in general just as global scope and gotos are ill-advised for similar reasons. However, monkey patching is a powerful feature if used responsibly as Chad Fowler has noted ("The Virtues of Monkey Patching"): http://c…
Re: Ruby Is The Future
#5Re: Ruby Is The Future
#6Just two words: "Hopefully not..."
Re: Ruby Is The Future
#7Re: Ruby Is The Future
#8Earlier quoted context omitted.
Just because it's a satire doesn't mean the title in incorrect. I would argue that Ruby is, in fact, the future for the same reason that Python is the future. As for monkey patching, yes, it's ill-advised in general just as global scope and gotos are ill-advised for similar reasons. However, monkey patching is a powerful feature if used responsibly as Chad Fowler has noted ("The Virtues of Monkey Patching"): http://c…
As noted in Werner Schuster's article, many languages (such as C# or Scala) do support type-safe, non-ambiguous, non-conflicting extension of existing classes, demonstrating that extension of existing classes can be safely implemented and does not require the use of dangerous monkey-patching.
I've done a lot of ruby, and I've had monkey patching bite me a few times. However, fixing the problem was never that hard (two days max) and is clearly overshadowed by the productivity gained from the power ruby gave my teams.
Re: Ruby Is The Future
#9Just two words: "Hopefully not..."
Why? Because of monkey patching, syntax, performance, the community or some other reason such as you prefer Python or have an intuitive, ineffable and unexpressable disklike of the language or because Matz is from Japan and they bombed Pearl Harbor?
Re: Ruby Is The Future
#10Earlier quoted context omitted.
Why? Because of monkey patching, syntax, performance, the community or some other reason such as you prefer Python or have an intuitive, ineffable and unexpressable disklike of the language or because Matz is from Japan and they bombed Pearl Harbor?
I think (and I mostly code Ruby these days) it's not least because of comments like this.