You are now quite close to COM.  The primary difference is that COM is based on 
immutable interfaces and you have a single squishy interface with explicit 
interface version.  After a few iterations, developers with have to track what 
versions had which features to avoid calling things that don't work.  This puts 
a large burden on programmers and, what's worse, there's really no way to 
determine whether a program that works with one version will work with another.

COM's immutable interface model means that if an object supports an interface, 
it supports it completely and safely without manual checking.  If a plugin 
requires backward compatibility, it can probe for interfaces it understand and 
use the best.  If it can't find an acceptable interface, it knows it can't 
continue.

I question whether you have really thoughtful how an interface is going to grow 
and evolve.  At best, you are limiting the ability for future Firebird 
developers to implement new functionality in an upwardly compatable manner.

Many, many projects have looked at the same issue and decided that multiple, 
immutable interfaces are the way to go.  None, other than Firebird 3, has 
decided to re-invent objects with a decidely weak mechanism for growth.




> On Aug 13, 2014, at 12:57 PM, Adriano dos Santos Fernandes 
> <adrian...@gmail.com> wrote:
> 
>> On 13/08/2014 13:25, Dimitry Sibiryakov wrote:
>> 13.08.2014 13:24, Alex Peshkoff wrote:
>>> What do you think about adding different styles of C++ code generation?
>>> First of all I think about support of smart pointers.
>>   Can your IDL generate current interface with pure abstract classes as 
>> well?..
> Why one would need this, if the proposed generated code is usable in the
> same manner and has a stable layout across compilers/platforms?
> 
> 
> Adriano
> 
> 
> ------------------------------------------------------------------------------
> Firebird-Devel mailing list, web interface at 
> https://lists.sourceforge.net/lists/listinfo/firebird-devel

------------------------------------------------------------------------------
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to