Tom
Laudeman
|
Noah Healy
|
Declarative Table Oriented Programming
Introduction to Deft concepts (up to date)Data Mining, and Templated Report Generation Data structure composition in Deft (up to date, first draft) Template loop control (with illustrations, up to date, first draft) Template description (out of date, first draft, conceptually correct) Implementation details (out of date) API documentation (out of date) Download Deft from SourceForce Links to other great sites Linux hints and Howto files Additional open source software Deft Downloads at SourceForge Deft is a declarative table oriented (TOP) computer language. Deft combines declarative concepts of SQL with Perl's features. Like SQL, Deft has no loops or control structure but applies each line of code to each record in an internal table. By using inline Perl, this still allows the use of Perl regular expressions, etc. and certain of Perl's procedural programming features. Due to the nature of the table, record order is meaningless. Sorting is trivial, and easily applied to output, but "sorting" doesn't change the order of the records. In fact Deft supports multiple sort orders for any given data set. Declarative programming remove many of the bugs found in procedural programming and object oriented programming. Deft has no need for complex data structures. We have essentially flattened any depth relational structure to first normal form. The programmer sees none of this internal complexity, but instead writes what are essentially column-wise data transformations. Deft includes powerful API calls for aggregating data which replace the what would be tangled sets of loops and control structure in procedural programming (or heirarchies of class calls in OOP). The resulting code is one third the size of a typical web/database Perl script, and both the intent and meaning Deft code is far more obvious that with Perl. The Deft package includes the remarkable Deft run-time-templating system which is easy to use for the both the software developer and user interface developer. Deft is capable of parallel processing across multiple workstations or servers. Requires Linux and Perl. Deft also includes a state machine which encapsulates business logic or workflow when implmenting a web interface. With the careful compartmentalization of roles, Deft is ideal for large development teams. Programmers write Deft code. User interface designers build HTML templates which handle the display layer. Worflow is captured in the state machine. A single person can fill all three roles, but when the team is larger and the members specialized, little or no cross-domain knowledge is necessary. For instance, updating the display layer will not effect the code or workflow. |