Zapis je hezci, ale treba v tom JavaScriptu me to neprijde tak skvele. Navic si kazdy pouziva co chce - setThing a getThing, nebo getter thing() a setter thing(value) a nebo ty property thing= a thing. V C# to bude asi trochu pouzitelnejsi, kdyz je jednotny styl. Podobne ve Scale, kde lze zamnenovat promenne a settery/gettery. V Jave je na me prilis mnoho boilerplate kodu.
Zda se maji pouzivat je asi trochu jina otazka, ale IMO je to velmi bezne. Posledni dobou zacinam znacne preferovat FP pristup, tj. immutable objekty, v podstate jen nosice dat a k tomu pure funkce, ktere s nimi pracuji. Nehodi se to uplne na vse (napr. GUI u hry), ale testy se na to pisi uplne skvele.