Doug/Dave/innocent bystanders -

Actually, this exchange is more useful to me than most I've seen on this topic.  

As usual, I understand both sides of the argument and agree with neither!

Or to be contrary, I agree with both.   I appreciate the elegance of representation that well-designed notations offer, especially in domain specific problems.   I also appreciate the value of efficiency and that the *real* customer should never see the code and should only see the interface and its performance (qualitative and quantitative). 

On the other (other) hand, it seems that an important customer of our code is always also ourselves and our peers.  Even though we never re-use or share code as much as we should, we *do* re-use and share code and people *do* inherit eachothers' code for continuation, propagation, remediation, etc.   I find it irritating and inconvenient when either extreme is obtained. 

When I must learn (and sometimes master) a relatively obscure (Simula, Smalltalk, LISP, ObjC in that order) language because someone else declared it to be the pinnacle of form and style.  Similarly, when someone builds extravagant and convoluted abstractions in a language never intended for it.  For example, when someone tries to implement the functionality of Snobol or LISP in C.   These are the times when a less "elegant" or elaborate abstraction is better.  While it might seem mundane, a good deal of very simple string manipulation and/or logic implementation has been done in C or Fortran quite well in simple ways.   I am glad to be free of the restrictions (esp. of Fortran IV) of a simple procedural language with limited and limiting structures, but often find that the modes of use of more expressive languages to be ?deliberately? obtuse?

Do we, as prideful practitioners, too often indulge in our egos by raising elegance (or efficiency) above its station, or for sure utility and relevance?   I do not want to take away from either end of the spectrum, those who pursue (perhaps Dave fits this) purity and elegance for it's own sake, nor from those who pursue (I think this shoe fits Doug's foot) efficiency and economy as an art-form of it's own.   People on top of their game (either game) can do this with little or no loss of final utility.   But it is those of us (I appreciate both but aspire to neither) who muddle along in our many ways, often get caught in the crossfire of a holy war between the Big Enders and the Little Enders?

The lucidity of both Doug and Dave in this discussion has been very useful.  Neither has been the usual raving fanatic I am used to, perhaps this is a testimony to these individuals, to a maturing field, or to this forum.  Perhaps all three.

Carry on!

- Steve
 
In contrast - the OO tradition that began with Simula (not Simula I which was already moving away from the philosophical ideal) and was embodied in Self and Smalltalk, did not care about the machine, did not care about efficiency, it was all about the domain - faithful representation of same - and about human-machine "natural" communication about that shared domain (both humans and objects "lived" in the same "world").
 

To some, I suppose lack of efficiency and the ability to implement pure, faithful representations of the physical system being modeled are positive attributes of a language.  One the other hand, in practical use simulations are only required to represent the physical system of interest at some level of abstraction which has been identified as sufficient to answer the questions being asked of the system. Therefore, 100% faithfulness of representation of the physical system is not only not needed, it can get in the way of producing results.

As to efficiency, what can I say: efficiency is everything to the analyst.  Without it even the most beautiful, elegant model won't be used, because results that are produced too late, or which require too much effort to produce are simply of little use.

IMO, the most important aspect of developing useful simulations is not the elegance of the language being used, but rather the skills of the model designer in producing a design that is properly abstracted: not too much detail, not too little, which will address the pertinent analysis issues.  The "pureness" of the OO language being used really doesn't come to play with any of the actual fielded applications I've been involved with.

============================================================
FRIAM Applied Complexity Group listserv
Meets Fridays 9a-11:30 at cafe at St. John's College
lectures, archives, unsubscribe, maps at http://www.friam.org

Reply via email to