The Isomorphic Blog

A Candid Opinion on the Threats to Java

Earlier this month, our very own CTO – Charles Kendrick – was interviewed by Marketing Strategist and Growth Hacker, Tom Smith. This interview was part of a series for DZone’s 2015 Guide to the Java Ecosystem, coming in October.

Tom’s article is below and the original can be found here. It is well worth a read!

A Candid Opinion on the Threats to Java

Charles has an interesting take on the evolution of the Java Ecosystem. He’s certainly optimistic, but he says that Sun’s missteps and Oracle’s lawsuits still threaten the community.

I had the opportunity to interview Charles Kendrick the founder and CTO at Isomorphic Software about the state of the Java ecosystem today and moving forward. This was part of a series of interviews for our 2015 Guide to the Java Ecosystem, coming in October.

Charles had a more unique perspective than some of the other folks I interviewed and I thought the the followers of the Java Zone would like to see his perspective and let us know [here] how you would answer these questions.

Q: What type of Java projects have you worked on?

Isomorphic produces the SmartClient and SmartGWT HTML5/Ajax frameworks.  Both use a Java server, and SmartGWT uses Java on the client-side via GWT.

Q: What do you see as the most important parts of the Java ecosystem?

The tremendous breadth of useful libraries tends to mean that any enterprise project needs to be using the JVM, even if a language other than Java is chosen.

Q: Who are the most important players in the Java ecosystem?

Oracle and Google (Google because of Android).

Q: What sources do you use to stay abreast of industry trends?

DZone, StackExchange, SDTimes, and various TechTarget sites.

Q: Where is the greatest value being seen in Java today?

Server-side usage in the Enterprise, specifically large-scale, database-oriented systems involving integration between multiple services or platforms, and distributed transactions.

As a language for describing UI, Java is used because it’s popular and well-known, but its expressiveness is very poor, and other languages tend to be a better choice.

Q: Who’s in charge of different Java-related projects at your firm?

We have multiple teams implementing both framework features and customer projects in Java.

Q: What are the skills that make someone good at this?

We will not hire anyone who only knows Java, which we would consider a very bad sign.  We look instead for people who are smart and get things done.

Q: Which other programming languages and frameworks do you, or your firm, use?

Principally JavaScript, Perl, Ruby, PHP, Python, C# / .NET.

Q: How has the Java ecosystem evolved over the time that you’ve worked with it?

Poorly.  Sun’s lack of leadership and major missteps (eg JavaFX, JSF) have led to a plethora of conflicting approaches in basic areas of the Java platform like UI and data binding.

Q: What are the obstacles to the success of Java-based initiatives at a company?

The poor expressiveness of the Java language means that code takes longer to write, is harder to read, and tends to be rigid instead of flexible in the face of new requirements.

Java continues to struggle from the “jar hell” (in analogy with DLL hell) that .NET solved years ago with .NET assemblies, and the various solutions keep getting pushed out (“Project Jigsaw” is now planned for Java 9).

Q: Do you have any concerns regarding the Java ecosystem?

Oracle’s willingness to litigate innovation out of existence, specifically their lawsuit against Android, could easily cause many partners to jump ship to another platform, causing Java to stagnate.

Q: What’s the future for the Java ecosystem from your point of view – where do the greatest opportunities lie?

Better expressiveness in the core Java language.  We have literally hundreds of product samples with parallel implementation in JavaScript (SmartClient) and Java (SmartGWT).  Placing the code side-by-side shows how very, very far Java is from matching the expressiveness of other languages.  Oracle needs to show leadership in more aggressively pursuing and supporting JSRs that improve and simplify Java syntax.

Further  embracing non-Java languages in the JVM. Java 8 has made some strides in making JavaScript more part of the JVM, but it is still a struggle to use other languages, with lots of issues in the areas of error reporting and debugging.

Q: What do developers need to keep in mind when working with Java?

Java’s static type checking ability needs to be looked at as just another form of automated testing, and structuring code to allow more static type checking needs to be weighed against other forms of automated testing.

Specifically, we find that if a developer has spent too much time with Java to the exclusion of other languages, they tend to expend heroic efforts structuring code so that it’s possible for the Java compiler to check more error conditions.  This effort is usually better spent on automated tests, which can catch a much wider range of error conditions.

Even More 10.1 / 5.1 Features

Our next release – 10.1 / 5.1 – is getting close. We talked about some of the upcoming features in an earlier blogpost. Here are a few more to wet your appetite further …


Server-side Support for Relative Date

The RelativeDate system allows end users to express criteria as relative to the current date, which is very useful for saved searches and other applications.  New support for server-side decoding of RelativeDates allows automated processes that don’t involve a browser to execute saved criteria that involve RelativeDates.




Snap to Align

While dragging, snap to coordinates aligns the edge or center of the dragged widget with the edge or center of other widgets in the same container.





Client-driven Transaction Chaining

Transaction chaining enables the values of a request to be determined by the results of a previous request.  A new client-driven mode of Transaction Chaining allows client-side code to drive this process instead of requiring server-side declarations, so that existing server-side operations can be re-used in novel ways without requiring server-side developers to add new features.


API for Doing Transactions Outside of HTTP Request Lifecycle

This enhancement allows the Automatic Transactions feature to be used for scheduled tasks (such as Quartz timers) and standalone applications (not running within a servlet engine). 

Scheduled Tasks
DSTransaction tracks a queue of requests and provides APIs for commiting, rolling back, managing error status, freeing resources, and enabling features like “Transaction Chaining”.



Standalone Applications
The DataSource layer can be used in a standalone application separate from a servlet engine, for use cases like offline batch data processing, sending emails based on database state, or integration of Smart GWT Server logic into a standalone Java Swing application.



Floating Titles for Drawing Shapes

All shapes now support the ability to have a text title drawn on top of them, with various options for how text is placed for rotatable shapes.  For example, as a shape is rotated, the title can stay in place, rotate with the shape, rotate with the shape but flip so as to always remain upright, etc.





The Dashboards & Tools framework now has built-in support for editing titles – just start typing when a shape is selected to add or change a title.





Improved Data Import

We’ve added XML and JSON formats …

  • BatchUploader now allows XML or JSON uploads (in addition to CSV) and has the ability to auto-detect the format used.
  • Server-side APIs parsing XML, JSON or CSV data as DataSource records make custom importers easier to write.
  • The Admin Console and Visual Builder now support upload of sample data files right in the tool.






 *** Remember: Upgrades to 10.1/5.1 are FREE to those who have already purchased 10.0 / 5.0. ***

For those not yet on 10.0/ 5.0, upgrade discounts are available and are based on the date of your last license purchase. View our License FAQs for more details. If you would like to upgrade, please contact us.

Thanks as always,

The Isomorphic Team!

Outdated performance perceptions driving your mobile strategy?

Looking back, there was a time when mobile specific apps were necessary. Browser technology wasn’t quite there, and the first smartphones just didn’t have enough oomph. But we have come a long way since then …


Let’s look at the iPhone. Since the first release in 2007 to the release of the iPhone6 last year, according to Apple, speed has increased 50x. Most independent reports say this is more or less correct. If we consider just this improvement, something that used to take 15 second would now take 0.3 seconds. Just that alone makes a huge difference.


Browsers have improved too. It turns out also by a pretty huge amount. In less than two years from Jan 2010, Kraken javascript benchmarks shows improvement from 29,000 to 2000 ms. The rate of improvement was less dramatic in the last couple of years, but it is currently around 1000ms, making it overall about 30x faster since 2010. Again, considering this improvement in insolation, something that used to take 15 seconds would now take 0.5 seconds.




These two improvements however are additive. They collectively provide an overall speed improvement of 1500x. To put that in perspective, if something used to take an unacceptable 15 seconds back in 2007, it would now take a delightful 0.01 seconds.

But let’s play devil’s advocate and consider that Apple could be exaggerating a little, and maybe the javascript benchmark conditions were too ideal. Let’s say the improvement was only 1000x. That 15 seconds would still now be a lightening fast 0.015 seconds.

Do you still want to create a desktop application, then rewrite for iOS and again for Android?


SmartClient allows you to write just once for all devices:
  • Much less coding and maintenance
  • Lightning fast
  • No UX compromise

With the SmartClient strategy, you can even afford to do the unthinkable and build a rest week into your sprint schedule! 😉

A Better User Experience (and a Sneak Peek at the Next Release)

sadtohappyBlogOur next release  (SmartClient 10.1 / Smart GWT 5.1) is still a little way off, but we would like to share some details. We also want to give you the opportunity to play with some of the BETA (pre-release) features. This blog will focus on user experience. However, there will be more blogs about other aspects of the 10.1 /5.1 content, so please look out for them.

 *** One important point … upgrades to 10.1 and 5.1 are FREE to those who have already purchased 10.0 / 5.0. ***

So, without further adieu, let’s talk about user experience …

Building an application that users love needs a great understanding of the business requirements / problems you are trying to solve; translating these into a functional design … then of course developing, testing, releasing and maintaining the application. This all takes a long time and there is often little time left to focus on making the user experience as good as it needs to be. In addition, some things that seem small and insignificant require big workarounds / hacks that outweigh the perceived benefits.

The problem with this is things that seem independently insignificant can collectively make the end user’s life miserable. The end result being that they don’t want to use your application. At Isomorphic, we are therefore trying to make it easier and faster for you to go the extra mile from a user experience perspective.

Below are a few BETA features that you can start playing with right now.

Visual Changed State

In SmartClient 10.1 / Smart GWT 5.1, FormItems will support a pending visual state that can be used to style the item differently when the user changes the value from the last-saved value. This includes showing strikethrough appearance for values in multiple-select controls. Try the live sample now!

Visual Changed State

Visual Changed State let’s you control the appearance of changed values, and display the original value.

Try Now Button



Inline Icons

It’s now easy to place icons inside of editable text fields such as ComboBoxItems, for decoration or to provide functionality when clicked.  Icons support left or right alignment, and multiple icons are allowed on each side. Try the live sample now!


Try Now Button



Nav Bar Animations

Our NavigationBar component has been given subtle, built in animations / transitions that not only look cool, but help users keep their sense of place. Notice how the clicked button glides in to be the new heading, while the new buttons fade in to place.


A CheckboxItem’s checkbox can be sprited by setting a custom boolean Base Style and writing the CSS to apply the appropriate background-position for the checkbox’ current state. Try the live sample now!

Try Now Button



Hints, Tips and Format Masks Improved Placeholder Behavior

When filling out a form, it helps to guide the user as to what data and format is expected. The behavior has been improved such that hint / tips persist even when the user places their cursor in the field. The hints / tips only disappear once the user starts typing. See the example below and try the live sample now.

Try Now Button


The above are just some quick insights into a couple of the user experience enhancements we are providing in 10.1 / 5.1. There’s a lot more to come besides this, so check back here for more updates.

As always, thank you from all the Isomorphic Team!

P.S. Thanks for reading our blog. If you would like us to cover any specific topics or have any feedback, please let us know by emailing

A single codebase for all devices


With smartphones, tablets and other mobile devices becoming more and more prevalent in Enterprises, development organizations are often advised to design, build, test and maintain applications for the desktop, and repeat these tasks for every operating system (iOS, Windows, Android, etc.) and individual devices (iPhone 6, iPad, etc.). However, this rapidly becomes unsustainable.

Our last customer survey confirmed that the enterprise web applications you build are mostly accessed via desktop. The drivers for this are the tasks being performed, the volume of data involved, and the types of end users (mostly in the office / occasionally in the field).  We outlined a mobile strategy that supports these findings.

We also introduced capabilities like Adaptive UI, Responsive Layouts, and Intelligent Auto-Fitting. With the SmartClient platform, developers can create powerful, beautiful, single codebase web applications that run on any device (desktop, mobile, tablet). Since development need only be done once, the overall effort is radically reduced. The end result?:

  • Solutions to market faster
  • Higher quality
  • Lower development costs

What’s not to like? Try out some more live samples here.


When did you last hear these 3 little words from your end users?



Since you are reading this blog, I think it is reasonable to assume you have a decent understanding of what it takes to build a web application. I would also bet that your end users have said at least one (all?) of the following when describing a web application you developed for them:

  • “incomplete”
  • “unintuitive”
  • “not user friendly” / “takes too many clicks to do anything”
  • “too slow”
  • “doesn’t work on my iPhone / Adroid / tablet”

If you have been tasked with delivering a complex web-based application that end users actually want to use, you will understand that it involves more than just writing good code. For example, you need to design an application that not only meets functional needs, but performs at lightening speed, has a streamlined user interface, looks beautiful, and works on any device.

Achieving all this requires a team with a breadth and depth of skills that are typically expensive and hard to find. For example, analysts that translate the functional needs into screen flows, UI designers that understand the power of existing platform components, and architects that can translate functional needs into a data model.

That’s why we introduced a new specialized Information Architecture service to supplement your dev team. Our goal is to ensure you get it right from the start, build applications that your end users love, and that stand the test of time.

Our Information Architects are expert in the structural design of complex applications. They begin by understanding the purpose of the applications you want to build, the information that will be captured, and how end users will utilize that data. They then design the data model, screen flows and screen wireframes. This process facilitates high performance, exposes missing details, and allows for a streamlined user interface.

With feedback gathered on the wireframes, the Information Architects call on their UI design expertise in conjunction with their deep knowledge of the SmartClient platform to construct functional mockups. They use these mockups to carry out user testing, ensuring that applications are functionally complete and have a delightful user experience. Feedback gained from user testing is then incorporated back into the design to create applications end users only dreamed of.

To learn more about our Information Architecture service, click here. We are offering a 30% discount through January.

Happy New year from all the Isomorphic Team!

Dashboards that redefine extensibility

When your users present you with a specification for their dream dashboard, I can promise you this: Once you build it for them, their dreams will get bigger … and they won’t just want more of the same. They will want new capabilities that you didn’t even consider when evaluating dashboard tools. For example, they will suddenly need the ability to kick off a workflow, update data in place, pull data from a legacy website, etc. … all from the dashboard. These types of things can quickly result in reconsideration of your chosen technology.

That is why we built Dashboards on top of the SmartClient framework. It has everything you need to make end user’s future dashboarding dreams come true – without the need to purchase, configure and integrate with your existing applications. And you can of course build beautiful dashboards like this one:


Beautiful, extensible dashboards without the need to purchase, setup or integrate with your existing applications.

But don’t just take my word for it … try it out for yourself!


Available NOW: SmartClient 10.0 / Smart GWT 5.0

releaseblogimagesmallerfileREDUCEDOur SmartClient 10.0 / Smart GWT 5.0 release is finally here and it is packed full of goodies!

What is in SmartClient 10.0 / Smart GWT 5.0?

You can find lots of details in the blogs below:

Here’s how to get it:

New Customers

Existing License Holders

SmartClient 10.0 / Smart GWT 5.0 is a paid upgrade. Discounts are available based upon the date of your previous purchase. Please contact us for upgrade pricing. Get access to all the cutting edge features by upgrading now!

  • To order an upgrade from a previous version and for more options, please contact sales.
  • For more information about how our licenses work, please see the Product & Licensing FAQ.

Once you have purchased your upgrade, Download SmartClient 10.0 or SmartClient 5.0 to get started (don’t forget to log in first)!

As always, please send us any bug reports or feedback in the Forums. Please be clear about what product and version you’re using when reporting issues, including the exact date of the build.


The Isomorphic Team

Last Batch of Features Before the Big Release

SmartClient 10.0 / Smart GWT 5.0 will be released around the end August. This is a MAJOR release. We are currently adding the final layer of polish before we let it go.

Meanwhile, here are a few more features that we think you will like … and you can try them out now!


CubeGrid WYSIWYG Excel Export

CubeGrids can now export to excel with data arranged the same way you see in the cube: row and column headers arranged around a central body area. Also, Big Data is no problem: you can now export gigantic amounts of data to Excel (eg 1 million plus rows) with no issues and no running out of memory!


Try Now Button



Timeline and Calendar Enhancements

  • Major performance upgrades allowing much larger number of events to be displayed
  • Special indicators for moments in time or date ranges
  • Zones that span lanes (e.g. for weekends, holidays, etc.)

Timeline and Calendar Enhancements

Try Now Button





Spring @ transactional Annotation Support

Use Spring annotations for either a custom servlet or a specific DMI and SmartClient operations will participate in the Spring manage transaction automatically.


Proportional mode for charts
Area, Bar & Column charts now support “proportional mode”, where data values are visualized as ratios, similar to a Pie chart.  Like many other chart features, the end user can turn this mode on or off on-the-fly.
Proportional Mode for Charts
Try Now Button

Enhanced Move / Resize in Drawing Module
  • Resize-while-rotated
  • Enhanced and customizable appearance for knobs
  • Resize knob support for more kinds of DrawItems



Try Now Button




Download Smart GWT 5 or SmartClient 10 to get started using our newest mobile features – and much more – today!

Download now!


The Isomorphic Team

New Mobile Features Optimize User Experience

The Isomorphic Enterprise Mobile Application Strategy

Many analysts, MEAP providers and other “experts” promote a mobile enterprise application platform strategy that was developed for consumer offerings (LinkedIn, Facebook, Twitter, etc.). At Isomorphic Software, we realize that Enterprise users and Consumer users have very different needs and usage patterns. So our strategy is different:

  • Built in mobile adaption that allows you to code once for all devices
  • Intelligent Data Management for unprecedented scalability and responsiveness
  • The broadest, deepest set of device aware Enterprise grade UI components



The upcoming Smart GWT 5.0 and SmartClient 10.0 release provides many new features aligned with our strategy. Read on for more details …

Responsive Layout

Trying to cram a complex UI with multiple panes onto a handset screen creates a usability disaster. Isomorphic has a better solution. When multiple panes don’t fit side-by-side on a device, we automatically split them across pages. Appropriate navigation controls are provided for each specific device class, and extremely smooth transitions deliver an enterprise grade experience.

Try out Responsive Layouts in Smart GWT 5 / SmartClient 10.


Intelligent Auto-Fitting

To make best use of limited screen space, our components feature pervasive auto-fitting capabilities. This goes beyond “responsive design” – using CSS tricks to adjust page layout by browser size – because it works for dynamic data and localized strings, whose size can’t be anticipated in advance. The new NavigationBar component is an excellent example, subtly adjusting navigation controls to maximize the space allocated to the current view’s title.

Try out intelligent auto-fitting


Remote Debugging

Users quickly ditch mobile applications that are not robust. Regaining trust is at best an uphill battle. You therefore need to get it right the first time.

Remote Debugging allows you to run the Developer Console on your desktop machine to debug a page running on a mobile device. With Remote Debugging, you can use all of the powerful debugging features of the Developer Console – the component hierarchy (Watch tab), client/server requests (RPC tab), logs and log categories – using the large screen and physical keyboard of a desktop machine.

Learn More about remote mobile debugging


Adaptive UI

Our components automatically adapt to the smaller screen size and different pointing behavior of mobile devices. Components like Combo Boxes, Menus and Dialogs will automatically use the entire screen and offer alternative UI for dismissal and navigation (for example: submenus slide in). Context menus and hovers can be triggered by finger taps or long touches.

Because of these and many other automatic behavior changes for mobile devices, you really can build cross-device applications with a single technology and single codebase

Try out adaptive UI


SpinnerItem for Touch Devices

On touch devices, the SpinnerItem will now change appearance and behavior to make it easier for users to hit the increment and decrement buttons.


Try out SpinnerItem


Mobile Device Mode for Window & Dialogue Components  

To create a more seemless experience, window and dialogue components now have a special mode for mobile devices.

In the special mode, these components fill the screen and have a simplified appearance, adsent of shadows and rounding (skin specific). 





Calendar UI

With the desktop calendar, tabs provide the ability to toggle between day and weeks. However, in mobile, the compact calendar does not have tabs.

As such, the compact calendar now allows users to switch between day/week views on mobile device pivot.


Download Smart GWT 5 or SmartClient 10 to get started using our newest mobile features – and much more – today!

Download now!


The Isomorphic Team

Page 4 of 10« First...«23456»...Last »