And my main reason for it is cross-version backward compatibility.
That is a valid implementation issue to me. In Java this is solved in the runtime. Personally it is enough for me to just throw a notification during compilation that can be turned off: "Warning: Overloading is a new feature that might break older code! You can turn this message off by setting the
compiler.warn-overloading property to false"

I'm all for using descriptive names instead of overloading where possible,
until you get into situations where the API seems overwhelming because there
are 25 methods that start with "set", and forcing folks to use a descriptive
name for an additional optional parameter you want to add in the next
version doesn't scale.  Soon, the API docs just overwhelm you.
Making descriptive names is okay but having over-descriptive names are not necessary.
Names like "saveString" are for me in this particular category.

Method overloading seems to contribute to API bloat in Java since every
variant is in the doc,
So: The problem is that every variant is documented instead of some variants might be without documentation? Having every case documented sounds kinda good to me. It would be possible to reduce the duplicates in API docs with improved templates. The too-much-information problem is usually solved with a different design, but that's a problem with documentation
in general and not overloading in particular... imho.

The biggest difference between Java and AS3 is that in Java there were no default values or
variable argument length for almost a decade.

We can write methods like
   function myMethod(a: String = null);

in Java you were forced to write
   myMethod();
   myMethod(String a);

of course resulting in a lot of overloading-use where its avoidable in AS3 already.

yours
Martin.

Reply via email to