on master help sign in
finish "Summary of Benefits" section of OotT essay
commit28492b3e2567420a7a044721add1452e3baf84da authorAgentM <agentm@themactionfaction.com> dateSat 2 Apr 2016, 22:07 (11 years ago) parent755a1aa
1 file changed+18−5
docs/reaching_out_of_the_tarpit.markdown+18−5
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
101101* restrictive, legacy type systems which impede modeling
102102* unnecessarily complex SQL grammar
103103
104−## Summary of Benefits of This architecture
104+## Summary of Benefits of This Architecture
105105
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:
107107
108108### Benefits For State
109109
110110* useless accidental state is avoided
111−* constraints prevent entering any "bad" or unexpected state
111+* constraints prevent entering any "bad" or unexpected states
112112* referential transparency (functional purity)
113−* declarative programming opens greater doors for optimizations
114113
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.
116129
117130## Future Directions
118131