Pq propriedades são resultado de uma diarreia cerebral que começou com o Niklaus Wirth e não parou mais.
Existem 3 motivos principais para não querer propriedades:
1)É um estupro sintático da linguagem. Uma linguagem de programação deve ser o mais intuitiva e clara possivel. Se uma construção da linguagem pode representar 2 coisas completamente diferentes ou a mesma coisa possui 2 contruções diferentes, o negocio vira 1 zona. A burrada mestre foi com o pascal e a criação de 2 sintaxes para chamar 1 função:
i := funcaoSemParametros;
i := funcaoComParametros(1);
Moral da historia, o código perde clareza. Com properties a coisa fica beeem mais feia, porque voce passa a ter 2 sintaxes para fazer exatamente a mesma coisa:
int i = this.prop;
int j = this.getProp();
Sem falar que isso causa 1 mal ainda pior! Passamos a ter a mesma sintaxe para fazer duas coisas completamente diferentes!
int i = this.field;
int j = this.property;
Ou seja, você passa a programar no reino na incerteza, “isso é um field ou uma property?”
- Elas são redundantes. Uma linguagem tem que ser enxuta ao máximo na sintaxe e rica na semantica que esta proporciona. Properties adicionam nenhuma coisa alem de problemas.
3)Properties estimulam programação burra. Parece que todo programador mediocre é atraido a usar toneladas de properties, não estou dizendo que quem usa é, apenas que os mediocres adoram. Já vi as coisas mais estupidas do mundo sendo feitas com properties, como por exemplo: (pseudo java)
public class Cagada {
int pk;
public Cagada(int pk) { this.pk =pk; }
public property int total {
get() { return "select count(*) from tabela");
}
pulbic property String fedor {
get() { return "select fedor from tabela where pk = "+pk; }
set() { "update tabela set fedor="+fedor+" where pk="+pk;}
}