Software Engineer
· Twitter
·
· Behavioral Programming: Aligning Code with How We Think
Bio
I’m from Rome Italy, currently living in Amsterdam. Everything changed when I started reading more academic papers on subjects relating Statecharts and Behavioral Programming. I got hooked on these subjects over the past 2 years and have not been able to think about other things - my passion in this area is very strong and am an avid believer that some of these technologies will be crucial for making software development more sustainable. In the near future a tsunami wave of automation will be required, and I believe we do not yet possess the right tools or mindsets to handle such extreme necessities. Hence finding ways to make complex systems more manageable is very high on the list of things I would like to “make a dent” to in the world.
Behavioral Programming: Aligning Code with How We Think
(Talk, Main Conference)
by
Luca Matteis
Automation has taken over many things in our society: agriculture, medicine, transport, entertainment. Many say that the future depends on software; unprecedented global problems are already in a state of no-return and fixing these problems will require unseen complex technological systems, most likely driven by software. The way we control these layers of automation, that we have become so dependent on, is through "programming".
The problem seems that we (humans) have to abnormally force our minds to learn programming. We adapt our unskilled reasoning to work in the way the computer wants. As the layers of abstractions and patterns grow bigger and stronger, the same fundamental issue remains: programming is an unnatural process that will forever require us to override our natural model of thinking in order to learn to think like a computer.
What if we could take the opposite road: figure out which paradigms best fits our model of thinking; since that is precisely one thing that will hardly change.
In this talk we will take a look at one of the paradigms that seems to go towards this direction: Behavioral Programming (BP). We will see how programming this way does not need to adhere so rigorously to structure and is more aligned with how we generally think about things.
We will drive the talk through real-world examples and compare current standard programming practices to see how BP differs and how. Demonstrating that new paradigms are better fit for specific tasks is difficult, hence we will try our best to provide some evidence of this using three dimensions: (i) understandable (how easy it is to understand what the system is doing and why), (ii) changeable (how easy it is to make changes to the system) and (iii) aligned with requirements (how easily we can take requirements and confidently say: this is implemented in the system or not).