These are chat archives for jdubray/sam

7th
Dec 2017
david kaye
@dfkaye_twitter
Dec 07 2017 04:11
Been reading those docs you linked to, @foxdonut - still at it - thanks for sending
Jean-Jacques Dubray
@jdubray
Dec 07 2017 10:25
@hex13 it's too naive because there is no "temporal logic" in this approach. Which programmer who has written more than ten lines of code does not understand that a good portion of the code (and most of the defects) come from encoding the temporal logic? Could we be serious for once and stop throwing lego concepts like "pure functions". I have been coding for 37 years and we are still writing code like its 1952.
Jean-Jacques Dubray
@jdubray
Dec 07 2017 10:34
How can you even start mutating (the application) state without a proper temporal logic fundation?
Fred Daoud
@foxdonut
Dec 07 2017 11:41
you're welcome @dfkaye_twitter
Jean-Jacques Dubray
@jdubray
Dec 07 2017 22:52

Just to quote Dr Lamport in his introduction to TLA+:

We are motivated not by an abstract ideal of elegance, but by the practical
problem of reasoning about real algorithms. Rigorous reasoning is the only way
to avoid subtle errors in concurrent algorithms, and we want to make reasoning as
simple as possible by making the underlying formalism simple [but not simpler]

that's the difference between Redux/Elm and other function pattern and SAM. These patterns can't position properly API calls, without twisting and turning. They can't deal with

And ...

A programming language may use mathematical terms like function, but the constructs
they represent are not as simple as the corresponding mathematical concepts.
Mathematical functions are simple; children in the United States learn about
them at the age of twelve. Pascal functions are complicated, involving concepts like
call by reference, call by value, and aliasing; it is unlikely that many university
students understand them well. Advocates of so-called functional programming
languages often claim that they just use ordinary mathematical functions, but try
explaining to a twelve-year-old how evaluating a mathematical function can display
a character on her computer screen