From: Dan Shafer Date: 2005-12-28T16:25:11+09:00 Subject: Re: The Expert Ruby Programmer On Dec 27, 2005, at 5:27 PM, basi wrote: > Dan, > I must haveI missed CLR formally welcoming an illustrious programming > language guru and writer like yourself! I still have some of your > HyperCard books. They are a classic in clear technical writing. > Very kind of you to say, basi...and for that matter to remember me! I am becoming quite intrigued with Ruby and Rails as I study them in tandem. They just "feel" right. > I'm new myself to Ruby, and I'm still looking for the 'syntactic > essence' of Ruby. It is that thing that once you get it, everything > else is an embellishment. Much in the sense that grasping and > mastering > list manipulation in Lisp/Scheme can take you far and wide. I suspect, > in Ruby, as in other OO languagues, it is the object. I'm ready for a > Ruby book that starts with the most basic object/class and from which > most things I'd like to 'compute' will be shown to be mere extensions > or variations. > AH, yes, l'essence d'objects! I have a vague sense that the class library for Ruby may not yet have settled enough to be the subject of a book, that such a book would be obsolete before publication even if it were made available as an eBook. > But back to the topic: > > << > I found that any non-trivial OO app had > to be rewritten twice during its early lifetime even after it was > working to achieve the kind of reusability and maintainability >>> > > So I'm looking to know what it is that we don't know the first time > that had we at the time known would lessen the need for a major > redesign and rewrite? > Nothing generic and therein lies the rub. If you really grok design patterns and can map the domain you're working in against those patterns, that seems to reduce the *number* of times you have to revise code almost completely, but the need never seems to go away, at least in my experience. This seems to me to be the gestalt of OO programming and I consider it a Good Thing. Refactoring is pretty easy with the right tool and refining the design as you learn is a good way to mimic nature, which is one of the reasons OO programming works so well to begin with. -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. -.-.-.-.-.-.-.-.-.-.-.-.-.-.- Dan Shafer Technology Visionary - Technology Assessment - Documentation "Looking at technology from every angle" http://www.eclecticity.com