I thought that XOTcl was more derived from Common Lisp's Object System. There are concepts of generic programming which are very different in concept from Java. I don't know how it works under the hood, but a lot of the terminology is the same. Generic programming is also handled in C++. In Tcl, the functionality of a namespace allows for some features of generic programming. Also, although not OO, when you call a function in pgplsql, the type signature decides which code body to run. The differnce in generic programming is that you can get multiple code chunks run for a single method invocation. It seems too complicated for me to follow, but if you are smart and have a huge project, it might be worth the complexity.