Outro aspecto em que interessa avaliar os modelos apresentados é o auxílio à programação, i.e., o suporte que é dado por cada um deles ao desenvolvimento do código de uma aplicação.
O primeiro, a herança, não apresenta grandes problemas, uma vez que o código das subclasses vai ser sempre diferente do das superclasses, que, se forem abstractas, nem o possuem.
Em segundo lugar, têm-se as entidades que modelam conceitos da linguagem: smart pointers modelam ponteiros e acessores modelam referências. Em qualquer dos dois casos, a programação não é feita automaticamente, embora se possa conceber que é muito mais simples no caso dos smart pointers, que apenas têm que redefinir o operador ->, do que nos acessores, cujas classes possuem toda a interface pública da classe do objecto de dados correspondente.
O que foi dito para os acessores aplica-se, em certa medida (por partilharem parte da interface do objecto), aos representantes. As diferenças mais significativas entres estes dois casos relacionam-se com o facto de os representantes não modelarem nenhum conceito da linguagem e, por isso, serem objectos reconhecidos pela aplicação.
No caso do Open C++, existe algum apoio à programação sob a forma de um pré-processador, que analisa o código da classe original e produz código adicional (a classe reflexiva), contendo suporte ao modelo. A programação das classes dos metaobjectos deve ser feita manualmente, se se desejarem fazer alterações ao código inicial (herdado da classe MetaObj).