What are “UXP” plugins in Photoshop?

Adobe just released a completely new technology, the Unified Extensibility Platform (UXP), for creating “plugins” (commonly known as panels previously) in Photoshop 2021 and beyond. You’re likely to have some questions about what this means for you. I’ve just released my first UXP project, a plugin version of my free Web Sharp utility (more to come on that soon), and wanted to share what I’ve learned with you.

 

What are the benefits of UXP?

UXP offers numerous advantages, including:

  • A more modern look and feel for plugin interfaces
  • Simpler plugin installation
  • The potential for better responsiveness/speed for many operations
  • Enhancements for software developers which should ultimately help significantly grow and enhance the already wide range of 3rd-party plugins for Photoshop.

This probably won’t impact you immediately, as it takes time for 3rd party developers like myself to write new code to make the most of new capabilities, but this should mean a lot of exciting improvements to come in time.

 

What does this mean for CS6 and previous versions of CC?

Nothing is going away right now. You can continue to use your existing “Flash” and “CEP” panels (see below for what these terms mean). However, you will not be able to use newer UXP versions of plugins without updating to PS 2021 (aka version 22.0.0) or later. And you’ll probably see developers increasingly focused on UXP, rather than updating multiple platforms.

Adobe Photoshop 2021 will continue to support CEP panels for the foreseeable future, and Adobe will give developers advance notice when it comes time to sunset CEP.  They want to ensure that your favorite panels continue to work and that developers have time to update if/when needed. When Adobe replaced Flash panels with CEP they gave developers notice a year in advance, and they have made  no such announcement about CEP other than to say they will continue to support the technology.

Of course, Microsoft and Apple can always throw us for a loop with their updates, but things look very good right now. CEP panels work on Windows 10, macOS Big Sur, and even on “Apple Silicon” (Apple is about to replace Intel chips with their own proprietary CPUs in new computers).

Update 11-23-20: The first Apple Silicon computers are now out. These initial computers are not yet what most photographers will want (lower end machines with limited RAM, only 2 ports, maximum 1 external monitor, small screen, etc) but the new CPU looks very promising for the rest of the lineup as it rolls out over the next 2 years. Adobe Photoshop is confirmed to run very quickly on the new machines under “Rosetta2” emulation with both CEP and UXP panels. To run that way for maximum compatibility: Right-click Photoshop in the finder and select Get Info, then Check Open in Rosetta. Then just run the application as normal (the first launch will be a little slower due to some optimizations and then future launches will start up quickly as normal).

I am unsure if Flash panels work on Apple Silicon or not, so CS6 may be affected, but Flash and CS6 are otherwise ok on current Apple hardware. The fact that CS6 will still be in use nearly a decade after it was released is pretty incredible, but I suspect its days are numbered. Seriously, CS6 launched when the first Hunger Games movie was still in theaters and before the iPhone 5 and Google Glass (remember those?). At some point, migrating to Photoshop CC may be part of the cost of adopting the latest computer hardware or operating system, and I strongly recommend CC over CS6 already. The ability to use Camera RAW Smart Objects alone is worth the upgrade for many photographers, and there are so many more benefits to CC.

Bottom line: for the majority who are already using CC, I anticipate your CEP panels are safe for the next few years and popular panels will likely be updated to support UXP.

 

Can I use both old and new panels in Photoshop 2021?

Yes, you can use both the old (CEP) and new (UXP) panels at the same time in Photoshop. Other than installation and the new look of the common “Spectrum” interface elements, the one thing that will stand out is that these panels are located in different places. CEP panels can be opened from the same location they have always been, under Window / Extensions (now marked as “legacy”). UXP panels are under a new top-level menu, Plugins. The top of the Plugins menu also includes a Plugins panel that gives you another way to launch any installed UXP panel. Other that being in two different locations, there really isn’t much difference at this point – but it is likely to cause some confusion if you aren’t aware that there are now two places to look when opening a panel.

 

What does this mean for Lumenzia?

Lumenzia is currently built using “Flash” for Photoshop CS6 and “CEP” for Photoshop (insert version numbers).  In fact, I have big updates coming soon for Lumenzia built using Flash/CEP. I have no specific timeline for building a UXP version of Lumenzia, but ultimately anticipate releasing one in the future. UXP seems both beneficial and well-supported by Adobe. The timing for a UXP version depends both on Photoshop updates (as some of Lumenzia’s advanced features aren’t yet supported with the initial release of UXP in Photoshop) and me (as I will have to completely rewrite the software from the ground up). So I can’t offer any specific timing, but it will be a while. I’m not going to rush anything before it’s ready, and current design continues to work perfectly fine. Note: the amount of work required to migrate an existing plugin to UXP depends upon the complexity of the original. Thus, Lumeniza’s advanced functionality makes it more challenging to port over to UXP.

What does this mean if you are using CS6 or an older version of CC and I release a Lumenzia UXP update a year from now? Not much, really. You would be able to keep using the current (and upcoming v9) versions of Lumenzia. And you’d have access to tons of upgrades if you choose to switch to the newest Photoshop CC at that point (as your purchase of Lumenzia gives you access to both the CS6 and CC versions).

Bottom line: Nothing to worry about, and this may pave the way for more great enhancements to Lumenzia down the road.

 

What’s the difference between actions, panels, and plugins?

There are numerous technologies for enhancing Photoshop. These include:

  • Actions (or Droplets). You’re likely very familiar with actions since they have been around since version 4.0 (we are on v22 now). These are macros that you can record to playback repetitive steps, and are a popular way of sharing very simple edits. They offer almost no decision-making logic, almost no interface, and no error handling. They are easy to make (no coding required), but they don’t do much either. They can be used by panels to get things done, but that is a very simple and limiting approach. JavaScript offers vastly improved capabilities over actions.
  • JSX (aka ExtendScript). This is Adobe’s original implementation of JavaScript (ECMAScript 3 standard), a programming language that allows for advanced control of Photoshop that goes well beyond actions. Ultimately, this is just a way of controlling Photoshop, so it cannot do things that you can’t do with Photoshop on your own. However, fully developed JSX often provides so much simplicity and speed that it is effectively like adding new capabilities to Photoshop. JSX can be executed on its own (via File / Browse Scripts in PS) or more commonly behind the scenes as part of a panel. Because it is based on such an old standard, JSX does not offer all the benefits of modern JavaScript and debugging environments for developers, which is one of the reasons Adobe is replacing it with modern JavaScript standards in UXP.
  • C++ plugins. These are actually fully-independent programs (they can technically run on their own without Photoshop). They may create their own users interface or be used in combination with panels in the background. This is the technology used by large applications such as Nik or Topaz plugins. Development is much more difficult, but the potential capabilities are wide open because these plugins can do things that Photoshop cannot.
  • Flash panels. These added the first 3rd-party panels for CS5 and CS6. This is the technology behind Lumenzia for CS6. They aren’t very dynamic or pretty, but they gave us a way to create our own panels of buttons. This technology was discontinued with Photoshop CC 2014, but is still relevant for those who are opting to use CS6 instead of CC. Flash panels are all about user interface (they use JSX or C++ plugins on the backend to control Photoshop). As Flash is a dead technology and the installer for CS6 uses a technology that does not work with the latest versions of MacOS, this technology is on borrowed time. Given that CS6 was released in April of 2012, it’s amazing that it’s still widely used and functional.
  • CEP panels (aka HTML5 panels). This is the technology behind Lumenzia for CC. These CEP (Common Extensibility Platform) panels are actually little Chromium web browsers running inside Photoshop. As such, they have enormous capability to create beautiful and dynamic interfaces. Like Flash panels, these are a form of user interface that runs JSX or C++ plugins in the background to control Photoshop. However, as Photoshop has improved over the years, you can also do a lot more with JSX in newer versions of Photoshop.
  • UXP (Unified eXtensibility Platform). This is Adobe’s new framework for building plugins in CC apps. UXP powers XD plugins and is now available in Photoshop CC 2021. This includes a completely new technology to replace CEP panels, as well as adopting the Chrome V8 engine to allow the use of modern JavaScript. The front-end is effectively a light web browser-like technology built by Adobe. It is capable of starting up much more quickly than the Chromium Embedded Framework used by CEP panels, and is not slowed down by a translation layer between the panel and Photoshop. The developer environment is more stable since Photoshop won’t need updates to keep up with new versions of the Chrome debugger (which affects CEP plugins). It also gains the capabilities of asynchronous JavaScript, which a non-programmer might think of as “multitasking” (that’s not what it really does, it is single-threaded, but the bottom line is that it helps minimize the effect of bottlenecks on performance).

 

Are there any drawbacks to UXP?

As a new standard, it will take time for the developer community to migrate CEP panels and create new ones. That may mean some changes in the look and feel of some panels, or possibly introduce some bugs or changes in functionality during transition. But I fully expect the net experience should be positive, especially as CEP isn’t going away and developers are not being forced to rush out UXP panels before they are ready.

There are also some functional limitations in UXP relative to CEP at this time. For example, my new Web Sharpening Script will ask you to specify the folder for saving output once per session, as UXP 4.0 plugins (which is the UXP version inside Photoshop 2021) are not capable of remembering that you granted permission. However, these sorts of limitations probably aren’t a huge issue in most cases and I anticipate important limitations will be addressed as Adobe continues to develop UXP.

There are some user interface limitations as well. Adobe is replacing an interface built on a Chromium web-browser with an internally-developed browser-like interface. That is a huge undertaking and Adobe can’t realistically support the full functionality of a web browser. That means there are some limitations in what developers can do with the new interface compared with the old. For example, the popular “Popper.JS” frame for creating advanced and beautiful tooltips is not currently supported. It also creates risks that the interface capabilities don’t support or quickly adopt new features frameworks that would otherwise be available in Chromium (ie, a risk that the gap grows as Chromium improves in the future).  It’s hard to say what this ultimately means, as this is just the first release of UXP and it will continue to evolve.

Developer opinions/predictions will vary on this topic, but I believe Adobe is showing that it is committed to offering a strong platform for extending Photoshop. The need to both encourage migration of CEP panels to UXP as well as ongoing support of 3rd party add-ons (which clearly help create increased demand for buying and using Photoshop) should help ensure enhancements. No new platform has ever been perfect (or perfectly understood) immediately at launch. So these questions and concerns are unsurprising to me. I’ve been very impressed by how quickly Adobe has built such a compelling option in the first release of UXP for Photoshop, and look forward to its continued growth in the future.

 

Where can I learn more about UXP?

Please see  https://adobe.ly/max2020uxpps

 

Thank you to the team at Adobe!

I’d like to say thank you to the numerous unsung heroes at Adobe. You know that splash screen that pops up when you open Photoshop? There’s a great story behind every name there. I know a handful of them personally, and they are incredible people. I also know a much longer list of names that aren’t on that list because it takes a massive team of developers to create Photoshop and the underlying technologies (like UXP). I’ve watched these teams work crazy hours this year preparing UXP: adding new capabilities, fixing bugs, working long with me and numerous other developers to help build an ecosystem of UXP-based plugins you’ll love, and time out of their weekends and vacation to help make it happen.

Greg Benz Photography