On 2013-05-01 15:25, 姬 明超 wrote:
I agree that it isn't clever to "reinvent the wheels". The libxml2 and expat are both great xml libraries. It will be much easier to offer API of the existing libraries than to implement a new xml library.
But what if the users don't have libxml2 on their computer?
Then (s)he has to install the prerequisite libraries, as is custom with all software that is being used today.
Just tell the users to download libxml2 before they want to use boost::xml? Or include the libxml2 in release version? I think neither of them are friendly to users.
I agree that usability and user-friendliness should be a concern. However, most of these aspects can be taken care of by proper packaging or package management. For example, on Linux you would typically use package managers such as rpm or deb to manage packages, and managing such dependencies as all handled very conveniently. For avoidance of doubt: I'm not suggesting that libxml2 has to be the backend-of-choice. In fact, I would argue that a much better curse of action is to add more backends, which has a couple of benefits: * supporting multiple backends helps to make sure the API is itself not tied to any particular backend by accident. * it gives more choices to package managers who build packages for a variety of platforms, and who then have to choose how to configure the library, and specifically, what backend to pick. As a good reference, I suggest you have a look at arabica (http://www.jezuk.co.uk/cgi-bin/view/arabica), which has already done that. Perhaps some of it can even be reused and incorporated into such a boost.xml library.
If the 3rd-party libraries are allowed in boost, I'll be glad to work in accordance with your advice. I hope to hear more voice.
We have had this discussion a couple of times in the past on this list. I doubt there is any fundamental disagreement on this approach. Other boost libraries use similar approaches if they cover a sufficiently complex domain. For example, consider boost.mpi or boost.python.
I would be happy to mentor this. Thank you very much! I'm glad to work with you if I'm accepted.
Great, then let's get started on some project details (we still have two days ! :-) ) We still need to establish clear (achievable) goals, as well as a realistic schedule. Feel free to follow up offlist if you want to discuss any of this. Regards, Stefan -- ...ich hab' noch einen Koffer in Berlin...