вот что говорит карпински в общих словах: It's a highly debatable claim that single dispatch class-based OO leads to better or more maintainable software designs. I grew up on these kinds of languages – Object Pascal, C++, Ruby, Java. Despite the ongoing rhetoric that this paradigm solves all sorts of program design problems, that's just not what I've seen. I think this style of programming has failed to be the panacea that it was promised to be. If it was really such a success, then we wouldn't be seeing a fresh crop of promising new programming languages – Julia, Rust, Go, Clojure, Scala, Elixir, Elm, Swift, etc. – not a single one of which is a traditional class-based OO language. The message is clear: we need more effective solutions. So far, Julia's multiple dispatch approach seems to me far better at addressing program maintainability and extensibility than classes ever were. Julia does still need a way of talking about interfaces and protocols in the language itself, but that's ongoing design problem, not a fundamental issue.