Boost logo

Boost :

From: Jeff Garland (jeff_at_[hidden])
Date: 2004-10-16 10:09:08


On Sat, 16 Oct 2004 04:26:12 -0500, David B. Held wrote
> Arkadiy Vertleyb wrote:
>
> > [...]
> > 1) The amount of feedback we have been receiving is unproportionaly lower
> > than the amount of effort invested. This project started as kind of
> > research rather than to fulfill the need of some concrete application. We
> > hoped that, as we go, the applications would somehow emerge. After all the
> > domain is pretty popular. Unfortunately this didn't seem to work.
>
> The applications are there.

No question. I think part of this is that RTL wasn't initially targeted at
interfacing to databases - it essentially replaces the database by performing
joins, etc.

> But this is a domain in which most of
> the applications simply use the existing APIs, even if those are not
> C++- style APIs.

And there are c++ libraries not part of boost that serve many needs. Not to
mention commercially developed libs. Several have been mentioned in the
discussion.

>Like sockets, threads, and everything else, we use
> a C API because that's what is available, but if a good C++ API were
> available, we would probably use that. So don't take the lack of
> strong demand to be an indicator that there is no demand.

Agree.

> I absolutely
> guarantee that some relational db library in C++ is important,
> useful, and would find a large number of uses once it is created,
> validated, and made user-friendly.

No question. But since RTL doesn't provide an interface to a db currently...
 
> > 2) The project turned out to be too ambitious for the two of us. We did
> > implement all the functionality we wanted, but we could use a lot more
> > testing, some parts might need to be re-written, re-designed, etc.

I'm not surprised - it's alot of work...

> > IOW, if there is an interest in this library, we need help. Let me know if
> > anybody is interested, and to which extent -- I could open a project at
> > sourceforge, and we could proceed from there...
> > [...]
>
> Unfortunately, I can cheer more than contribute. Obviously, there
> is a lot of interest in this type of library considering all the different
> projects that have been started. I personally find MySQL++ to be an
> abomination as far as support goes, and it is definitely an
> unfinished product, though it does some things really nicely. But
> that project also failed due to lack of resources.

At the end, I think resources are the big problem...

>It seems to me
> that most Boost authors are not heavily involved in db-centric apps,

I wouldn't say that. They probably just don't have time to create such a
library - even if they wanted to. I'd love to work on it, but I have to make a
living, have a life, etc...

> which might explain the multitude of non-db-related libraries in
> Boost.

I'm guessing there are other forces here that are more important.

>But I think if all the different db-library authors were
> made aware of each other and conspired to work together, they could
> easily produce a Boost-quality db library, which I would like to see
> (and I'm sure many others would like to see as well).

Perhaps. There has been clear interest in a networking library for years -
many have tinkered and helped, but we still aren't there. No one has had the
huge amount of time it takes...

>To reiterate
> what someone else said, one thing this library should almost
> certainly do is allow traversal of recordsets iterator-style, since
> that is The C++ Way (and It Is Good). Also, I think there is room
> for both statically-defined and dynamically-defined recordset types
> (think mapping to a predefined table or mapping to a query result
> set, possibly user-defined). I think a library that only offers one
> type is missing something important. If I only need to access raw
> tables for a db whose schema doesn't change, then I want statically
> defined recordsets to do so, without paying for any additional
> runtime burden. But I also want the ability to pass a raw SQL
> string to the library and possibly have it return a dynamically
> defined recordset with the appropriate fields included. That would
> be COOL.

Yeah, but RTL hasn't been aimed at this initially...
 
> I, for one, use BDE, because BCB makes db access too easy for many
> apps. However, I would much rather use a C++ library if one were
> available. But it would need to be as easy to use as BDE/DAO/ADO to
> get me to switch, and I'm sure that is part of the reason for the
> slow adoption of libraries like RTL. You have a minimum usability barrier
> to cross before the user base will migrate to the library.
>
> Don't give up. DB apps are a huge portion of the market (possibly
> the biggest, I imagine), so I don't see how anyone who has done db work
> could think there isn't demand for good db libraries. The main
> problem, I think, is getting people to improve one good wheel
> instead of inventing many mediocre ones.

I would put a library that provides portable odbc based RDB access on my top 5
list of libraries I'd like to see - and I mean not only in Boost, but in the
standard. For most non-trivial applications this is a clear need and lots of
time is spent on projects making this work. It's one of those things that
makes people want to use JAVA or some other language. But, I recognize that it
is a large and difficult effort - so I'm not that optimistic...

Jeff


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk