Friday, February 12, 2010

Beef Flambé: FIB Plus

Cook: How would you like your components served?
DHR: With no support, bad help files, worse and worse quality and infrequent updates.

Cook: How would you like to pay by?
DHR: By ShareIT or by SWREG, I would certainly pay for it, but thousand of free-loaders won't.

FIB Plus came as brain-child from Gregorg D, looking at using Interbase instead of using MSSQL. Interbase was supposed to be best-of-the-breed database system, the alternative between Oracle, MSSQL and Sybase. It was much cheaper, better, and costs less. It was frequently compared as having better features than SAP Adibas, Solid Server's Solid Database (used in telephone companies - AT&T, Sprint) and considered the winner in certain database circles.

The database that could.
Interbase 4.0, 5.0 is an interesting database with impressive features, but suffers from poor connectivity. Earlier versions of Interbase ODBC driver was formerly supplied by InterSolv's ODBC driver and later, EasySoft ODBC driver with US$99 per-seat royalties (and the usual upgrade fees). Your reviewer remembers the Delphi 5 days when Interbase was shipped with InterSolv Interbase ODBC driver. InterSolv was later acquired by Merant, then Serana Software[1]. While Delphi 7 was shipping, Interbase was open-sourced, causing Borland to loose an estimated US$50 million. However, if Borland did not open-source Interbase, your reviewer thinks Interbase would the mongrel database, another failure story.

To Market, To Market
To connect to Interbase, there are serveral developer header file (*.h) that shipped with Interbase, that showed how to connect to Interbase. In comparison, MSSQL had ready-made ODBC/ADO/ADO.NET and other certified drivers. Sybase had working decent ODBC/ADO drivers that worked flawlessly. Ditto for Oracle, MySQL and Interbase competitors.

With Delphi, there was FIB - a pile of sources now maintained by DevRace, IBObjects - by Mr. Jason Wharton. The thing that Mr. Jason Wharton did right - was fix the threading part. You could run 10, 20 or 30 users with your Interbase or Firebird database and no problems. Mr. Jason Wharton gave phone support and reading from his mailing lists, gave impressive support. From the huge number of customers, I would say most companies won't blink to give him US$15,000 or maybe US$30,000 for his IBObject for licenses.

FIB on the other hand, was done by a secretive author, who rarely replied to technical support requests. Although DevRace forum is not filled with spam, your reviewer was surprised to see questions since 2006 (4 years ago) not answered. What kind of service is that? In order to get updates, you had to pay "prolongation" fees, e.g., US$56 per year to keep on getting updates (for 1 user).


Cooking a storm
The troubles started in 2007, when FIB 6.xx was released, and for whatever reason, one fix after another, the thing was full of bugs - from memory leaks, threading issues, random hanging and freezes. Upgrading from Delphi 2006 to Delphi 2009 broke the camel's back. Many issues that wasn't noticed become really bad, the Unicode upgrade broke loading/saving to/from Interbase/Firebird, strings became broken, memos could not be read nor written correctly. Attempts to reach the vendor were in vain.





Revival
Your reviewer thinks, with this bad economy, and huge amount of time required to fix all those bugs with FIB, there would not be a revival anytime soon. Between waiting for upgrades, customers would find better alternatives - such as previously mentioned IBObjects or UniDac[3].

Since IBObjects and UniDac give almost correct results, and FIBPlus does not, it's just a couple of week's worth of work to move over from FIBPlus to IBObjects and UniDac. Of course, if you need help, you can request for priority support with Mr. Jason Wharton's.[4]


Which leads to your reviewer's master-chef recommendations:
1] If it is not your own components, don't be surprised you won't be able to maintain it.
2] If it is not your own works, don't be surprised whatever bug-fixes you do, leads to worse and worse results.
3] If you don't give any support, don't be surprised your competitors will eat you up.
4] If you give not much help files, don't be surprised your competitor support to FIB's customers will blow you away.
5] Being very secretive does not help. Answer those questions on your own forum.


Firebird Recommendations
Your reviewer would recommend DevArt.com Unidac or IBDac instead.



[1] Wikipedia entry - http://en.wikipedia.org/wiki/PVCS
[2] Devrace - www.devrace.com
[3] Unidac - www.devart.com
[4] IbObjects - http://www.ibobjects.com/ibosupport.html

3 comments:

Fikret Hasovic said...

I would recommend UIB instead...

Anonymous said...

SAP Adibas --> SAP Adabas D

What do you want to tell us?

The importance of native drivers specific to one database by a specific vendor is overestimated.

UniDAC as well as AnyDAC provide in the end what people need and a lot more. I have preference for AnyDAC but in case of ODAC the direct mode support is welcome too.

Jason Wharton has provided well sound well layered components from the early beginning, no doubt. No reason to switch.

Maybe the FIB support is handeld a lot better via the ticketing system ... this is maybe an explaination ... I don't know. Maybe they decided to wait and jumped little late on the UNICODE train ... I also can only guess and we should not blame about something we don't know. This is not fair.

Maybe it is wise to keep ones components open to support various datbases. We should not forget, supporting many databases requres indepth knowledge of the database itself ... if native drivers have to be used.

Mike

IB Hater said...

"Interbase 4.0, 5.0 is an interesting database with impressive features, but suffers from poor connectivity."

Nope, it was cr@p.

I became an Interbase hater when I inhereted a project specified by a predecessor to use Delphi 5 and Interbase 5. Why Interbase ? The only reason he gave was "it's not Microsoft". Except he didn't do his homework to note that although he specified dual processor NT servers he failed to spot the internet postings which confirmed that IB5 only used single processors on NT.

Of course non of the analysis tools with IB would help - the monitor tool would only monitor queries from the current client, not from all clients like SQL does. You resort to Task Manager to monitor if IB is having any problems and that only tells you tons of memory and 100% CPU is being consumed. Not why.

The recommended IB solution was to replace the NT boxes with Linux. Not good if a) the client has already invested in them, b) the client has no expertise in Linux and no interest in getting any and c) they used other features on the server related to workflow.

We just did a straight replacement of SQL Server for IB, no optimisation and no changes other than fixing up some SQL statements. We even ran with no indexes at the beginning (rushed replacement, we forgot the index script) and it was STILL faster than IB.

Since then I've switched completely, even paying to do DBA training and exams in SQL Server.

IB ? I don't miss it at all.