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]

Reply via email to