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

Reply via email to