OMG , , A 30 gh for an 11 yr old , , , I wish you all the best , also glad you are trying to find her a proper fitting bra , <| sep |> Many socalled OO codebases are full of DTOs Data Transfer Objects , which are just bundles of state . That is because a great deal of real life objects are simple data objects . Are you really going to stick a tome worth of smart logic onto a vector for instance ? A large amount of objects are trivial because a lot of concepts are trivial . Anybody who does something like unpacking a vector into game object rather than going Vector currentPos because there is no message passing goodness in a vector is a complete moron . An accessor method is a means to access , or mutate , the state held within a particular attribute of an object . This is something I believe we should do far more hesitantly than is common . Which is precisely why C # has syntactic sugar for it to differentiate a property from just some function . Accessors should carry a health warningYes by making them other to methods . This otherness is a health warning . Any language that doesn ' t have something like properties makes it so accessors are more akin to methods . These languages then make it harder to capture the be careful factor of member access . Essentially the article boils down for the precise reason C # has properties is precisely why Perl doesn ' t have properties .