Java Swing Role in the inner working of Ignition

I am an experienced Java Swing programmer and would love to work on Ignition. Ignition is totally new to me as is the automation industry. Naturally, I am starting at Induction University (and looking at the reported bugs and see if am up to task.)

Apparently, it seems Swing Components are accessed via Jython as far as Ignition is concerned. What I fail to understand is why Swing? Moreover, it seems on the User/Operator End, web technologies are preferred to Swing. Is Swing becoming a legacy ‘thing’ which will one day be tossed away? or there is something intrinsically useful in swing that Ignition will be using for the foreseeable future? Is it correct to say Ignition a mix of Java Swing and Web technologies (html/css/javascript) or it depends on specific parts and modules?


First, it is only on the front-end of Ignition, not the gateway.

That aside, Ignition has been around for a long time. (And its predecessor, FactoryPMI, goes back even further.) Java Swing was a very good choice for a cross-platform user interface–far superior to web technologies at the time. And back then, you could also embed java applets in web pages for the full experience.

There are still things Ignition’s Vision Client can do that Ignition Perspective cannot–almost entirely due to the security bounds placed on web applications. Ways around those bounds in mobile and desktop apps have to be both suitably generic for all users, yet carefully designed to only permit Ignition itself to leverage them. Not a simple task.

Vision runs locally, with local user privileges in regards to the file system and any connected devices. Many applications rely on this for local workstation identification and non-standard accessories.

IA has committed to supporting Vision for some time to come. It has not committed to any specific future upgrades. That effort is focused on Perspective.


The visualization Client provided by the Vision Module is Swing-based, but you seem to be overlooking the Perspective module, which has an entirely web-based visualization component.

The Ignition Designer can be a mix, depending on what modules you’re currently working with. It’s a Swing-based application at the core with a Chromium instance embedded for developing Perspective applications.

Jython isn’t really core to the implementation of the Vision Client or Designer, but it’s the scripting language that we allow users to hook in and write code with.

This is wisdom of many years in a few sentences. Thank you very much.

The truth is I barely know anything about Ignition and stumbled into it yesterday and got deeply interested. I got so interested that I would love to work at Inductive Automation.

Do you mind sharing a little bit of what kind of task a Java Swing programmer does at Inductive Automation? Generally speaking, for your clients to use Perspective effectively or at and advanced level, do they have to know hml/css/javascript or is the product road map is empower users to use drag and drop tools?

This isn’t a dedicated role we have right now. There’s a range of Swing programming experience in some of our developers, and often those developers will be the ones to tackle Vision-related or Designer-related bugs/features.

That said… I think we do actually have a current job post specifically targeting people with Java Swing experience.

Most users do not need to know HTML/CSS/Javascript to use Perspective, or Swing to use Vision. It’s useful when you’re trying to accomplish certain custom or advanced functionality, but you’d get the wrong idea about how common that is by using the forum as your only data point.

1 Like

I saw the job post and enrolled in Inductive University to better understand the software and industry in general. Thanks for taking time to answer me.