On Mon, 11 Aug 2014 09:18:58 +0100, Tony Whyman <tony.why...@mccallumwhyman.com> wrote: > Firebird already has a C++ Interface that is widely if not universally > used by C++ Developers (including myself) to access the Firebird API. > This is IBPP. IMHO, it is well designed, stable and fit for purpose. It > compares well with similar libraries such as MySQL++ and Oracle OCCI.
... > I can't see the justification for the new interface. It does not improve > on IBPP and will not make Firebird more acceptable to the C++ community > while, at the same time, it will lessen the attractiveness of Firebird > to just about everyone else. A uniquely pointless exercise. I think this discussion is getting a bit out of control. I for one still have tens of unread messages on this subject, but I get the feeling people are talking past each other instead of with each other. I think we **first** need to establish the use case(s) for the API(s), and the target audience of the interface(s), then we should establish the needs for these use cases and audiences and only then should we discuss implementation options. I believe I have seen the following use cases: * Connecting/querying Firebird * Plugin development * Provider development And target audience: * Firebird developers * Driver developers * Plugin/provider developers(?) * Application developers To illustrate: you seem (?) to be speaking from the perspective of a target audience who use the interface in application development, and where you don't want to deal with all the nitty gritty low-level details, here IBPP is probably a good fit (but as I haven't used it, I can't say). However speaking as the developer of Jaybird, I don't want an API that will perform too many conversions or work that I will need to redo to make it work the same or similar as the wire protocol implementation, and to make it work within the rules established by JDBC. In that case an API that does too much heavy lifting is actually a hindrance (or at minimum a potential performance bottleneck). These are already two - somewhat - conflicting needs. Personally I'd say that Firebird should at minimum have a low-level API (which the current ibase.h provides, although it has some annoyances). A higher level API (like IBPP) to do some of the heavy lifting for application development is a nice to have. And as you say: it already exists: IBPP. For the rest of the discussion: I think we need to take a step back and do a proper analysis. Mark ------------------------------------------------------------------------------ Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel