48089IB Objects 6 and beyond
- Dec 14 4:27 PM
I thought I would write a little bit about what I have been up to for the past few months and in particular decisions I have been making about on-going development of IB Objects. I have been working extensively on getting the new major version of IB Objects ready. It is coming along quite nicely and I hope to have a version for testing out in about 4-6 weeks.
As some here know, IB Objects is nearing it's 20th year as I started this all in 1996 with Delphi 1 and Delphi 2. I have put in a tremendous amount of energy to keep it such that it maintains support for compilers as early as Delphi 5. I am committed to doing what I can so that those who invest their valuable time and energy into using my products can count on a software lifetime of reliable use, maintenance and support behind them. I will continue to provide bug-fixes for the IBO 5 product for those still working with older versions of Delphi.
However, I also have to embrace new technology and features and take as full advantage of them as I can. This is why with IB Objects 6 I plan to support Delphi XE5 and higher. I am currently using Delphi XE5 as my Delphi development tool as well as Free Pascal 2.6.4. If I bump into some good stuff that XE5 doesn't support that I want to use then I will move up the line. But, if there are many of you out there who have standardized on a version prior to XE5 who really wants to take advantage of my new efforts, be sure to let me know. If it isn't too much effort I may be able to provide support for earlier versions. I am quite sure XE2 will yet be viable but anything prior to that will need a significant amount of convincing.
Quite a bit of my efforts are going into consolidating all of the code that makes IB Objects a InterBase/Firebird only product. As I take advantage of new language features I am optimizing and streamlining several things that will provide a performance boost. My goal has been for a very long time to make the IB Objects architecture available for use with other back-end databases. When IBO 6 is done it won't be all that significant of a step to support other back-ends.
I am also doing more to have a distinct separation of layers so that IBO will satisfy a greater range of application uses and developer styles. There has always been a low-level to IBO that people can tap into for the ultimate in speed while others can enjoy the high-level where everything is wrapped into intelligent objects that do a lot of the heavy lifting for making feature rich user interfaces. I want to make both layers fully distinct and viable. I am also re-writing several parts of IBO that have been relying on the higher level objects to the new low-level driver interface. For example, entire schema cache system has been written to work at the low-level and this has given a distinct boost in performance.
So, for those who are writing server-side "in-code" only modules, you will be able to tap into the lower-level performance. And, I have some exciting new features planned for the high-level interface. For example, I have designed and partially implemented multi-level undo support so that the buffers will actually allow the user to cancel their changes more on a step-by-step basis. I will have several undocumented features in IBO 5 more fully surfaced and documented.
I am already starting to research and look into what other database back-ends I will write drivers for. I would love to hear feedback from you about what databases you would like to have your IBO apps be able to readily expand to.
PS. I have a new release for IBO 5 ready and due out shortly.