Decisions decisions :) Ok, you say APR is better suited.. but why? ACE looks like its been really thoroughly tested. On the other hand, all the ACE docs talk about networking a LOT. It seems as though the emphasis is on networking... and I don't know if there's much work done on things like disk IO.
Besides the reasons mentioned in the other posting here are my reasons:
1) I gravitate to APR. In past projects I have used ACE (very shortly), NSPR more extensively, but I always go back to APR. Whenever I gravitate it is because I am "lazy". I hate complexities and figuring out of things. NSPR makes figuring things difficult. ACE was really hard on my brain. But APR is pretty easy to figure out and hence for a "lazy" programmer like me it is simpler.
2) Always compiles (ok 95% of the time). Whenever I grab the CVS branch I pull up the Visual Studio or my BASH shell and can compile within five minutes. Hence NO complexities of setting up special variables or special make tools. I use multiple platforms (W2K on Intel and LINUX on PowerPPC).
3) Consistent naming conventions (ok 96% of the time). Whenever I create something, the function used has the first parameter as a double pointer. Functions always start with apr. Data types have special namings. Makes it easy to figure things out.
4) Resource programming is good for a programmer who is really tired of having to hunt down resource leakage. I usually use a business orientness to writing resource base code.
5) It works for Apache. This is not to be understated, but Apache kicks butt and Apache uses APR. Hence adding one and one gives a VERY GOOD REASON to use APR.
In the end there is no reason not to use APR.
Christian Gross
