Introducing React ReExt – Sencha Ext JS Components in React! LEARN MORE

Survey Results Drive 2016 GXT Roadmap

April 14, 2016 129 Views
Show

We recently surveyed GXT customers to find out more about the GWT ecosystem and what they’d like to see in the next version of GXT. Thank you to the almost 100 customers who participated via the email invitation and our GXT Community on G+! As we will share with you in this blog post, the thoughtful and detailed survey answers have directly shaped our GXT product roadmap for 2016. Let’s start by taking a look at how GWT is being used today.

Browsers

As expected for GWT applications, the desktop browser remains the dominant environment in which applications run; however, a large group of customers indicated that they expect to deploy GWT applications on tablets (74%) and phones (33%) within a year.

GXT Survey Results - Browsers

On what devices do you expect GXT to run within one year?

Among desktop browsers, less than 16% of respondents said that they need to support the older versions of IE8/9. This is great news for the future as it will allow us to remove image slicing and other cruft from GXT and move to a pure CSS3-based implementation, which will facilitate faster builds and smaller output. Of course, GXT 4 and earlier will continue to support older versions of IE.

GXT Survey Results - Desktop Browsers

Which desktop browsers must your app support?

Google Chrome appears to be slightly preferred over IE in our customers’ environments. A strong showing for Safari demonstrates that Macs are gaining significant traction in the enterprise.

GWT

Moving on to the GWT development environment, the vast majority of customers have migrated to GWT 2.7 or even the GWT 2.8 beta release.

GXT Survey Results - GWT versions

Which version of GWT do you use?

This certainly makes sense given that super dev mode (71% said they are using SDM) in GWT 2.7 is faster and easier to use than in prior versions. The surprisingly large percentage already on the GWT 2.8 beta (14%) suggests to us that there is an appetite for the improved JsInterop capability in that version.

Development Environment

Our customers overwhelmingly work with Eclipse (74%) over IntelliJ. The GWT support in both IDEs is very good; however, Google has been slow to update Google Plugin for Eclipse with bug fixes and a lot of GWT functionality has been removed, such as GWT Designer and support for Maven GWT+GAE projects. Fortunately, some of these features are available in the community GWT Plugin for Eclipse maintained by Sencha engineer Brandon Donnelson (thanks Brandon). The community GWT Plugin for Eclipse has the following features:

  • Works with Eclipse Mars
  • Can launch super dev mode with any configured Web server (vs. just the built-in jetty server)
  • Supports the new gwt-maven-plugin from Thomas Broyer (thanks Thomas)
GXT Survey Results - Development Environment

Which IDE do you use for your GXT application development?

Speaking of Maven, it’s used by 68% of surveyed customers. GXT artifacts can be downloaded from our Maven repository or the Sencha Support Portal. In fact, the quickest way to create a new GXT project is to use a Maven archetype.

GXT

Eighty-four percent of surveyed customers are building with GXT 3.0.x or later, and a significant percentage (25%) has already migrated to GXT 4 to take advantage of the tablet support.

GXT Survey Results - GXT Versions

Which version of GXT are you developing with today?

One surprise for us in the survey was the large group of customers (43%) not using UiBinder at all.

GXT Survey Results - UiBinder

How much do you use UiBinder?

The most commons reasons given for not using UiBinder were:

  • The UI is highly dynamic. (Indeed, many of our customers use GXT to dynamically construct the entire UI from metadata.)
  • The UI was written before UiBinder was available.

And some of the respondents apparently just don’t like declarative programming, as shown by this comment: “Reminds me of JSF and that is something I’d rather forget.”

GXT supports UiBinder and many find it useful for visualizing layouts; however, if you haven’t adopted it already, don’t be in a hurry to do so because GWT 3 will most likely drop support for UiBinder.

We asked customers what they like about GXT. Their responses were very helpful:

Likes

  • Sophisticated and fast widget library, especially Grid and Tree
  • Large and coherent widget set
  • Nice default theme
  • Store / Loader API
  • Charts

GXT has always included comprehensive, feature-rich widgets for GWT, so it’s no surprise that’s what users like about the framework. In addition, respondents suggested a lot of specific improvements. This feedback is extremely helpful to us.

Suggested Improvements

  • Make it easier to customize widget appearance with CSS
  • Make it easier to extend widget functionality without cut / paste
  • Document more of the hidden features
  • More mobile features
  • Don’t break compatibility

The suggested improvements are very consistent with what we hear from customers via support tickets, the forum, and individual meetings, and we are incorporating that feedback into the roadmap.

We also asked about the interest level in some specific proposed enhancements to GXT. Here are the top enhancements requested:

Not Important
Important
Very Important
Total
Weighted Average
Layout containers that enable responsive design 6.67%
6
34.44%
31
58.89%
53
90 2.52
Ability to customize widget appearance by directly editing CSS / GSS 8.89%
8
42.22%
38
48.89%
44
90 2.40
Material design theme 36.67%
33
33.33%
30
30.00%
27
90 1.93
Widgets designed specifically for phones 45.05%
41
29.67%
27
25.27%
23
91 1.80
GUI theme builder to customize GXT themes 42.86%
39
35.16%
32
21.98%
20
91 1.79
Enhanced charts and complex data visualization 44.44%
40
37.78%
34
17.78%
16
90 1.73
Pivot Grid 41.38%
36
42.53%
37
16.09%
14
87 1.75
ARIA Support / 508 Compliance 67.06%
57
21.18%
18
11.76%
10
85 1.45

Over 90% of respondents said that responsive design and direct access to CSS / GSS are important or very important. In other words, respondents asked us to modernize GXT, and that’s exactly what we plan to do. I’ll get to that shortly, but first, just a few words about GWT 3.

GWT 3

As you’ve no doubt heard by now, the new compiler from Google (J2CL or “GWT 3”) will focus almost exclusively on the Java / JS transpiler and drop support for many classic GWT features. This will be problematic in several areas, not the least of which is GWT-RPC, which is used by 63% of surveyed customers. One popular alternative to keep an eye on is Resty-GWT, which accounted for most of the “Other” responses.

GXT Survey Results - GWT 3

How does your GWT client communicate with the server?

Despite these challenges, the majority told us that they want a path to GWT 3 (52% said yes, they plan to move to GWT 3 and are waiting for Sencha to make a compatible widget library).

GXT Survey Results - Migration to GWT 3

Do you plan to migrate your app to the new GWT compiler (“GWT 3”) when it becomes available?

While it’s still too early to know exactly what will be possible in GWT 3 (it’s likely more than a year away), the JsInterop that’s currently available in GWT 2.8 beta suggests that there will be some way to create a Java widget library for GWT 3. Several customers wrote in specifically that they don’t want the concept of widgets to go away, and we certainly don’t either.

2016 Roadmap: Modernize!

The survey responses and comments in other forums suggest that with or without GWT 3, it’s time to modernize GXT. Many of the design choices in the framework were made for legacy browser support and are no longer necessary. In addition, modernization is necessary to create a path to GWT 3 as well as to enable new mobile widgets and to simplify our current widgets. Given finite resources, we can’t work on everything that was suggested, so we chose the top four requested enhancements.

Top Requested Enhancements

  • Drop legacy browser support (IE 8/9). This is a necessary precondition of the other enhancements. We will support graceful degradation where practical (example: you may not get rounded corners if you happen to run an older browser, but you’ll still get square corners).
  • Enable responsive design (aka modern layout). Today in GXT, layout calculations are done in code. In order to support responsive design as well as CSS flow-based layouts, we will create new layout containers and widgets that support responsive design.
  • Provide direct access to CSS / GSS. The current theming system was designed for legacy browsers that did not support CSS3, and thus image slicing was necessary. In addition, the current framework uses the GWT Appearance pattern extensively, which doesn’t cover all edge cases. In GXT 5, we’ll make it easier to customize widget appearance by modifying GSS files directly. It should also be easier to make runtime changes to styles, in order to better support SaaS applications that serve multiple customers at once.
  • Offer a material design theme. This will add a lot of sizzle to mobile apps.
  • Add new widgets designed for phones. GXT 4 offers great tablet support for existing widgets, but we need new widgets designed specifically for the smaller phone form factor.

Migrating GXT Apps

In making these changes, we are keen to avoid the pain many customers experienced migrating from GXT 2 to 3; however, modernization necessarily requires significant implementation changes. While there will be non-trivial effort required to migrate from GXT 4 to GXT 5, we aim to minimize that effort by providing thorough documentation and guidance. In addition, we will provide a path allowing you to migrate gradually, perhaps by running GXT 4 in parallel with GXT 5. This would allow us to eliminate legacy cruft in GXT while allowing you to begin using the new features in a piecemeal fashion vs. a complete rewrite.

What’s Next

We expect to give you a preview of a modern GXT 5 at SenchaCon 2016, November 7-9 at the Aria Resort in Las Vegas, with a release soon thereafter. In addition, we will have a lot more GXT content at this year’s SenchaCon, and you can expect to hear more details about that soon!

Thanks again to all who participated in the survey and gave such valuable feedback. We are listening and working to make GXT 5 the most productive and powerful GWT framework yet.

GXT