No, that’s a bit too harsh a judgement. Jython is perfectly fine if you don’t need a module in the end, and the performance hit doesn’t matter. Or you can mitigate the performance hit with careful avoidance of runtime code definitions. (So jython functions can can be cached and optimized.)
That’s not entirely true. Most Ignition APIs are stable. For example, my NoteChart module is compiled against 7.7.8 and that one .modl file runs on that, 7.8.3+, and 7.9.x. The maven build system is over-constrained for this purpose, though, which is why I’ve put together my own Ant build.
Jython can leak memory too, particularly on scripting restarts. It’s a big part of why I discourage use of shared.* script modules for all but the most standardized and stable scripting classes and functions.
Jython simply uses Java’s garbage collection, so there’s no significant difference in garbage collection. You simply must remove objects from persistent collections when you are done with them. That’s basically it. There’s no magic bullet in Jython that prevents memory leaks. Java has debugging tools that help you profile memory usage – that’s a big help finding leaks.
It is polling http(s). Clients subscribe to tags, and the gateway notes changes to those tags. On each poll, the client picks up just the tags that 1) are subscribed, and 2) changed. The tag poll also picks up any queued messages from the sendMessage() function. Other client interactions with the gateway are http(s) request/response. Client payloads are not XML – they are java serialized binary.
Perspective uses websockets instead of polling http(s), so tag changes and messages can be pushed immediately to subscribers. I understand this is coming to the Vision module as well, eventually. Perspective’s payloads, after the initial React page and script load, is encoded json. I presume Vision would continue using java serialization.
Neither the Vision client payloads nor the Perspective client payloads are expected to be usable outside Vision and Perspective, respectively. Perspective is extensible by a module to make new components, but those components are built on perspective resources, not your own web page designs. While perspective api endpoints (json) will be technically accessible outside perspective, expect difficulty authenticating to use them that way. Plan on using the WebDev module or your own module to expose Ignition internal data to generic consumers.