Simba is a data connectivity software company. We are thus always dealing with data access interface standards such as ODBC, JDBC, ADO.NET, ODBO and XMLA. Connectivity interface standards allow a lot of different client applications to talk to one server, or one client to talk to a lot of different brands of servers. I learned today how the interface concept is being used differently, across programming languages that are offered within our SimbaEngine SDK (Software Development Kit), to enhance your programmer's productivity.
Simba has defined a common, object-oriented Data Source Interface (DSI) that is used throughout our ODBC driver SDK product. What’s interesting is we have three different versions of this programming interface: one that allows you to implement access against your C++ data source, one for implementing against a data source reachable from Java, and finally one for C#.NET.
However, all three language variants of the DSI use the same object-oriented concepts (e.g. abstract classes that you must implement), type names, and function names. They all, for example, use the same general object-oriented way to define what query aspects can be pushed down (for performance) to your data source. This commonality has the significant advantage that once your programmers have learned and programmed up a DSI implementation for your development firm’s C++ source. They can easily re-use those concepts to write additional driver back-end implementations in the other languages if necessary.
I thought I would share this with you because I’ve taught object-oriented programming and program architecture in a variety of languages. When doing so, though, one gets into language silos. So it’s interesting to step back and see this cross-language interface commonality in the SimbaEngine SDK that nicely adds to your programmer efficiency. To learn more about our driver SDK architecture and how it spans different programming languages, see our extensive documentation.