This attitude worries me when I see it amongst professional developers. Not depending on the internal implementation details of something is such a fundamental OO and CS tenant, that I cant believe people just accept it as okay.
You should _never_ write code that depends on the deep dark details of that particular version's implementation if at all possible to avoid it. That's just bad. It results in tightly coupled code that will break with minor version upgrades or bug fixes in the platform. A language/framework should publish a contract (whether that be interfaces, documentation, or whatever) that users can adhere to, without having to worry about how its implemented, which could change from minor version to minor version. A great example is the question of what are all the possible symbols that you can pass to the 'head' command in a Rails controller. Not documented anywhere. You have to dig through the code, and even then its not simply laid out. There are many cases like that. Drives me batty. Mind you, I'm still using Ruby and Rails like crazy right now, because for the smaller-ish apps that we do a lot of, it cant be beat. But stuff like creating implementation dependencies just drives me up the wall. Andrew ___________________________________________ Andrew Hollamon D'Mention Systems, LLC http://dmnsys.com [EMAIL PROTECTED] 520-229-8730 office 520-623-3879 fax Use our online helpdesk: http://helpdesk.dmnsys.com/ -----Original Message----- From: Chad Woolley [mailto:[EMAIL PROTECTED] Sent: Wednesday, December 10, 2008 10:31 AM To: jug-discussion@tucson-jug.org Subject: Re: [jug-discussion] JRuby vs. Groovy (was: Any News on the Holiday Party?) <snip /> Also, Ruby tends to be so clean that you can often see what is going on just by digging a short way into the library. Agreed, for many people (Java developers) would be aghast at (code is the documentation), and consider it a drawback of Ruby, but I think that is one of the differences in the cultures. In dynamic languages (won't even exclude Groovy), it's so easy to reopen classes and hack what you want, you spend a lot more time digging in, understanding, changing, and extending the libraries you use. <snip /> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]