Hi,

On Wed, 11 Sep 2002 01:18, Robert wrote:
> What I would like to know is if you actually look at the source code
> from an open source project (Jakarta or otherwise) and have that
> influence your usage of that particular API/Package. If not, are there
> any other criteria that you use to evaluate something, such as its
> following, reputation, etc.

It really depends upon what you want to use it for. I generally try to work 
out the cost vs benefit ratio factoring in risk. Some rules of thumb;

If I start to rely on something and it fails completely then I want to know 
that I am capable of replacing or rewritting it. Replacement is easy if it is 
a standards implementation (and multiple implementations exist). Rewritting 
is an option for small clearly defined projects.

"Complete" solutions and "one size fits all" philosophies should be avoided 
like the plague. I want to be able to mix n match toolkits and if this is 
easy then it is likely the underlying toolkits are lightly coupled and 
cohesive.

Think of web application frameworks. Some want to give you everything from the 
presentation layer, through dispatch layer, through service and buisness 
logic layers. Some focus one aspect. ie It is easy to use Sitemesh for 
templating, struts for dispatching, Avalon for service layer, torque for 
persistence and velocity for presentation. If I decide I prefer the icky jsps 
I could easy swap velocity for jsp. If I decide I need to use OJB rather than 
torque then that should also be an easy option. Some toolkits don't allow 
this.

Projects with recent releases are better than those without unless I monitor 
development lists ... and ... Projects with documentation are better than 
those without unless I monitor development lists.

Also you will notice that opensource developers often follow a certain 
behaviour pattern as they become more "mature" opensource developers. ie Many 
start as idealistic GPL advocates who have a toolkit that will solve all your 
problems (that only they can maintain). Later many of these same developers 
move to more liberal licenses (ala LGPL, BSD, Apache) have smaller focused 
toolkits and find it easy to move between different projects. I prefer to use 
code by the more "mature" developers as has less road bumps, is more 
consitent and stable.

The other thing I like to look at is reputation. I know certain groups/people 
who I think are good developers and will give whatever they do a looking at. 
For example, the developer of MX4J also maintains Foxtrot (a swing API for 
alternative style thread management). I looked at it purely because I 
respected the authors work on MX4J. If other people I respect also recomend X 
then I will look at X (thats how I ended up using Sitemesh and how I will end 
up using OJB).

The stability and longevity of the project is also a good indicator for a 
project.

Code quality is a fine thing to look at but does not really come in as a 
factor if I just want to use the project. I use quite a bit of crappy code 
but I don't care because I never see it and never have to maintian it (try 
looking through the JDK src one day). On the flipsode, sometimes really nice 
code (think Craigs work on Tomcat4/Catalina) is not enough. When I looked at 
TC4 code I really liked it but it was not as production worthy as TC3.x 
stream so I didn't use it for a long time.

-- 
Cheers,

Peter Donald
 "Man's mind stretched to a new idea never goes back to its original 
dimensions." -Oliver Wendell Holmes 


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to