@Manu12x
OOP is very powerful, without using OOP it will be hard to write complex codes.
Example case of usage:
You can imagine, you dino game how has became a complete game. It has 5 dino types, it also can has pets. There are 3 kinds of enemies: land monster, flying monster, outer space aliens falling from sky. Objects you need to avoid: tree, big rock, wall. There are 3 kind of trees: small, big, huge. Two kinds of walls: tall and wide.
How should you write the code? Using record? Yes you can, but it will be very complicated to handle the different types of objects.
That's why OOP is born. You define the main object type, and the sub object types that each one has its own behavior and size and animation. Each sub object types can has their own sub object types too.
You can consider objects is a more powerful version of records.
The sample case above is very easy to code if you're an OOP expert.
I use OOP a lot and "with" statement too.
About the code tag, yes you're right.