You're getting downvoted here, but I agree with you. Once you really lean on Java constructors to guarantee initialized state, it's hard to go to something like Go that doesn't have this. Sure, you could do a lot of gymnastics to try to work around it, but that's the thing about Java that's nice. It's just built-in with that in mind.