> And yet it isn't a problem. First, I was only addressing the claim that "to use [functions] outside their parent classes you need to use the full name". Second, it certainly can be a problem when the argument is a common type. In file.open, file is a string. You could have a dozen different I/O packages, all of which have a way to open a file given its path. Or consider x.parse, where x is a string ... is that parsing the file named by x, or the string value of x?
> For example: file.close(), you can safely guess it is calling a method close > defined inside File class. A fundamental principle of analysis is to look at _problematic_ cases, not those that _aren't_ problematic. I don't think your comments get at the issues. > Even having extensions in mind, is not the rule unlike nim. I don't know what you're trying to convey here, or how it's true. if all you're saying is that it's not a problem for C# extension methods because they aren't used much, that really isn't saying anything useful. Consider that all the LINQ methods are extension methods, and they include things like All, Count, and Join. One could easily have other methods with those names that operate on collections.
