The software crisis, with us since 1968, is still alive, despite the introduction of object-oriented software development and the agile revolution. Object orientation is a part of the problem, not the solution. Mutable state, the absence of uniform abstraction and the complexity introduced by inheritance make it hard for humans to develop robust software. It is time to say goodbye to OO software development. Instead, we must start teaching the principles of systematic construction of correct software, using functional programming.
Target Audience: Architects, Developers Decision Makers
Prerequisites: Basic knowledge of OOP
A major part of software development is maintenance, i.e. tinkering with software that should already be completed but still somehow does not work as it should. 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. Some blame the human factor - imperfect application of these techniques and improper education. Unfortunately, perfecting these two staples of modern software development won't be enough:
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. 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.