Posted by Rick DeNatale
Tue, 19 Jun 2007 20:48:00 GMT
Most programmers these days are familiar with, or at least aware of the now classic
“Gang of Four” book Design Patterns: Elements of Reusable Object-Oriented Software
.
One of the recurring arguments about design patterns is how they relate to individual programming languages. The “Gang of Four,” Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, were by majority, proponents of strongly typed languages. Ralph was the sole representative of Smalltalk and the rest of the dynamic object oriented languages. As a result, The GOF book had and has more resonance with the C++ community and it’s successors. Although there
are some Smalltalk examples in the book, many of the patterns express things which are easier, and in some cases
unnecessary to express in a dynamically typed language. I find this a bit ironic, since the whole patterns movement
seems to have started when Ward Cunningham and Kent Beck, two of the best known Smalltalkers, discovered the work of architect
Christopher Alexander and thought that his approach to building and municipal design could be translated to the
design of software.
As I was browsing today, I was reminded that there is another “Design Patterns” book,
“The Design Patterns Smalltalk Companion” by Sherman Alpert, Bobby Woolf, and Kyle Brown.
Which might be of interest to not just Smalltalkers
but also Rubyists, since it approaches the subject from they dynamic language point of view. It’s not easy to find, but Amazon has a few copies in stock.
Sherm was one of the researchers in the IBM User Interface Institute
which was housed in the same building where
John Vlissides and Richard Helm of the “GOF” worked,
the IBM Watson Research center in
Yorktown Heights, NY. I spent quite a bit of time with Sherman and the rest of the UI institute team under John T.
Richards back in the late-1980s to early 1990s.
Bobby and Kyle were OO consultants, who I also knew through Knowledge Systems Corp.
You never know what you might learn from the old Smalltalkers.
Posted in war_stories, smalltalk, best_practices | Tags books, design_patterns, gang_of_four, IBM | no comments | no trackbacks
Posted by Rick DeNatale
Fri, 15 Jun 2007 20:27:00 GMT
A recent thread on ruby-core which touches on the issues of subclassing
prompts me to tell another war story.
Back in the late-1980s to early 1990s, the software industry was starting to warm to the possibilities of object-orientation.
I’d gotten to be seen as one of the experts on OO inside IBM so I found myself
in a series of interesting meetings, but inside IBM and with other
companies.
That’s how I found myself at the headquarters of
a well-known company in the Seattle area
which at that time was one of IBM’s major partners.
This company was the major supplier of IBM’s operating systems
for personal computers. I don’t want to give too many hints, so I’ll give a
pseudonym to the CEO, let’s just call him “Gill Bates”, and I’ll refer to the
company as “BigSoftware” or “BS” for short.
Read more...
Posted in war_stories | Tags fragilecode, frameworks, inheritance, som | 2 comments
Posted by Rick DeNatale
Tue, 12 Jun 2007 15:24:00 GMT
At the last meeting of the Agile RTP group, I won Michael T. Nygard’s book Release It!
which I’m reading as a background task. This morning I ran across this:
Interpreted languages such as Java and Ruby almost never crash. Sure they get application errors, but it’s relatively rare to see the interpreter or virtual machine crash. I still remember when a rogue pointer in C could reduce the whole machine to a navel-gazing heap.
I remember “back in the day” when there were endless arguments between the C++ and Smalltalk advocates. The C++ folks would often quote Bjarne Strroustrup’s fear of flying in an airplane whose flight control system was written in Smalltalk, and threw a “message not understood” exception.
Those of us in the Smalltalk camp found this amusing, since the alternative was a system crash caused by an invalidpointer.
Now maybe Nygard framing rogue pointers in C as a memory means that the problem has been solved, but I seem to recall having seen it recently.
It’s Not Just The Language Stupid
One point here is that pet-features such as strong vs. dynamic typing or garbage collection vs. allegedly more performant[1] manual memory management aren’t panaceas. They can have a major effect on aspects such as easo of development, or tweaking out the last bit of performance, sometimes in non-intuitive ways.
Making robust software requires more than just choosing a language, it requires craftmanship, adherence to best practices for the chosen language(s) and technologies, and a realistic understanding of the challenges at hand.
Release It!
And that’s where we come back Nygard’s book. Although I assume that most of my readers are Rubyists, and Nygard is a Java guru, there is much of value here for anyone concerned with producing robust software that can stand up to the real world.
Based on what I’ve read sofar, and skimming the rest, I can recommend it. If you’re interested you can buy it directly from the Pragmatic Programmers, or via the amazon.com link. The later would help feed the duckdogs who run this site, and lower my distraction from their gowling stomachs.
[1] The “allegedly” will no doubt be explained in further posts here.
Posted in ruby, war_stories, smalltalk | Tags books, C, robustness | no comments
Posted by Rick DeNatale
Mon, 11 Jun 2007 20:32:00 GMT
Recently, I’ve seen the Sapir-Whorf hypothesis used to motivate new spins on old ideas, such as behavior-driven design. For those unfamiliar with Sapir-Whorf it comes from the school of linquistic determnation, and taken to the extreme posits that a person’s language determines the way he or she thinks.
I’m going to post some thoughts about bdd soon, but this appeal to Saphir-Whorf reminds me of an experience I had about 10 years ago.
Read more...
Posted in psychology, war_stories | Tags linguistics, psychology | no comments
Posted by Rick DeNatale
Sat, 29 Jul 2006 13:34:00 GMT
For those who don’t want to read a lot, or dont care too much, here’s the executive summary:
- I’m a long time object programmer.
- I worked for IBM for 31 years.
- I was one of the early adopters/advocates of Smalltalk in IBM.
- I’ve done a lot of Smalltalk.
- I’ve done a lot of standards work.
- I’ve done a lot of Java.
- I’m now free of IBM and Java, and I’m learning to love Ruby.
As a result of all of the above I’ve developed lots of strong opinions, weakly held, which I’d like to share.
Now for those with the stamina, some more details on my personal journey…
Read more...
Posted in ruby, war_stories, smalltalk | Tags memoirs, oop, smalltalk, types | 7 comments | no trackbacks