Ted Leung on the air
Ted Leung on the air: Open Source, Java, Python, and ...
Tue, 29 Apr 2003
Linearity, Code generation and object failure
A raft of language postings today: Carlos weighs in with pointers to the "Objects have Failed" debate held at OOPSLA 2002, where the opposing positions were represented by Guy Steele and Dick Gabriel. The two essays are "the glass is half empty" and "the glass is half full". Instead of looking a whether objects have succeeded or failed I think we need to look at what is still unfinished.  Regarding this, Steele said
Now, objects don't solve all the problems of programming. For example, they don't provide polymorphic type abstraction (that is, generic types). They don't provide syntactic abstraction (that is, macros). Procedural programming still has its place in the coding of methods. But to say that objects have failed because they don't solve all possible problems is like saying carbohydrates have failed because you can't live on pure sugar.
As I read Gabriel's essay, it seems that you could boil a lot of his argument down to more simplicity and more dynamism, particularly in the types domain.  There were one or two other interesting points that were made:
Powerful concepts like encapsulation were supposed to save people from themselves while developing software, but encapsulation fails for global properties or when software evolution and wholesale changes are needed. Open Source handles this better. It’s likely that modularity—keeping things local so people can understand them—is what’s really important about encapsulation.
I think that this an interesting observation as to where language constructs facilitate objectives vs when process facilitates those objectives.
Objects require programming by creating communicating entities, which means that programming is accomplished by building structures rather than by linguistic expression and description through form, and this often leads to a mismatch of language to problem domain.
This sounds to me like a call for additional support for metalinguistic abstraction, which is what macros are all about.

In the vein of what's left to do, as I was looking through Gabriel's notes I saw many quotes from William Cook, who preceded me both at Brown and at Newton, so I did a little googling and found his home page.  And lo and behold, there's a presentation with his ideas on what's left to do.  The things from his list that resonate with me:

  • Postmodernism - a collage of paradigms (particularly things like persistence and XML).  There was a paper from Erik Meijer and Wolfram Schute on this blog today.
  • Descriptive Language - I see better support for metalinguistic abstraction as a key here.
  • Linearity - "A change in requirements is proportional to the change in implementation". Will claims this is more important than encapsulation, modularity, and reuse. I'd say that linearity is what those things are trying to enable.  It doesn't hurt that he got this idea from Sussman.
  • Domain-Specific modeling - macros is normally what I think of here. It was interesting to see his adidtions of generative programming, meta-programming, and staged-computation

Winding up todays PL entry is a posting from John Lam which referred to the Code Generation Network and a really good interview with Dave Thomas.  I'm really going to need to go read the Pragmatic Programmer, because the more I read of Thomas, the more I like what I read.  I like the way that he separates code generation as a smell versus code generation as a way of implementing "Don't Repeat Yourself" (DRY).  Seems to me that DRY is also a way of getting Linearity.  The other thing that was interesting was his example code generator in Ruby, in which he uses active code and Ruby's ability to run code a class definition time (sounds like macros/MOP to me).  I need to go find out how to do this in Python -- the metaclass documentation leaves a bit to be desired.  I'm probably going to need to go take a serious look at Ruby, just so that I can be informed.
[13:04] | [computers/programming] | # | TB | F | G | 1 Comments | Other blogs commenting on this post
lil rob
Posted by
rudy at Mon Sep 12 17:31:44 2005

You can subscribe to an RSS feed of the comments for this blog: RSS Feed for comments

Add a comment here:

You can use some HTML tags in the comment text:
To insert a URI, just type it -- no need to write an anchor tag.
Allowable html tags are: <a href>, <em>, <i>, <b>, <blockquote>, <br/>, <p>, <code>, <pre>, <cite>, <sub> and <sup>.

You can also use some Wiki style:
URI => [uri title]
<em> => _emphasized text_
<b> => *bold text*
Ordered list => consecutive lines starting spaces and an asterisk

Name:


E-mail:


URL:


Comment:


Remember my info?


twl JPG

About

Ted Leung FOAF Explorer

I work at the Open Source Applications Foundation (OSAF).
The opinions expressed here are entirely my own, not those of my employer.

Creative Commons License
This work is licensed under a Creative Commons License.

Now available!
Professional XML Development with Apache Tools : Xerces, Xalan, FOP, Cocoon, Axis, Xindice
Technorati Profile
PGP Key Fingerprint
My del.icio.us Bookmarks
My Flickr Photos


Syndicate
RSS 2.0 xml GIF
Comments (RSS 2.0) xml GIF
Atom 0.3 feed
Feedburner'ed RSS feed

< April 2003 >
SuMoTuWeThFrSa
   1 2 3 4 5
6 7 8 9101112
13141516171819
20212223242526
27282930   

Archives
2006
2005
2004
2003

Articles
Macintosh Tips and Tricks

Search
Lucene
Blogs nearby
geourl PNG

Categories
/ (1567)
  books/ (33)
  computers/ (62)
    hardware/ (15)
    internet/ (58)
      mail/ (11)
      microcontent/ (58)
      weblogs/ (174)
        pyblosxom/ (36)
      www/ (25)
    open_source/ (145)
      asf/ (53)
      osaf/ (32)
        chandler/ (35)
        cosmo/ (1)
    operating_systems/ (16)
      linux/ (9)
        debian/ (15)
        ubuntu/ (2)
      macosx/ (101)
        tips/ (25)
      windows_xp/ (4)
    programming/ (156)
      clr/ (1)
      dotnet/ (13)
      java/ (71)
        eclipse/ (22)
      lisp/ (34)
      python/ (86)
      smalltalk/ (4)
      xml/ (18)
    research/ (1)
    security/ (4)
    wireless/ (1)
  culture/ (10)
    film/ (8)
    music/ (6)
  education/ (13)
  family/ (17)
  gadgets/ (24)
  misc/ (47)
  people/ (18)
  photography/ (25)
    pictures/ (12)
  places/ (3)
    us/ (0)
      wa/ (2)
        bainbridge_island/ (17)
        seattle/ (13)
  skating/ (6)
  society/ (20)



[Valid RSS]

del.icio.us linkblog

www.flickr.com

Blogroll

java.blogs
Listed on BlogShares

Locations of visitors to this page
Where are visitors to this page?


pyblosxom GIF