Yes, it's perfectly fine to reinvent the wheel if
you're in the business
of making wheels. But if you're making cars, it's in your best interest
to use standard wheels.
I don't disagree with this point on principle. However,
characterizations such as:
Using an existing system allows your application to
function well, and
different from everything else the end user runs.
These days, end users
expect well behaved applications that are similar in their interfaces.
exist, if you use the right kind, your app suddenly
can run on [mainstream OSs]
define a particular part of the computing world. Following
the car analogy, this is the part of the world that is
designing cars for the mainstream audience, e.g. SUVs.
I can't say for sure about everyone else, but I know that
I'd have a hard time staying intellectually engaged in
that part of the world: the "bread and butter programming"
a co-worker once called it. I think I'd go crazy if I
couldn't at least sometimes be a part of the world that
does ask, "what if the wheel were a sphere instead of
a torus?" As it is, the computing world has become so
bland and homogeneous that I have my doubts that I'd
get into this field if I was just starting my career.
None of that is to say that there's anything wrong with
the mainstream computing world or with programmers who
are good at the bread and butter programming. It's just
not for me, and there's nothing wrong with my computing
world either.
To butcher Shakespeare a little: There is more in the
computing world than is dreamt of in the PC philosophy.
ObClassic: After all, it's playing with, studying, and
learning from the inventive and unusual that attracts
a lot of us to classic computing. So this is a setting
where I'm a little surprised to hear "don't reinvent
the wheel."
BLS