on master help sign in
finish "Summary of Benefits" section of OotT essay
28492b3AgentM
docs/reaching_out_of_the_tarpit.markdown+18−5
@@ -101,18 +101,31 @@ Project:M36 is a clean-room implementation of a relational algebra engine; it do
101* restrictive, legacy type systems which impede modeling
101* restrictive, legacy type systems which impede modeling
102* unnecessarily complex SQL grammar
102* unnecessarily complex SQL grammar
103
103
104−## Summary of Benefits of This architecture
104+## Summary of Benefits of This Architecture
105
105
106−The "Out of the Tarpit" summarizes the benefits of functional relational programming, but here is a summary of the summary:
106+The "Out of the Tarpit" paper summarizes the benefits of functional relational programming, but here is a summary of the summary:
107
107
108### Benefits For State
108### Benefits For State
109
109
110* useless accidental state is avoided
110* useless accidental state is avoided
111−* constraints prevent entering any "bad" or unexpected state
111+* constraints prevent entering any "bad" or unexpected states
112* referential transparency (functional purity)
112* referential transparency (functional purity)
113−* declarative programming opens greater doors for optimizations
114
113
115−### Benefits For control
114+### Benefits For Control
115+
116+* declarative programming opens greater doors for optimizations such as automatic parallelization
117+
118+### Benefits for Code Volume
119+
120+* declarative programming can only specify modeling of business rules (not accidental or tangential complexity) and is thus naturally terse
121+* declarative programming eliminates code for state and control, reducing complexity
122+
123+### Benefits for Data Abstraction
124+
125+* the relational algebra reduces reliance on specific "code paths" for data access since data "groupings" are often arbitrary
126+ * for example: the same relation variable can be restricted/projected/joined in order to present the most relevant information for a given user interface
127+
128+Project:M36 does, however, implement product types, which the paper discourages. The reasons for this are out-of-scope for this essay.
116
129
117## Future Directions
130## Future Directions
118
131