Re:What Python developers need to know before migrating to Go
by n1ghtm4n on Tuesday July 09, 2013 @02:26AM
(#6011384)
Function overloading can be accomplished by name mangling at compile time.
PROGRAMMER SEES INTERNAL REPRESENTATION
foo(int a, char b) foo_int_char
foo(int x) foo_int
Re:What Python developers need to know before migrating to Go
by lysium on Tuesday July 09, 2013 @05:17AM
(#6011783)
He did not mean overriding (methods in derived classes), but overloading (functions with the same name). You can resolve the latter at compile time, no indirection needed. For example you can have two overloaded functions println() and println(String).
This also means your program code is simpler, and therefore, faster.
Function overloading usually means virtual method tables, and therefore indirect method calls. Depending on how deep your inheritance / overloading structure is, these vtables can get really messy.
(I had a class in university where we were given a C++ UML class diagram, and told to draw the vtables that resulted when one instance of a subclass was instantiated.)