The Artima Developer Community
Sponsored Link

Agile Buzz Forum
No change, no change!

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
James Robertson

Posts: 29924
Nickname: jarober61
Registered: Jun, 2003

David Buck, Smalltalker at large
No change, no change! Posted: Dec 21, 2005 6:00 AM
Reply to this message Reply

This post originated from an RSS feed registered with Agile Buzz by James Robertson.
Original Post: No change, no change!
Feed Title: Cincom Smalltalk Blog - Smalltalk with Rants
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rssBlogView.xml
Feed Description: James Robertson comments on Cincom Smalltalk, the Smalltalk development community, and IT trends and issues in general.
Latest Agile Buzz Posts
Latest Agile Buzz Posts by James Robertson
Latest Posts From Cincom Smalltalk Blog - Smalltalk with Rants

Advertisement

Seems that Bruce Eckel is unhappy over all the attention that Ruby (specifically, Ruby on Rails) is getting - so he wrote up a counter to Bruce Tate's "Beyond Java". I don't think he's unfair to Tate's book, although I must admit that I have more sympathy for Tate's argument. In any case, Eckel recycles the "Humane Interface" discussion from awhile back, and - like most of the Java enthusiasts - misses the point:

Martin's argument is that Java's List interface requires you to say aList.get(aList.size -1) to get the last element, and this seemed silly to him. Which it is, if you have unified all sequence containers (that is, list containers) into a single type, as Ruby and Python do. Java, however, follows the C++ STL approach of providing different types based on the efficiency of various operations. The Java libraries do not unify to a single list type because of efficiency issues, so you have to decide if you are going to be fetching the last element from a list a lot, and if you are you use a LinkedList, which does have a getLast() method -- a fact which was completely left out of Martin's original discussion, and the ensuing firefight (other than some ignored comments).

What he misses is the pragmatic approach that Ruby and Smalltalk take. Convenience protocol is no bad thing, and - given decent tools (like Smalltalk has), lots of methods in a class aren't a problem. At least in Smalltalk, most of the convenience protocol landed in the Collection classes based on many, many years of usage - and Ruby was, to a large extent, modeled on Smalltalk. The big problem in a language like Java is that you can't just add a new method to an existing class - instead, you get an explosion of "helper" classes wrapping them. I suppose that's a pragmatic approach given Java's design, but I wouldn't call it an instance of good design.

Eckel approaches all that with the thought that developers should know up front that they'll need a given method, and then pick the right class. Umm, yeah - I always have full information when I get started. I guess in his world, he never runs into that "oh, crap" moment when you realize that some object is missing protocol that would make life simpler. Elliotte Harold, who weighed in on this extensively, never really got that point either.

Anyway, David Heinemeier Hansson (the Rails guy) had some thoughts on Eckel's response to Tate:

I'm losing track of the ill-conceived comparisons, but I do know what's astoundingly clear: Bruce Eckel doesn't like Ruby, he doesn't like the attention its getting, and he doesn't like people such as Bruce Tate fueling that attention. No beef, that's cool. But why not just say it like that?
You could even have presented yourself as the polar opposite to the so-called hyper-enthusiasts: A hyper-detractor! The label comes complete with a cape, an evil smirk, and long tirades about how the other side is no match for your master plan.

David does get a bit too snarky over Eckel's changed opinion on Python - it is possible to change your mind over time. Writing extensively on the web simply makes it possible for people to find your old opinions more easily and imply it's some kind of hypocrisy.

Hat Tip to Tim Bray.

Read: No change, no change!

Topic: Weekly Log Analysis: 12/17/05 Previous Topic   Next Topic Topic: A tip on Humor

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use