Shay Shmeltzer

Subscribe to Shay Shmeltzer: eMailAlertsEmail Alerts
Get Shay Shmeltzer via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

Related Topics: RIA Developer's Journal, Enterprise Mashups, Online Shopping, SOA & WOA Magazine, AJAX World RIA Conference

RIA & Ajax: Article

Tooling Up for Web 2.0

New challenges for application developers

Most of the discussion surrounding Web 2.0 applications revolves around the way it revolutionized end users' interaction with applications and with other users. An area that is sometimes left out of the discussion is the impact Web 2.0 had on the developers who are actually building these applications.

Creating Web 2.0 applications involves a variety of technologies and standards from UI technologies such as AJAX and DHTML to back-end technologies such as SOA and other mash-up technologies (see Figure 1). This puts a new burden on developers and challenges them to become multidisciplinary developers - proficient in a range of new and emerging technologies. One key enabler that will allow a developer to overcome this challenge is having the right development tool in his arsenal. The correct tool doesn't only speed up development with a specific technology, but also enables easier transition and integration between technologies and layers of the application, as well as reduces the learning curve for adopting new concepts and techniques.

Since finding a developer who is averse in such a wide range of technologies isn't an easy thing to do, many organizations have specific developers handle specific layers. Let's examine these types of developers and the features that they are likely to look for in a development tool.

The UI Developer
The user interface developer is responsible for the end-user experience - one of the key success factors of any Web 2.0 application. The traditional Web UI designer got by with basic HTML and CSS skills. Savvier developers also learned JavaScript and were able to build more dynamic behavior inside their pages.

But with new requirements from the user interface, those skills are not enough. For example, if you are developing your rich Internet application leveraging AJAX, you'll need to have advanced JavaScript knowledge along with an understanding of the new communication protocols between the browser and the server, coupled with encoding/decoding XML messages and DOM manipulation. The role and complexity of JavaScript coding in the AJAX world becomes even bigger. This calls for more advanced JavaScript tooling - an editor that just highlights the keywords of the JavaScript language is not enough anymore. You need to be looking for a tool that will offer you code insight, debugging, and refactoring. These capabilities, which have been spoiling Java developers for a while, are only now starting to appear in the world of JavaScript developers.

In some cases the JavaScript-based AJAX might not be the only UI technology needed.  Take embedded dynamic graphs as an example.  Static images won't cut it anymore - users are expecting to get animation, hover over highlighting, zooming and more. The dynamic nature offered by more advanced rendering technologies such as flash might be more appropriate in such cases.

In a case like that, suddenly the developer is stepping into a complete new technology and development language that they need to learn. It's even trickier when the developer needs to integrate two different UI technologies and communicate messages between them.

This type of complexity, along with the complexities involved in writing asynchronous messaging to the server, and the problems of cross-browser portability, resulted in the emergence of a multitude of frameworks. These frameworks offer pre-packaged components that can be used to construct rich user interfaces. JSF components in the Java EE world, User Controls in ASP .NET, and a proliferation of JavaScript component libraries such as Dojo and Ext all aim to save the developer from the hard work of building AJAX-enabled components. These components encapsulate the AJAX behavior and abstract the developer from the complexity of developing the underlying code. The developer just needs to arrange the components on the page and work out the interaction between them.

The challenge for the IDE is to provide an environment that will allow the user to visually work with these components to construct the complete user interface and to define their behavior. Developers are looking for a development environment with a WYSIWYG layout editor, a set of components you can drag to your page, and property inspectors and dialogs that help set behaviors and actions for these components.

More Stories By Shay Shmeltzer

Shay Shmeltzer is a group manager for Oracle JDeveloper. He has occupied various roles in the software development industry, ranging from development to marketing, over the past 18 years. His blog is at http://blogs.oracle.com/shay.

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.