4 Replies to “is-not-a”

  1. Heh, the whole idea of AOP makes me want to hide in the closet and emerge in ten years after the world explodes.

    I agree that too many layers of inheritance is bad, I usually stick to the two-levels-are-enough rule. But I think Java is to blame in part by not allowing multiple inheritance. The consequence is if, say, you want to write a generic routine that assumes the existence of some method, every freaking class has to be the same type. So you put the method in an interface, but now you have to potentially re-implement the code 100 times. So then you have to create a utility class with static methods or some other BS, all just to get around the silliness of the language. It really hamstrings the utility of generic programming in Java.

    The other thing that bugs me is when people overdo the interface thing, making an interface, impl class, oh and we need a factory too! Like someone is ever going to write a second implementation of your crappy library. The end product is working code (hopefully), not some awesome architecture that just ensures you’ll have to change everything at least twice. Well, that’s another rant.

    Most of our code is hardly OOP anyway, so it doesn’t bug me that much, but for all its warts I still think C++ got more stuff right.

  2. If it doesn’t have lots of extraneous code, it’s not enterprise computing!

    Don’t get me wrong, interfaces are good. After all, UNIX is the ultimate interface: you can talk to any device with the same five or six system calls. But it’s silly to encode a policy into the language itself. Implementation inheritance doesn’t become less useful just because some people abuse it. What good is a language if it isn’t subject to lots of abuse? By that argument, C might be the ultimate language, heh.

Comments are closed.