I would add the loose definition of interfaces, because it is hard to tell if you have implemented everything or not. (The compiler does not check, you have to write extensive tests.) It's one of the reasons why I am using Julia only for small personal projects but not for larger codebases.