Nicole Rauch, Michael Sperber - End the Software Crisis!
Although we have gained enough experience in developing software by now, a major part of development time and effort is maintenance, i.e. tinkering with software that should already be completed. This software crisis, described in 1968 for the first time, is still alive and kicking, despite the introduction of object-oriented software development and subsequently the agile revolution. Many tend to blame the human factor -- imperfect application of these techniques and improper education being the main reasons here.
We have come to a different conclusion: Object-orientation is a fundamental part of the problem, not of the solution. Mutable state, the absence of uniform abstraction mechanisms and the complexity introduced by inheritance make it hard for humans to develop correct and robust software. Therefore it is time to say goodbye to object-oriented software development; we must start to teach the principles of systematic construction of correct software instead. At the core of this revolution is the consistent application of functional programming, i.e. of immutable data structures, systematic abstraction and data modelling. This talk demonstrates what this approach looks like.