This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Subsystems not just loadable chunks of code
Feed Title: Richard Demers Blog
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rademers-rss.xml
Feed Description: Richard Demers on Smalltalk
He remarks that my description of subsystem "has echoes of the Python approach to modules (and almost everything else) of treating them as dictionaries". Well maybe it does, but my views in this area are inspired by the physical science views of nature, the Smalltalk programming language, and the OS/400 operating system.
Hamish goes on to say, "as far as I can get a grasp of it, Richard's subsystems while more than loadable chunks of code must also presumably be loadable chunks of code (or instances of loadable chunks of code)".
Correct, an object is not just "a loadable chunk of code," and neither are the entities at lower or higher levels of a software emergence hierarchy. The methods (code) of an object are packaged in classes which can be grouped into loadable chunks, but code is but one aspect of an object, not the object itself. So when I talk about subsystems as the next level above objects, I'm not just talking about code packaging. I'm talking about subsystems as entities that have their own identity, can interact with each other, and exhibit other properties unique to their being entities of the subsystem level.
OK, now let's talk about one specific kind of subsystem. Call it a Package. Its job is to contain code (compiled or otherwise) that can be used and shared by entities in other subsystems. As a matter of fact, this kind of subsystem exists in OS/400 as a "Program" System Object (the contents are actually representations of procedures written in COBOL, C++, Java, etc). Program System Objects are dynamically loaded and active processes share the same loaded Program System Object. These Program System Objects are but one kind of entity at a level above the level of objects.
Finally, Hamish said, "Richard, if you ever build or come across a concrete demonstration of your ideas, do please let me know." All I can say is that OS/400 (and its predecessor the S/38 Control Program Facility) has been languishing in obscurity since roughly 1980. It is well worth the time to study.