The Artima Developer Community
Sponsored Link

Agile Buzz Forum
Pieceware?

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
Pieceware? Posted: Oct 14, 2003 8:34 AM
Reply to this message Reply

This post originated from an RSS feed registered with Agile Buzz by James Robertson.
Original Post: Pieceware?
Feed Title: Richard Demers Blog
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rademers-rss.xml
Feed Description: Richard Demers on Smalltalk
Latest Agile Buzz Posts
Latest Agile Buzz Posts by James Robertson
Latest Posts From Richard Demers Blog

Advertisement

In a recent vw-dev e-mail on namespaces and packaging, Helge Nowak mentioned the following:

I just recently heard a talk of Perri Tarr a researcher at IBM. She was laying out the vision of "Pieceware" - Software that is developed in such a manner that it can be de-composed in any "shape". Today software is composed and can only be decomposed in exactly _one_ (maybe two) way(s): technical components and at a lower level the object model. But it is desirable to have the possibility to "slice out" an arbitrary interesting part of it like "give me that part of SAP that handles customer data in a secure way".

Helge's observations on this were about navigating through code in a development environment, but the references to Perri Tarr I found on Google were more about software composition. That's what I want to comment on here.

The "Pieceware" concept will certainly be one to watch as it develops, but I am concerned about the notion of being able to "arbitrarily" slice out interesting aspects of programs. Excuse me for being hung up on biological analogies, but how meaningful would it be to "slice out" the aspects of a cell that deal with metabolism or protein replication. Maybe it could be done, but would you have anything useful? Only, I believe, if you had a context that had been designed to accept a wide range of components, and only if what was "sliced out" was an appropriate component for that context.

A good hardware example of such a context is an electronic bus designed to provide power and communication paths for a variety of electronic components. A good software example is Sam Schuster's work on Pollock, which consists of both a framework for the use of GUI widgets, and a extensible family of widgets for that framework. Could an electronic component be arbitrarily sliced out of a given piece of hardware and plugged into new hardware? Could a Pollock widget be sliced out of a given program and plugged into a new program? Yes, but only if you used them in a new instance of the same context.

The problem remains what it has always been, to design useful contexts (busses, frameworks, etc) and components for those contexts. That is what makes it possible to arbitrarily slice a component out of a context and plug it into a new instance of the same context, and thereby apply it to a new problem domain.

I do not accept the statement quoted earlier that

software is composed and can only be decomposed in exactly _one_ (maybe two) way(s): technical components and at a lower level the object model.

There is no difference between "technical components" and "the object model." There are only objects, but they exist as components in a variety of contexts. Well-designed software consists of subsystems of components (objects) that interact at multiple levels of an emergence hierarchy. If there is a failing in object-oriented languages, like Smalltalk, it is in not providing explicit linguistic and development support for hierarchies of subsystems.

To build good systems, build good subsystems.

Read: Pieceware?

Topic: Code Reading Previous Topic   Next Topic Topic: Professional Open Source?

Sponsored Links



Google
  Web Artima.com   

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