TCL Architecture of Objects
(TAO)
Generic Presentation
•
Heresy
•
Half baked implementation
•
Call for action
•
Questions
The Heresy
“Tree Structures”
Bat
Boom
Bwoo
Bweedle
Boodoodle
Bwap
Bang
Bing
Foo
Foo Class
Bar
Bar Class
Baz
Baz Class
Simple Class
MOAC
Classical trees are half the
picture
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
Trees are useful for organizing
dead things
Trees useful for organizing
dead people
Trees are useful for organizing
… organizations
The Board
Senior Veep of W
Dept K
Look into the face of your
Enemy
Chaos
Ldap
MySql
Sqlite
MSSQL
SQL
DB Record
Admin Only
Universal
Customized
Database Controlled
ACL Node
Record
Table
Report
UI Node
UI Node
HTML
Object
TK
Object
Script
Object
FormerStaff
Finance
Administrator
Manager
Employee
User
Film
Monograph
Deacessioned
Serial
Library
Opened
Closed
Pending
Workorder
UI Node
Operational
Functional
A
B
C
D
Ambiguity
Change
Thank You!!!
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?
The Half
-
Baked
Implementation
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
(Two minute hate)
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
Code
sqlite
Pre processor
…continued
sqlite
Class C
Class D
Class B
Class E
Class F
Class A
…continued
sqlite
Class C
Class D
Class B
Class E
Class F
Class A
…continued
Class C
Class D
Class B
Class E
Class F
Class A
Implementation of Class F
TCL
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
TFINET
Ldap
MySql
Sqlite
MSSQL
SQL
DB Record
Admin Only
Universal
Customized
Database Controlled
ACL Node
Record
Table
Report
UI Node
UI Node
HTML
Object
TK
Object
Script
Object
FormerStaff
Finance
Administrator
Manager
Employee
User
Film
Monograph
Deacessioned
Serial
Library
Opened
Closed
Pending
Workorder
UI Node
Operational
Functional
The Call to Action
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
(Two minute hate)
Questions
Where to Get it
http://www.etoyoc.com/
Enter the password to open this PDF file:
File name:
-
File size:
-
Title:
-
Author:
-
Subject:
-
Keywords:
-
Creation Date:
-
Modification Date:
-
Creator:
-
PDF Producer:
-
PDF Version:
-
Page Count:
-
Preparing document for printing…
0%
Comments 0
Log in to post a comment