Today seems to be “the recommendation day”. For those of you that do not follow (yet) Greg Wilson’s I’d like to recommend Greg’s presentation “Bits of evidence: What we actually know about software development and why we believe it’s true” where he discusses the low standards for proof in software engineering (too many claims without any kind of empirical validation) and how we can start addressing this situation.
And now that we are on it, let me recommend you another of his presentations: We Know Less Than You Think (But We Do Know Something)
FNR Pearl Chair. Head of the Software Engineering RDI Unit at LIST. Affiliate Professor at University of Luxembourg. More about me.
I would definitely take a look at the role of programming languages (and software engineering practices, such as patterns) in giving us the ability to build State Machines. Ultimately programming is (and most likely always will be) about Functions (should they be called Actions?) and State.
From my observations, the vast majority (all?) of programming languages define an action behavior, this is generally the right approach compared to state-action behavior, however, they are also based on three approximations that I feel are worth correcting:
– actions can manipulate the state (in particular decide of the end state)
– assignments are equivalent to mutation
– there is no need to define clearly what is a “step” in programming
(we have been writing billions of lines of codes for decades under these three approximations, they are not wrong, they are however approximations).
Really puzzled by the lack of any references to Capers Jones. He probably has the most extensive body of work on the subject.
What is surprising to me is to see the age of the references in Greg Wilson deck. Most recent one being 2001… Did we not gather any ‘proof’ of knowledge since?
Well the slides are from 2009. There is still a 8 years gap but at least not a 16 one