I wonder whether software ends up being complex, because the building blocks used by most programmers are simply insufficient to model complex systems.
Those building blocks are procedures, subroutines, control statements and modules/sub-programs.
Just because these can (eventually) be used to model complexity in code that increasingly approaches a big ball of mud, doesn’t mean they are the ultimate abstractions.
Those building blocks are procedures, subroutines, control statements and modules/sub-programs.
Just because these can (eventually) be used to model complexity in code that increasingly approaches a big ball of mud, doesn’t mean they are the ultimate abstractions.
We need to invent and use better abstractions.