There is no "best" in software


Dave Rolsky wrote a fantastic article on the many different criteria on which you can choose your software to use. For example:

Easy to integrate - Some libraries are designed to be integrated with other modules (Catalyst), some want you to embrace their world (Jifty).

Complete - Some libraries come with a complete solution (Jifty) and some require you to put together a bunch of pieces into a whole (Catalyst).

Which is better? The answer, of course, is "it depends." Is the project for in-house use, or will it be distributed? Is it a one-off, where the base install will do most of what you want? Or are you likely to want to extend beyond those constraints?

Most importantly, Dave points out:

I'd like to see people state their priorities up front, and explain why it's important for the work they do. Often this gets left out of the discussion. Without this information, we often end up just talking past each other.

The extension of that is that many people may not even have thought about what their priorities are. Consider how often you'll see a question, such as at Stack Overflow, that asks "What's the fastest way to do X?" Most of the time, the querist hasn't even thought about that "fastest" part; it's just assumed. (For that matter, that's like assuming that the most important part of a new job is how much it pays, but that's a topic for another blog.)

Make sure you know what your priorities are. Question your assumptions. Your project will thank you for it.


No mention of the quality of being bug-free? Well-vetted might be an indicator of being mostly bug-free, but it is not the same.

I think my biggest priority is a combination of the dependency question with the "ease of integration/complete" question. Compare Net::Twitter's dependency list to Net::Hiveminder. One is a dependency list that is rather neat and sensible (and also includes an option to use a non-XS module), while the other installs an entire Moose-based Web framework.

Its very hard to find any bug free software. Every software have bugs in it. As time passes and
as users use it they identify that software bugs. I develope one Software Gestionale. Its italian
software and with lots of bugs. Now me and my team are able to remove some of bugs from it.

Software Gestionale, now you can, and what prevented you before "now"?

Leave a comment

Job hunting for programmers

Land the Tech Job You Love, Andy Lester's guide to job hunting for programmers and other technical professionals, is available in PDF, ePub and .mobi formats, all DRM-free, as well as good old-fashioned paper.