Hi Robert, Marco and Chris, now I see your point. Lastly I've found in DZone newsletter about Java putting `var` and `val` keywords, interesting is the second which is going to be used in case of immutable "variables" like a "values" (that's where `val` came from) see here http://openjdk.java.net/jeps/286 at "Syntax Choices" section. Checked C# for such feature and found out that there is something like `sealed` keyword which prevents from changing reference and also `readonly` keyword which states for property read only everywhere except class constructor (interesting isn't it?).
I also read about "Immutable modifier" discussion and IMHO it looks like it's about time to get such feature. I also agree that `final` keyword may be not so good choice for immutability, I've checked Scala, Kotlin and Swift about final properties and it looks like there it is used to unable to override property accedentally, and putting additional `override` (see https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Inheritance.html) section "Overriding" says: "To override a characteristic that would otherwise be inherited, you prefix your overriding definition with the `override` keyword. Doing so clarifies that you intend to provide an override and have not provided a matching definition by mistake. Overriding by accident can cause unexpected behavior, and any overrides without the override keyword are diagnosed as an error when your code is compiled." Considerring all of that thoughts I think that `final` keyword in properties declaration whould be awesome with Typed Properties https://wiki.php.net/rfc/typed-properties keeping to not override the Type Hint declaration. I'll try my best to continue implementation of somehow immutable variables as they would be great at ValueObjects impl. The choice for proprietary keyword could be a subject of discuccion. Cheers, -- Michał 2016-04-05 20:08 GMT+02:00 Robert Stoll <p...@tutteli.ch>: > Hi Marco, > > > > I am aware of what `final` means in other languages, it just seems that > everyone then needs to translate back and forth > > from `final` to `immutable`. In addition to that, `final` has different > meaning in inheritance (re-used keyword), so this adds > > to the confusion for people unfamiliar with the feature. > > I think immutable is also not ideal because to me, it sounds like the > whole object is immutable even though only the property is. I do not know a > better solution than final though > > Cheers, > Robert > > >