The problem is, at the end of the day, business logic needs to get encoded in the program. So all the abstractions cant abstract away the domain specific "if else" statements. Infrastructure itself will be a solved problem, and we will implement interfaces like serverless lambas, but it still remains, the logic of the business needs to go in the code. OOP itself is meant for building relationships between sets of business logic, and coding that, as has been discussed, always ends in complexity and needs thought