JacquesCarette / Drasil

Generate all the things (focusing on research software)
https://jacquescarette.github.io/Drasil
BSD 2-Clause "Simplified" License
141 stars 26 forks source link

Chapter 5: Language Division Ready for Review #3098

Closed balacij closed 1 year ago

balacij commented 1 year ago

Please let me know what you think about about chapter 5. I've posted it to jasonRewritingCh4.

This chapter comes from feedback from Chapter 4 as it was mixing up Research Questions.

JacquesCarette commented 1 year ago

Again, the Writing Directives are perfect.

Your description of Relation should point out that many things in Expr are not relations, in fact, some are not even "mathematical" in any sense. The relevance of "5.1 Relation" to this chapter, in the order that it is in, is not clear to me (as a reader).

5.2.1: Expr -> Code is not total. This is correct, but you don't give a concrete example of that, you just give a vague hint. Be explicit (and perhaps even systematic about which cases of Expr are a problem). The analysis of "The problem", at least as given in the first paragraph of 5.2.1, is too vague.

For example, maybe the problem is GOOL, not Expr, which is a guess one could make from the first sentence. The second sentence is completely vague too - you should be giving at least explicit examples here.

It's bad style to have a single sub-section of a section. Only use a sub-section if there will be > 1.

This "A Problem" would be much clearer if, instead of lots of words, you gave concrete examples. Furthermore, as you have identified 3 cases, you probably should have a 3-element enumeration instead of giving things in a long, paragraph-driven narrative.

Similarly, the first parts of 5.2 (up to Now, we have 3 GADTs) use a lot of circumlocutions to describe something that (to me) is simple:

Rather than only referring to code in the appendix, in this chapter you should list the 'ideas' that each of the 3 languages express. I.e. something like