Hi Andrew, I generally agree with your sentiments with respect to the Ogre. I would say that Ogre is going through a slow evolution toward your wish list as you called it:
1. A more simplified code base closer to TP3.
2. Better use of the TP3 test suite - that one is close to my heart because I spent a ton of time on the TP3 test suite for vendors and after success with groovy and scala, I thought it would cleanly apply to any JVM language and when I got to clojure interop, i was like uhhhhhhhhh............perhaps there are smarter clojure folks than me who can figure out how to make it work.
So, how does this slow evolution get us there:
1. It started when Archimedes got combined into Ogre - over time we've slowly cleaned out duplicate functions and reorganized to make it all just Ogre. I'm still not so sure this is completely done.
2. Get Ogre running against the latest TP3 milestone M7 without too much change to the original spirit of Ogre (e.g. keep the clever Ogrish deviations from TP3 and other helper functions without too much change).
3. Start releasing Ogre milestones in step with TP3 milestones as gremlin-scala has been doing successfully since M1. My guess is that the last milestone will be M8 as TinkerPop will then be under Apache and we will likely release GA.
4. Then, with Ogre community involvement (perhaps for Ogre's GA against TP3 GA), start to look at the Ogre API itself and:
a. remove some indirection in the API - maybe inV is just inV
b. remove functions that might not be so useful - make Ogre a bit more lean
5. Beyond that - the TP3 API is expansive. There are many areas where Ogre might be extended into, like Strategies, other methods of IO, a driver for Gremlin Server, etc.
So - that's has been the thinking Victor and I have had on where Ogre should be heading since we started tinkering on it to get it running for TP3. It would be great to hear what others think on this approach to turning Ogre into a beautiful clojure representation of the TP3 API.