Java IoT Authors: Pat Romanski, Elizabeth White, Liz McMillan, Yeshim Deniz, Mehdi Daoudi

Related Topics: Java IoT

Java IoT: Article

Focusing on JEE Java Development: Mylyn and Spring

It's all about tool support

As developers, we're familiar with the endless pains that result from maintaining overly complex systems. Some complexity is accidental, so we continually strive to remove its overhead from our application. The latest crop of frameworks and dynamic languages has demonstrated just how far simple implementations can go. However, many applications have an essential complexity that cannot be further reduced without sacrificing end-user functionality or integration.

When trying to figure out how we make our workdays easier and our programming hours more effective, the key questions we are faced with are:

  1. How can we reduce accidental complexity when building an application?
  2. How can we manage the inherent complexity that's there?
 Solutions to this problem surface as innovations in the areas of languages, libraries, and tools.

The key property of an effective programming language is that it makes it easy for us to build systems in a modular way. Good modularity means less accidental complexity, easier maintenance, and more flexibility in the face of changing requirements.

While modularity mechanisms can introduce some up-front costs and may slow prototyping, for many applications the static typing and object-oriented modularity have made Java a great choice for building large enterprise applications.

One of the key properties of the frameworks we choose is that their programming model fits our application's needs. We also rely on frameworks to insulate us from the complexity of the various technologies that we build on to easily get data from its source into the presentation layer of the UI. For many, the Spring Framework has provided a golden combination of simplicity, modularity, and integration with other key libraries and frameworks that make up the enterprise application stack.

In other words, it looks like we're doing pretty well in terms of minimizing accidental complexity of enterprise applications. So why does it still feel so hard for us to get started fixing a simple bug in a large enterprise application? A critical problem is that current tool support offerings are not sufficient in helping us work with the essential complexity of large applications. Consider a medium-size application that consists of a few hundred thousand lines of code and builds on up to a few million lines of library code. No matter how simple the bug we are trying to fix is, the IDE tools that we use today surface all of that complexity to us. While the IDEs have become amazingly efficient at building and presenting the entire structure of large systems, they take the compiler's and not the programmer's point of view. As a result, a simple search of the source will often lead to hundreds of results scattered through the entire application and its libraries. This compiler-centric approach causes severe information overload in the structure views we rely on, which commonly show hundreds of files or elements and require constant navigation, scrolling, and searching. The result of this mismatch is that we waste a lot of time repeatedly navigating around the application instead of getting work done.

However, the face of the IDE is changing. Just as open source and community involvement have enabled the Spring Framework to evolve so rapidly, the openness and community of the Eclipse ecosystem have fostered a tool platform for innovation.2 This has enabled the Eclipse Mylyn project to make a fundamental evolution of the IDE UI that makes it much easier to work on large systems. Mylyn achieves this by monitoring your programming activity in order to show you only the information relevant to the task at hand. It also provides a rich UI and integration for issue trackers and version control systems, making it much easier to multi-task when jumping between the large number of defect fixes of the enhancements involved with a large application. However, like the Eclipse SDK, Mylyn tooling is targeted at Java SE and Eclipse plug-in developers, relying on extensions to properly support Java EE development. Since Mylyn is very new, such extensions have not been available to date.

Things are about to change. An open source collaboration between the Mylyn and Spring IDE projects has already started providing a preview of how effective Mylyn's Task-Focused UI can be at easing the complexity of Java EE development. Consider Figure 1, where in the background you see the typical Project Explorer, overloaded with irrelevant library classes, and in the foreground a Project Explorer and bean editor focused to show only the beans, Java source, and Spring libraries that are relevant to the task at hand. This task context can be easily stored, set aside, shared with team members, and recalled when needed. Once you return to the task, you instantly see all of the Spring beans and Java code you were previously working on.

This is only the beginning. The recently announced partnership between Interface21, the company behind the Spring Framework, and Tasktop Technologies, the company leading the Mylyn project, mean that the Task-Focused UI will soon be supporting much more of an enterprise application's life cycle. In other words, just as Mylyn has already simplified the development of large Java SE and plug-in applications, over the course of the next year we are going to see the same simplification working across the various resources, frameworks, and tools involved in building Spring-based Java EE applications.

The final thought to keep in mind is just how far this combination of Spring, Eclipse and Mylyn can go. The static nature of Java and the quality of the OSGi component model have made it possible for Eclipse to provide a remarkable set of productivity features such as consistent refactoring across Java and plug-in resources and easy launching and debugging of plug-in based desktop applications. The Spring Framework is building on the very same Java and OSGi technologies and the Spring IDE has started reusing the same Eclipse frameworks. Eclipse plug-in developers are already spoiled with a dramatically easier way of building applications and are incapable of going back to a day in which the IDE support did not provide them with this high level of automation at both the language and component level. While the much more heterogeneous nature of JEE applications makes this kind of automation more challenging, the latest developments in the Eclipse WTP and Mylyn frameworks provide key enablers. It is high time that Java EE developers start feeling spoiled by their tool support as well.

1.  http://en.wikipedia.org/wiki/The_Mythical_Man-Month
2.  http://tasktop.com/blog/?p=5

More Stories By Mik Kersten

Dr. Kersten is the CEO of Tasktop Technologies, creator and leader of the Eclipse Mylyn open source project, and inventor of the task-focused interface. His goal is to create the collaborative infrastructure to connect knowledge workers in the new world of software delivery. At Tasktop, Mik drives Tasktop’s strategic direction, key partnerships, and culture of customer-focused innovation. Prior to Tasktop, Mik launched a series of open source tools that changed the way software developers collaborate. As a research scientist at Xerox PARC, he created the first aspect-oriented development tools for AspectJ. He then created the task-focused interface during his PhD thesis and validated it with the release of Mylyn, now downloaded 2 million times per month. Building on the success of Mylyn, he created the Tasktop Dev and Sync product lines.

Mik's ideas on Application Lifecycle Management (ALM) and focus on individual knowledge worker needs make him a popular keynote speaker; he has been recognized with awards such as the JavaOne Rock Star and the IBM developerWorks Java top 10 writers of the decade. Mik's entrepreneurial contributions have been acknowledged by the 2012 Business in Vancouver 40 under 40, and as a World Technology Awards finalist in the IT Software category. Building on his contributions as one of the most prolific committers to Eclipse, he serves on the Eclipse Foundation's Board of Directors and web service standards bodies.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

IoT & Smart Cities Stories
The platform combines the strengths of Singtel's extensive, intelligent network capabilities with Microsoft's cloud expertise to create a unique solution that sets new standards for IoT applications," said Mr Diomedes Kastanis, Head of IoT at Singtel. "Our solution provides speed, transparency and flexibility, paving the way for a more pervasive use of IoT to accelerate enterprises' digitalisation efforts. AI-powered intelligent connectivity over Microsoft Azure will be the fastest connected pat...
There are many examples of disruption in consumer space – Uber disrupting the cab industry, Airbnb disrupting the hospitality industry and so on; but have you wondered who is disrupting support and operations? AISERA helps make businesses and customers successful by offering consumer-like user experience for support and operations. We have built the world’s first AI-driven IT / HR / Cloud / Customer Support and Operations solution.
Codete accelerates their clients growth through technological expertise and experience. Codite team works with organizations to meet the challenges that digitalization presents. Their clients include digital start-ups as well as established enterprises in the IT industry. To stay competitive in a highly innovative IT industry, strong R&D departments and bold spin-off initiatives is a must. Codete Data Science and Software Architects teams help corporate clients to stay up to date with the mod...
At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...
Druva is the global leader in Cloud Data Protection and Management, delivering the industry's first data management-as-a-service solution that aggregates data from endpoints, servers and cloud applications and leverages the public cloud to offer a single pane of glass to enable data protection, governance and intelligence-dramatically increasing the availability and visibility of business critical information, while reducing the risk, cost and complexity of managing and protecting it. Druva's...
BMC has unmatched experience in IT management, supporting 92 of the Forbes Global 100, and earning recognition as an ITSM Gartner Magic Quadrant Leader for five years running. Our solutions offer speed, agility, and efficiency to tackle business challenges in the areas of service management, automation, operations, and the mainframe.
The Jevons Paradox suggests that when technological advances increase efficiency of a resource, it results in an overall increase in consumption. Writing on the increased use of coal as a result of technological improvements, 19th-century economist William Stanley Jevons found that these improvements led to the development of new ways to utilize coal. In his session at 19th Cloud Expo, Mark Thiele, Chief Strategy Officer for Apcera, compared the Jevons Paradox to modern-day enterprise IT, examin...
With 10 simultaneous tracks, keynotes, general sessions and targeted breakout classes, @CloudEXPO and DXWorldEXPO are two of the most important technology events of the year. Since its launch over eight years ago, @CloudEXPO and DXWorldEXPO have presented a rock star faculty as well as showcased hundreds of sponsors and exhibitors! In this blog post, we provide 7 tips on how, as part of our world-class faculty, you can deliver one of the most popular sessions at our events. But before reading...
DSR is a supplier of project management, consultancy services and IT solutions that increase effectiveness of a company's operations in the production sector. The company combines in-depth knowledge of international companies with expert knowledge utilising IT tools that support manufacturing and distribution processes. DSR ensures optimization and integration of internal processes which is necessary for companies to grow rapidly. The rapid growth is possible thanks, to specialized services an...
At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throug...