Tom:

I take your other points, but as to the placement of driver constants
(and I'm only talking about driver constants here), you mention:

**********
No, the thing is that this is info specific to this platform, so I
would expect it to be defined somewhere within the platform, not
somewhere else (principle of least surprise).
**********

If this is true, then why define any constants at all in PlatformInfo
(again, I mentioned that consistency is one of my big things)? OK, it
may be that some driver classes legitimately serve more than one
database (I think of jTDS, which serves both SQL Server and Sybase).
However, in those cases, we can't guess the database from the driver
anyway, and the constant is never used, so why define it at all? And
surely PlatformUtils.JDBC_DRIVER_DATADIRECT_DB2 is better defined in the
DB2 platform, by your own argument. This is a driver specific to the DB2
platform, and so you "would expect it to be defined somewhere within the
platform." The fact that DataDirect has a number of drivers doesn't tie
those drivers together in a programmatic or usage sense. In that way,
you can see at a glance the drivers that are covered for each specific
platform in one place (and of course, a note should probably be inserted
regarding the jTDS driver in both the SQL Server and Sybase Platform
implementations to indicate why it doesn't appear, since presumably it
is otherwise useable - I used it without difficulty in my first tests of
the tool). I only mention this with some stick-to-it-ivness (as my
grandmother would have said) because I found it confusing at the
beginning, so if principle of least surprise is to govern, one only asks
that it govern consistently, if nothing else to help the surprisable,
like me.

I remain interested in helping in any function in which I might be able
to do so.

Best wishes,

David

Reply via email to