When will the transition from Java to Javascript be complete?

62 views (last 30 days)
It's been nearly ten years since MATLAB began to transition from Java to Javascript graphics. Is there any roadmap for when this transition will be complete? Long ago I was told that the final product would be seemless, i.e. traditional graphic commands would invoke Javascript yet otherwise function like the legacy Java version. Despite many improvements in the new system, the two are still quite different. The difference is most obvious on Mac systems, where uifigures are clearly handled separately from figures. I have stayed with traditional figures for most of this period, waiting for the Javascript alternative to mature, but this is no longer viable due to frequent crashes (as described here).
Recent experence suggests that uifigures are almost ready for general use, but there are a number of missing features. For me, the big ones are limited export options (e.g., improper size scaling for PDF) and the lack of an Extent property; the latter helps size items based on the text held inside them. If I had those features, I could justify the time investment in switching over to uifigures full time. There are also a lot of undocumented things, such as the fact that classic uicontrols can go inside Javascript uifigures, even though the formal documentation says otherwise. I wish Mathworks would be more forthright about this substantial change, focusing less on Live Editor and App Designer updates in each release.
  6 Comments
dpb
dpb on 31 Jul 2024
And note the date on that thread is four years ago, so not like it's something new...just exacerbated by the changeover.

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 9 Aug 2024
Edited: Adam Danz on 9 Aug 2024
Thanks for your questions and curiosity about the JavaScript transition. I highly recommend that you try out the beta version of the New Desktop for MATLAB by downloading it from the File Exchange. This is an exciting opportunity for you to get early access to upcoming features, including dark theme in MATLAB Graphics. Releasing a beta like this is something new for us and goes beyond just commenting on feature work. Not only does it give you a sneak peek into the future, but it also provides an opportunity for us to gather valuable feedback.
Beta users have access to a feedback button for easy communication, which MATLAB developers actively review and prioritize. It's by far the most effective way for you to influence the product.
I'd like to add some clarification on some of the topics covered in this thread.
figure() | uifigure()
uifigure was released in R2016a along with AppDesigner to support the new AppDesigner infrastructure and to have a different set of default property values that make more sense with apps. If there is any concern that figures are being replaced by uifigures, I can reassure you that there are no such plans. Both figure and uifigure will co-exist and will continue to support uicontrol components and app-based components respectively. You can verify and experience this now in the New Desktop for MATLAB.
Exporting figures
The relatively recent set of figure exporting functions were designed to simplify and streamline the export process by targeting specific use cases: exporting data visualizations (exportgraphics, copygraphics) and capturing apps (exportapp). This approach allowed us to address user-requested enhancements in a more scalable way than cramming everything into the ever-growing print function. For example, in R2024a, you can specify dimensions and padding in figure exports in MATLAB Online, which is a hint of what's to come. Reference the summary page in the documentation for details.
Controlling layout in apps
As mentioned by others in this thread, UI components lack extent properties, which can interfere with some app development workflows. In many cases, uigridlayout is a better alternative. Not only can you nest uigridlayouts, but you can also specify "fit" for any column or row to adjust its width or height according to its contents. App resize is also more responsive when using uigridlayout. The uigridlayout workflow offers quite a lot of flexibility while reducing the need to compute extents for space management.
Give us feedback
Your feedback is incredibly valuable to us. Please use the feedback button in the New Desktop for MATLAB to share your thoughts and any issues you may find. Alternatively, you can reach out to Tech Support.

More Answers (1)

Walter Roberson
Walter Roberson on 27 Jul 2024
Edited: Walter Roberson on 27 Jul 2024
When will the transition from Java to Javascript be complete?
19 January 2038
  4 Comments
dpb
dpb on 30 Jul 2024
Very, very rare for Mathworks to comment on either features or timetables, so it's not likely, but there's always that first time/chance.
Submitting bug reports every time you run into one of these issues is the only way to bring things to the attention of official Mathworks support.
Walter Roberson
Walter Roberson on 30 Jul 2024
Is there any roadmap for when this transition will be complete?
There is no public roadmap for when the transition will be complete. Any internal roadmap that Mathworks has would be only approximate.

Sign in to comment.

Categories

Find more on Platform and License in Help Center and File Exchange

Products


Release

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!