Tom Lord writes:
> Let's distinguish "design" from "engineering".
> I would agree the dependency of Tk on Tcl is bad design -- it violates
> Ousterhout's stated principle of "Design for reuse."
> I'm not sure I agree that the dependency of Tk on Tcl is bad
> engineering -- the design flaw is pretty minor and easily correctable
> meaning that the design flaw is arguably *good* engineering, presuming
> it saved work.
To me it is bad engineering to create such un-reusable, un-abstracted
software. I am willing to give Ousterhout the benefit of the doubt on
the design side. Perhaps he in fact "designed for reuse" and just blew
it in the implementation. I don't know what the design of Tcl/Tk
intended but I know what the implementation does.
I certainly don't agree that saving work in the implementation of
software is good engineering. It may be an element of it but not if it
hurts other elements, like reusability and abtraction because it
wastes time in the long run.