Hey all, I was surprised to learn yesterday that D does not actually support Multiple-Dispatch, also known as Multimethods. Why is this? Support for this feature is already present in Scala, C# 4.0, Groovy, Clojure, etc... Would it not make sense for D to remain competitive in this regard?
While I think many of us are aware that problems of the nature that require Multiple-Dispatch can be approached with the Visitor Pattern, there seems to be a general consensus that the Visitor Pattern is pretty cumbersome and boilerplate-heavy, and thus should be avoided. The common response from my searching around seems to be that a template-based, static implementation of Multiple-Dispatch is the go-to solution in D, but considering the existing template-bloat issues we have, I can't help but wonder if language support for this feature might be a better path to go down. Seems like it wouldn't be too difficult to implement, although I've not looked very deeply into dmd's source-code. So what seems to be the situation here? Cheers, Aero