Rodrigo,
First of all, this topic is potentially a large one and I haven't
thought it through myself,
so most of my comments below are ad-hoc. Also, bear in mind, SOCI was
designed and created by Maciej Sobczak, so I may not be aware of some of
design decisions.
Post by Rodrigo MaderaSeeking further comment on this, can you list some things that would make
SOCI a good candidate?
I'd say, if there are users who find SOCI useful, then the project is valuable.
Every valuable C++ library project has potential to become part of the Boost
C++ collection. Does SOCI fit all Boost requirements and expectations?
That is a tricky question, difficult to answer in comprehensive manner,
unless SOCI undergoes the Boost review process.
However, there are some indicators that may suggest SOCI wouldn't be
accepted straight away:
1. SOCI is 10 years old
2. SOCI followed syntax-first develpment approach
3. SOCI design priority was to provide a very simple, usable and
extensible database
access abstraction (roughly, SOCI tries to act as a common denominator)
4. High performance doesn't seem to be highest priority.
5. There are known issues which still need to be addressed (i.e. more complete
SQL<->C++ numeric types mapping and conversions)
As you can read in some of the threads I linked, point 4 is usually extremely
important for Boost.
Post by Rodrigo MaderaWhat are the drawbacks?
More work for SOCI developers :)
I have been a Boost review manager (Boost.GIL I/O) and
participated in library submission to Boost (Boost.Geometry),
and the whole process huge effort, and may take long months to complete.
Post by Rodrigo MaderaOf course some things can be made better, but as everything else.
Indeed.
There is new aspect which is related to release of C++11.
The new standard has triggered some interesting discussions
about a database library for C++, and even some N papers
in 2012 [1] and 2013 [2] have been proposed: N3415 [3],
N3458 [4] followed with N3459 [5] and later with N3612 [6]
which BTW mentions SOCI.
The last paper was later discussed [7] on ISO C++ group.
Recently, ISO C++ established a SG11 - Databases group [8]
devoted to discussions about C++/database access,
but no threads have arrived there yet.
Long story short, it looks that arrival of C++11 opened new
hopes regarding C++ database interface.
Meanwhile, SOCI remains C++03 compatible, but C++11
related enhancements are strongly welcome, if conditionally compiled.
[1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/
[2] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/
[3] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3415.html
[4] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3458.pdf
[5] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3459.html
[6] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3612.pdf
[7] https://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/iqOtgxP_IRA
[8] https://groups.google.com/a/isocpp.org/forum/#!forum/databases
I hope it's helpful.
Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
"Participation in this whole process is a form of torture" ~~ Szalony