"VisualAge for Java" supported an internal tool api that made it possible for third party extenders to extend the main product. This may seem very old-school and common THESE days, but in 1998 it was a very unique thing for a software development IDE to do. A "tools server" which hosted this api within an HTTP service running inside the ide's process handled inter-process comm. Again, not such a big deal by today's standards, but very unique approach in its day. This approach of using HTTP service to manage a good chunk of the inter-process communication was well received. IBM gave this "Tools API Server", which was my simple term, the name "Remote Access to Tool API. I googled for some info and found at least a link here to the first version which shipped with VA /Java 3.5:
I like to lightly mess around with code to keep my mind active and so I have taught myself Python and love working with Pythonista. I have been thinking about the various ways members of this forum have been extending Pythonista in exactly this kind of way with shells, the action menu and the like. Since both Python and Pythonista have deep support for HTTP so I am thinking about putting some ideas together. I'm neither in a position to take ideas yet but I am "just looking" at the various tools this community has already built with the idea of extending the extension mechanism itself.
I'm not yet sure if there is even a use case for this sort of thing because in the case of VA /Java, there was at least an exposed api for third parties to hook in to but as yet I don't see anything similar in Pythonista. If there is such an interest for the community to similarly extend the Pythonista tool itself I think there will need to more to expose than is currently the case. But I am investigating nevertheless whether a tools server api would be a useful thing or not.
An extensible IDE is something that has many facets to it in the general case. What makes Pythonista unique is the fact that it has to live within a sandboxed environment so most common ways of extending it are precluded. One area that might have high value is debugging support. There is an existing project called PonyDebugger that involves adding and running a server within an ios app that implements a standard API for debugging and introspection. Most users of this include it into their app in order to do realtime debugging and get access to various kinds of performance information. In the case of Pythonista it would essentially act like an IDE extension accessed using a browser. I think that implementing a good visual debugging interface within Pythonista would really take it up to a whole new level.
@wradcliffe thanks for the link to PonyDebugger. Indeed, the basic concept is very similar to what we did in VA/Java. If by debugging and tracing support you mean from within Pythonista itself, that is, from within such a sandboxed app, I too agree that would be compelling. As long as there is absolultely no dependence on any external platform such as Xcode on Mac OSX or any external network including the internet, I would be interested. What I am hinting at has to be a totally self-contained, user-added extension to the main Pythonista app in the same way as other utilities and tools for Pythonista are getting developed and accumulated like the Pythonista tools. I want to contribute added value to myself in the name of creating other utilities and services/workflow within Pythonista. So I'm talking about a level one step above the community tools, a framework if you will for creating Pythonista tools :)