The first of the guidelines for programming teaching from 2001 stated that you should start teaching objects from the start.
This, perhaps, is the least convincing of the guidelines today. In 2001, when I was thinking about teaching beginners, I was thinking about teaching first-year university students. Thus, it was a selective audience who had chosen to become software professionals.
Today, novice programming teaching is mainly an affair happening at school age. And we have to be aware of the difference it creates: most of the pupils do not want to become software professionals, and they do not all have to learn about best practice in software engineering.
Thus, it is a perfectly fine path today to teach an introduction to programming without objects. (More on this in a later post.)
But I would maintain: IF you want to end up with object-orientation, then you should START with objects. Object-based programming is not a language construct that can be added on to procedural programming later. It requires a different structure of the program, a different way of thinking, a different approach to algorithmic problem solving. If it is not done from the start, it would require unlearning habits later, and start again in a new way. This rarely works well.
So, I would maintain my advice from 23 years ago: If you want to teach object-orientation, start with objects on day 1!