Excellent point: ++.
CGI.pm is definitely been better than what most new programmers
could write on the first try. But by the same token, it would be
easier for most people to write their own CGI handler, MIME parser,
browser isolation layer, and formatting system than to figure out
My own objection to CGI.pm is the interface itself. Interfaces are protocols,
and ideally, a library interface should be easier to learn and use than the thing it abstracts. I'd personally argue that CGI.pm's interface is both harder to learn and less flexible than the CGI per se.
It didn't start that way, but bloat is part of the natural software lifecycle. When
something gets so big and unwieldy that people would rather reimplement it than
learn the existing version, it's time to clean house. The new versions aren't waste,
they're competition, and competition is a Good Thing.