Skip to content

Weblog About Jim Jim's Resume Discussion Mailing List Search
  You are not logged in Link icon Log in Link icon Join
You are here: Quality Begs for Imagination!

This Thread

1 message

(no replies yet)

Twitter Updates
Pro Services

Jim Roepcke specializes in WebObjects (Java), Plone (Zope, Python), and Cocoa (Objective-C).

  • consultation
  • development
  • documentation
  • mentoring

Contact Jim for more information.

Python Tutorial

I presented the Introduction to Python for Plone developers tutorial at the first Plone conference in October 2003. Slides and Video are available to all on the plone.org site.

Badges

Proud Member of the ACM

Proud Member of the Association for Computing Machinery

RSS reader for Mac OS X

NetNewsWire: More news, less junk. Faster

Fantasy Trading of HBWT at:

Listed on BlogShares

Design by:

Powered by Plone
Blog Directory - Blogged
Log in
Name

Password

 
I forgot my password; please send me a new one.
 
 

Quality Begs for Imagination!

Message Details
Posted
2/23/2008; 6:29 PM by Jim Roepcke
Last Modified
2/23/2008; 6:29 PM by Jim Roepcke
In Response To
(#Top of Thread.)
Label
None.
Read Count
51
Message Body
Michael Feathers: Quality Begs for Object-Orientation

"I think that most functional programming languages are fundamentally broken with respect to the software lifecycle. I realize that's a bold statement. Let me back it up."

The crux of Michael's argument is that imperative languages provide easier ways to "substitute one piece of functionality for another without editing". He calls the ways this can be done "seams". Some examples of seams mentioned in his post are: subclassing, preprocessors, function pointers(!), and link substitution.

(Check out his post to see the example Java code he bases his argument on)

He almost might have tricked me into thinking he had a point, but... function pointers? If he'll consider function pointers a seam, how do functional languages lack seams? Functional languages treat functions as first-class values, they can be passed as arguments to functions, assigned to variables, stored in data structures, be composed.... all of these properties, especially taken in combination, burst seams left, right, and centre!

I'm seriously disappointed to see someone involved with the "Beautiful Code" book lack the imagination to think of ways programmers could design adaptable code using functional languages.

Replies
None.

May 2008
Sun Mon Tue Wed Thu Fri Sat
  1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Apr Jun
 
Sponsors
Research

Jim Roepcke is Willing to Fail

Books

I'm currently reading:

I'm currently reading Programming Erlang

I co-authored:

I co-authored this book