350 likes | 472 Views
TCL Architecture of Objects (TAO). Generic Presentation. Heresy Half baked implementation Call for action Questions. The Heresy. “Tree Structures”. Classical trees are half the picture. Where did we get the idea?. Tree structures are good for simplifying problems
E N D
Generic Presentation • Heresy • Half baked implementation • Call for action • Questions
Where did we get the idea? • Tree structures are good for simplifying problems • From a human perspective, root systems don’t exist • Folks who developed these systems were fascinated by dead things
The Board Dept K Trees are useful for organizing … organizations Obsolete Senior Veep of W
HTML Object TK Object Script Object Chaos Operational Functional
Ambiguity A B C D
The Problem • Most of human understanding is wrapped around things that sit still • Only dead or inanimate things sit still • Humans, database records, screen elements, and documents are not dead nor inanimate • Why should the objects that represent them in your system be treated as such?
TAO • The TCL Architecture of Objects • It’s not an Object System • It just plays one on TV • It’s not an Architecture • It’s about dealing with a lack of one • It is written in TCL
Gee Whiz Features • Uses an sqlite backend • Unused Class Structures are cheap to keep around • No class structure is implied or assumed Any resemblence to an existing system, whether living or deceased, is strictly a coincidence… …and a crying shame
Heresies/Features • Uses Incremental TCL-like notation • Does not honor data or method hiding • Allows for some pretty/wonky code creating code systems • Makes it very easy for a class to be defined/defiled in multiple places in multiple ways • Stresses the use of mini-languages for large scale development.
Why on Earth?!? • TAO evolved to solve certain problems with a family of general purpose web database applications • With no dedicated allocation of time and/or resources • Using high-school kids as developers • Oh, and they are systems vital to building operations
How does it work? • “Code” is text passed into a wrapper • The wrapper breaks apart the code, and stuffs the constituent bits into a database • A class is generated on demand from a database search
Defining a Class Pre processor Code sqlite
…continued sqlite Class F Class E Class D Class C Class B Class A
Class F Class E Class D Class C Class B Class A …continued sqlite
Class F Class E Class D Class C Class B Class A …continued TCL Implementation of Class F
Objects • Non-volitile data is stored in a set of global arrays • A stack tracks what object is currently employing what method • Each method has a pre-amble that links the global array data into a local variable
Current Application • Linux Shell Scripts • Web-Based Databases • Intranet Content Engine
HTML Object TK Object Script Object TFINET Operational Functional
STEAL THIS IDEA
Steal This Idea • It works • It’s fast • It’s easy on resources • You can write your own pre-parser to suit your particular taste • It will be adapted to use whatever native Object system goes into the Core
Where to Get it http://www.etoyoc.com/