Serializable... Serializable... Java designers created this interface that cause a lot of confusion in java developers. Developers at the end accept it as an odd interface with an implicit but not written contract. - Lots of drugs may have been around designer desktops when they design it. - It's such an ugly design that is the only interface that depends in the definition of an attribute. That's not all... if you wants to change the way serialization works you must define some "private" methods... wtf? (Yeah... look at the docs) Has it been taken from another galaxy... .net? c#? cobol? I think, it's not a lack of design, it's an ungly design like "null". I bet all java developers lost tons time learning how to use it.