TCL Architecture of Objects

apatheticyogurtΛογισμικό & κατασκευή λογ/κού

13 Δεκ 2013 (πριν από 3 χρόνια και 8 μήνες)

81 εμφανίσεις

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/