To let SQL programmers giving up their living is not an easy task. But I know a professional concert piano player is doing programming for a living now. So it's not at all impossible. But you have to do a lot of preaching to connect people's own thinking process with new tools.
Asking the "dumb question": can you point us (the unwashed sql folks) at some references for object-based tools? or briefly describe them, enough so we get the "aha-moment" of enlightenment. Thanks.
I have an open-source Swing-based ObjectInspector
that I modified from something Axel Uhl wrote. It's kind of like a Smalltalk inspector. I added a BeanShell
command window so one could dynamically run methods against the object you are looking at. I have some things I want to improve on it, but it will run OK now. Feel free to ask me for it.
http://www.sabertooth.org/ (http://sabertooth.blogspot.com/) - seems to plan something like that ?
Has anybody got an "object inspector" that can query (with ad-hoc written queries) millions of objects, as SQL tools can do on SQL databases?
Okay, I already read "How Do I Query My Objects", and I'm still worried about the whole ad-hoc query thing. Here's my understanding: there *is* currently no good tool for querying large object graphs like this, especially remotely. Think about this: your client (who could be on the other side of the world) says he gets an error everytime your system tries to render order #12345. What do you do? Fortunately, this is a temporary weakness (because people will write tools to support remote access to large object graphs, etc.), but for the moment, this will prevent me from using the system. I also think of the development stage of an application, when I want to run a single transaction, then check the data to see if it did what I wanted. Am I stuck with dumping the objects' details to System.out?
I've implemented ad-hoc queries pretty easily using JXPath
, you should try out the JXPathDemo
. In your user-on-the-phone-is-complaining example, you could easily take a look at your logs (you use a logging facility, don't you?) and see what's happening, or turn debugging on, set some breakpoints and navigate through the object graph using the debugger's expression evaluator. Pretty simple and efficient, but it could get a lot more sophisticated with specialized tools. -- CarlosVillela