miscomputation - goto conference · 2018-04-25 · cobol and data processing crisis eliminate the...
TRANSCRIPT
![Page 1: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/1.jpg)
MiscomputationMiscomputationLearning to live with errorsLearning to live with errors
Tomas PetricekTomas PetricekfsharpWorks & Alan Turing Institute
| | [email protected] @tomaspetricek tomasp.net
![Page 2: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/2.jpg)
Trivial problem or industry crisis?Trivial problem or industry crisis?
![Page 3: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/3.jpg)
If trials of three or four simple cases have beenmade, and are found to agree with the resultsgiven by the engine, it is scarcely possible thatthere can be any error.
Charles Babbage, On the mathematical powers of the calculating engine (1837)
![Page 4: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/4.jpg)
The ENIAC women would simply setup the machine to perform thesepredetermined plans; that this workwould turn out to be difficult andrequire radically innovative thinkingwas completely unanticipated.
Nathan Ensmenger (2010)
The Computer Boys Take Over
![Page 5: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/5.jpg)
By the end of [1960s] many were talking of a crisis (...). For the next several decades, [managers, academics andgovernments] would release warnings about the desperatestate of the software industry with ritualistic regularity.
Nathan Ensmenger (2010) The Computer Boys Take Over
![Page 6: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/6.jpg)
![Page 7: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/7.jpg)
How can we explain the [seemingly perpetual] crisis in what is considered one of the most successful and profitable industries of all time?
Nathan Ensmenger (2010) The Computer Boys Take Over
![Page 8: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/8.jpg)
Living with errorsLiving with errors
![Page 9: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/9.jpg)
Errors as part of the processErrors as part of the process
![Page 10: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/10.jpg)
COBOL and data processing crisisCOBOL and data processing crisisEliminate the need for skilled programmersEliminate the need for skilled programmers
By late 1960s, the emerging software crisis became defined as managerial.
![Page 11: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/11.jpg)
NATO Conference on Software EngineeringNATO Conference on Software Engineering
The black art of programming hasto make way for the science ofsoftware engineering.
Software engineering completes theturn toward managerial solutions tothe software crisis.
![Page 12: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/12.jpg)
Software craftsmanshipSoftware craftsmanship
NATO conference (1968) started transition from computerprogramming as a craft to an engineering discipline
Software craftsmanship (2001) emphasizes skills of developers"individuals and interactions over processes and tools"
![Page 13: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/13.jpg)
Test-driven developmentTest-driven development
In TDD we drive development with automated tests. We 1) write new code only if an automated test has failed 2) eliminate duplication.
Kent Beck, Test-Driven
Development by Example (2003)
![Page 14: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/14.jpg)
Test-driven developmentTest-driven developmentError as part of the development processError as part of the development process
1. Introduce controlled isolated error2. Eliminate error by writing more code
![Page 15: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/15.jpg)
Test-driven developmentTest-driven developmentError as a medium for informationError as a medium for information
Tests become the specification Tests as a honest documentation
![Page 16: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/16.jpg)
Errors as a contradictionErrors as a contradiction
![Page 17: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/17.jpg)
Meanwhile at the universities...Meanwhile at the universities...
[ACM members] have read non-ACM articles on data processingand found them lacking. They suffer from one basic fault: Theyfail to report fundamental research in the data processing field.
Nathan Ensmenger (2010) The Computer Boys Take Over
![Page 18: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/18.jpg)
Algol languageAlgol language"Remarkable computer science achievement""Remarkable computer science achievement"
"Object of beauty" and never widely adoptedDefines academic programming agenda
![Page 19: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/19.jpg)
Algol research programme (1960s)Algol research programme (1960s)Formal language specificationFormal language specification
One of the goals (..) was to utilize the resources of logic toincrease the confidence (..) in the correctness of a program (..) "[Instead] of debugging a program, one should prove that it meets its specifications (...)".
Mark Priestley (2011) Science of Operations
![Page 20: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/20.jpg)
Algol research programme (2010s)Algol research programme (2010s)Dependently typed programmingDependently typed programming
[T]oday most people who write software (...) assume that thecosts of formal program verification outweigh the benefits. Thepurpose of this book is to convince you that the technology ofprogram verification is mature enough today (...).
Adam Chlipala, Certified Programming with Dependent Types (2013)
![Page 21: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/21.jpg)
Error as a contradictionError as a contradictionDream for the last 50 yearsDream for the last 50 years
Logical goal for academic computer science Sometimes useful, sometimes not?
![Page 22: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/22.jpg)
![Page 23: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/23.jpg)
Errors as the unavoidableErrors as the unavoidable
![Page 24: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/24.jpg)
Erlang languageErlang languageDistributed long-running systemsDistributed long-running systems
Created at Ericsson for telecommunications Errors will happen because of scale
![Page 25: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/25.jpg)
Miscomputations in ErlangMiscomputations in Erlang
Exceptions occur when the run-time does not know what to do Errors occur when the programmer doesn’t know what to do
Errors expected. Specification does not cover all cases.
Joe Armstrong (2003) Programming reliable systems
![Page 26: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/26.jpg)
Handling errors in ErlangHandling errors in Erlang
What kind of code must the programmer write when they findan error? (..) let some other process fix the error, but what doesthis mean for their code? The answer is let it crash.
Joe Armstrong (2003), Programming reliable systems
![Page 27: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/27.jpg)
Errors as the unavoidableErrors as the unavoidableErlang error is the opposite of test errorErlang error is the opposite of test error
Errors are the lack of specification They are expected - are they still errors?
![Page 28: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/28.jpg)
Errors as an inspirationErrors as an inspiration
![Page 29: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/29.jpg)
Programmers and musiciansProgrammers and musicians
The notion [that programming was black art] was reinforced bypersonality profiles that suggested that programmers, had auniquely creative ability like chess masters or musicians.
Nathan Ensmenger (2010) The Computer Boys Take Over
![Page 30: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/30.jpg)
Smalltalk ecosystem (1970s)Smalltalk ecosystem (1970s)
[Smalltalk approach] to the design of languages [is] quitedifferent from what was familiar in the Algol [programme].
Programming was not thought of as the task of constructing alinguistic entity, but rather as a process of working interactivelywith the semantic representation of the program.
Mark Priestley (2011) Science of Operations
![Page 31: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/31.jpg)
Live codingLive codingEnvironments for musicEnvironments for music
In musical genres that are not notated so closely (...), there areno wrong notes – only notes that are more or less appropriateto the performance.
Alan Blackwell and Nick Collins (2005) The Programming Language as a Musical Instrument
![Page 32: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/32.jpg)
Live codingLive codingErrors in live codingErrors in live coding
[Live coders] may well prefer to accept the results of animperfect execution. [They] might perhaps compensate for anunexpected result by manual intervention, or even accept theresult as a serendipitous alternative to the original note.
Alan Blackwell and Nick Collins (2005), The Programming Language as a Musical Instrument
![Page 33: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/33.jpg)
Errors as an inspirationErrors as an inspirationEnable quick human interventionEnable quick human intervention
Make errors easier to hear or see Not just live coded art performances
![Page 34: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/34.jpg)
What are errors and how to deal with them?What are errors and how to deal with them?
![Page 35: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/35.jpg)
![Page 36: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/36.jpg)
Socio-technological entitiesSocio-technological entities
![Page 37: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/37.jpg)
![Page 38: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/38.jpg)
Live coder answerLive coder answerIt took 45 minutes to shut it down!
Erlang answerErlang answerNew message, old server should crash!
Logician answerLogician answerCritical systems must be proved correct
Craftsman answerCraftsman answerWhat are the properties to test?
![Page 39: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/39.jpg)
![Page 40: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/40.jpg)
Prove or test propertiesProve or test propertiesIdentifying properties is the hard problem
Fix the system by handFix the system by handNeeds to be designed for manual intervention!
![Page 41: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/41.jpg)
SummarySummary
![Page 42: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/42.jpg)
Crisis narrativeCrisis narrative
The continued four-decades-long crisis in one of the largestand fastest-growing sectors of the US economy suggests aninteresting dichotomy (..)
Nathan Ensmenger (2010) The Computer Boys Take Over
![Page 43: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/43.jpg)
SummarySummaryEscaping the crisis narrativeEscaping the crisis narrative
Prove basic assumptions, live code the rest
Is it easier to write code or property?
Live coding the environment for faster response
![Page 44: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/44.jpg)
Different ways of thinkingDifferent ways of thinkingUse the same word, but in a different context!
Most economical descriptionMost economical descriptionProgram code or program properties
Tell me what you think! | | [email protected] @tomaspetricek tomasp.net
![Page 45: Miscomputation - GOTO Conference · 2018-04-25 · COBOL and data processing crisis Eliminate the need for skilled programmers By late ... increase the confidence (..) in the correctness](https://reader034.vdocument.in/reader034/viewer/2022050401/5f7f8b883a2ed85346631443/html5/thumbnails/45.jpg)
N. Ensmenger (2010), The Computer Boys Take Over M. Priestley (2011), A Science of Operations