EclipseZone logo image
Thursday, October 19, 2006  

Join the Battle Against Bad Java Code

You have an ally in the quest for quality applications... Quest Software. Our white paper, "Performance Testing Methodology," will show you how to effectively implement performance testing in your Java development environment.

Read the white paper now - and we'll send you a JProbe t-shirt!

 EZ News Corner
 
 EZ News Corner
 Next section
Alex Blewitt has worked with Java and XML since their early beginnings. He got involved with Eclipse when it was a fledgling migration from Visual Age for Java into WebSphere Studio and has never looked back.

Alex Blewitt Past, Present, and Future

My first experiences with Eclipse stretch back to the days of IBM WebSphere Studio 3.0 (based on Eclipse 1.0) when it was just starting to migrate from the then-current Visual Age for Java development environment. I can still remember the frequent patches that were applied, and the fact that every time you added resources to a project, you had to perform a manual refresh to pick up the changes.

A lot has happened over the last five years. Some of the more notable highlights for me were:

  • Linux being supported as of Eclipse 1.0
  • Mac OS X being supported as of Eclipse 2.1
  • Transition to OSGi and creation of RCP as of Eclipse 3.0

In short, the Eclipse platform just keeps getting better and better with each release; and this is just the core platform. The other toolsets (Data, CDT, WebTools etc.) are coming along in leaps and bounds too.

Eclipse itself is not the only thing that's developed. The community has grown over the years; various EclipseCon and other conferences have been run; there's a healthy supply of questions (and answers) on newsgroups and mailing lists alike. Who could have predicted the success of companies as diverse as NASA and Adobe using the Eclipse platform just a few years ago?

Eclipse has also been one of the forerunners in the development of consolidated application platforms: the ability to have two or more applications (or sets of functionality) blended into a single install. The Rational suite of tools suite of tools exemplifies this; even a few years ago, the tools for bug reporting, use case management, and UML design were all separate applications that couldn't easily talk to each other. Now, they are based on Eclipse (or will be in the future) and you can (technically) mix and match the functionality in the same application. Of course, they're focused at the developer level -- but user-level applications like Lotus Notes are going to make it much easier to integrate other Eclipse-based functionality (instant messaging, VoIP, news readers) into a client desktop application.

I've often noted in the past that Mac application development is successful because of a very robust application framework (AppKit). Java has never had such an application framework (unless you count java.applet.Applet) to bring flexibility and functionality. Even the advent of Swing didn't bring an application framework; it was merely a UI framework, and emulated the worst of the Windows UI with its MDI-type JDesktopPane interface. (Remember StarOffice using it and forcing everyone to have their own desktop/navigator? Remember how successful that wasn't?). Now, we have platforms like Eclipse (and NetBeans) that provide a more holistic view -- including basics like document and resource manipulation combined with user interface controls and selection services. Had we had this level of functionality for general applications five years ago, Java on the desktop might have succeeded instead of being dominated by Windows APIs. It's only because of these client-side platforms that Java applications on the desktop are starting to take off again; this time, though, with stiff competition on .Net and more recently AJAX-based web applications.

One of the unique things about Eclipse is that as it's based on a highly modular architecture from the ground up. It's possible to create applications that are either text-based or GUI-based, but still use the same code underneath. This gives Eclipse-based systems a strong advantage over others. It's possible to have the same code running in a fat client, or on a server; and more recently, to generate not only web-based UIs but also heavy AJAX applications. With the advent of GWT, you only ever need to know Java, too. And as it's all Java, it can run on any platform you care to throw at it. Compare that with .Net applications, which tend to be implemented in C# on the client and then often switch languages by speaking XML to a Java-based server.

So what will Eclipse do for the future? Here's some important things to watch out for as they grow over the next five years:

  • Server-side Eclipse/OSGi applications. Servers must be up all the time, and most application servers support the idea of hot deploying new versions of code without taking the server down. There's still relatively few server-side applications (as a proportion of all Eclipse-based systems) but IBM has migrated its WebSphere Application Server to run on OSGi, and several open-source application servers are in the process of investigating OSGi. This market will probably eventually be huge, possibly larger than Eclipse/RCP in the future.
  • Toolkits for AJAX-based web applications. OK, so not directly an Eclipse phenomenon, but I fully expect to see this taking off further in the future. I don't believe that all applications will necessarily become web-based, although I do use web-based apps like Google Reader and Google Mail frequently. The reason I don't think everything will be AJAX based is that there's still a need for disconnected applications (I'm sitting on a train writing this, for example) as well as ones which can interact with local data (files, databases) without the need for configuring a server. But what we will see, in the next few years, are design patterns emerging (like the birth of the Servlet API) that will allow data and application paths to be represented as Eclipse components, with an AJAX layer computed on the fly. For example, it should be relatively simple to create a JFace TreeViewer AJAX front-end; and then the code I create should work in both Eclipse/RCP (on the client) or via a TreeViewer-AJAX bridge (via a web browser). Tools like GWT are a starting point towards that goal.
  • Mobile devices. There's probably more power in your mobile communicator clipped to your belt (do people still do that?) or in your pocket than in your first 8-bit computer; possibly more than are based on the Mars rovers that NASA is controlling with an Eclipse app. This trend will continue, but so will connectivity. While dialling up was a slow process even a couple of years ago, these days, devices are connected (or connectable) to the internet most of the time. Connectivity from a mobile device is not dissimilar to dial-up modems prior to broadband, but in the coming years, much faster broadband speeds are going to occur, as are increased speeds to mobile devices, which in turn makes it possible to install and run applications on your mobile device. I'm betting that a cross-platform solution, like eRCP is going to play a strong role in the future. Currently, it's limited to certain types of devices (Windows Mobile, Nokia Series 60/80), although it's being constrained by the lack of a free JVM on most of these devices.
  • Distributed computing. The OSGi works well in a single VM, but there's no reason why it can't work in a more distributed environment. It has the advantage that the OSGi engine could easily evolve to support distributed computing; after all, the interfaces between bundles are already well exposed (and the internals hidden), so providing a inter-process mechanism like RMI (except without the constraints of having code-time impacts such as RemoteExceptions) would enable OSGi to scale horizontally.
  • Distributed agents. With a distributed architecture, there's no (technical) reason why an OSGi bundle couldn't act as its own autonomous agent. After all, it can be stopped and started on the fly, and the JAR can be transported (let's face it ... that's what the update manager does at present in a simplified form) so why not extend the same to bundles as well? Perhaps more data is needed on a remote machine, or it's connected to better resources, so an agent could move from one OSGi framework to another.
  • Embedded devices. There's a lot of technology in the home, but most of it is inaccessible to the end user. I'd expect OSGi to make greater in-roads here, and at the same time, allow devices to be controlled (and communicate between themselves). Look out for the Zigbee and Wibree APIs.
  • Server stacks. Amazon's EC2 service is an example of making money from renting out computing power as a service. But there's a lot to maintain, and if something goes wrong, you have to fix it yourself. Commodity OSGi application servers, if they become ubiquitous, will allow hosting agents to run many OSGi bundles for a simple charge. Need to upgrade your application? Simply upload a new bundle. Add new spam filters? Upload new configuration for a bundle. And because the API is very simple (unlike, say, the whole J2EE space) it makes it very easy to have little things that do a lot. Security is still one area which will need to be expanded before this is likely to make a commercial impact, but in the not too distant future there will probably be internal departmental OSGi servers to host bundles.

It will be interesting to see what becomes of those predictions; look back in five years time and see how many hit or miss the mark. Whatever happens, though, it's an exciting time to be in the industry.

Until Next Time,
Alex Blewitt
alex@eclipsezone.com

 Tips and Tricks
 
 Tips and Tricks
 Next section
 Back to top
Nearly every day, RJ and others, bring you the hottest tips and tricks from around the Eclipse universe. Have a hot tip? E-mail the editors at editors@eclipsezone.com.
SWT: custom drawing items in Tables and Trees

The ability to custom draw items in Tables and Trees was added to Eclipse 3.2, but until now has not been documented beyond a few example widgets. The article that gives the details involved in custom drawing TableItems and TreeItems is now ready .

Full DiscussionPosted By: Grant Gayed - (0 Replies)

Replacing JARs on the Build Path

Replacing build-path JARs can be tedious when upgrading a dependency. Eclipse 3.2 can make the process a lot less painful.

Full DiscussionPosted By: R.J. Lorimer - (15 Replies)

Eclipse installation on Ubuntu 6.06 Breezy Badger

Synaptics package manager only refers to the 3.1.1 release. How does one install recent eclipse releases within Ubuntu if they are not available within the package manager?

Full DiscussionPosted By: shaun forgie - (6 Replies)

XY coordinates of a decorator

You define a polyline decorator using X-Y points. The orientation of the coordinate system is not obvious. This diagram provides an explanation of the coordinate system.

Full DiscussionPosted By: Jeffrey Ricker - (0 Replies)

Circle polygon decoration for polyline connection in GMF

The GMF examples tell you how to create an arrow head on your connections, but sometimes you need a circle. Here's one way to do it.

Full DiscussionPosted By: Jeffrey Ricker - (1 Replies)

Open the windows explorer with a file selected in eclipse...

Create an external tool with location ${env_var:SystemRoot}\explorer.exe and arguments /select,${resource_loc}. Any selected file or directory can now be shown in the windows explorer.

Full DiscussionPosted By: Michael Scharf - (7 Replies)

Small trick for debugging code that contains a lot of java.langRunnable

Create Runnable that remembers the stack trace when it gets posted, return the stack trace in asString() and paste the trace onto a Stack Trace console.

Full DiscussionPosted By: Michael Scharf - (2 Replies)

Eclipse 3.2 Bug/Feature ;-) ?

In eclipse 3.1.2 I assignes short keys. When I install 3.2 and use the same workspace it seems to recognize sort keys but some of them is not working anymore.

Full DiscussionPosted By: Sergey Kashperskiy - (0 Replies)

The JDT tips and tricks help page

Take some time and look at the JDT tips and tricks help page. I'm sure you'll find some new tricks to make your life simpler.

Full DiscussionPosted By: Michael Scharf - (0 Replies)

Avoid Periods in Extension Identifiers

Extension ids allow periods, but probably shouldn't; particularly when it comes to applications. Learn about this little situation in this tip.

Full DiscussionPosted By: R.J. Lorimer - (1 Replies)

 Ask EZ
 
 Ask EZ
 Next section
 Back to top
Everyone has questions, especially about a platform such as Eclipse that has so much potential to be customized. EclipseZone comes to the rescue as our editors answer nearly any question you can think of in our Ask EZ forum.
EJB Deploy Tool

Hi Anyone know of any easy to use EJB Deploy Tool from within Eclipse that can be used with Sun Application Server

Full DiscussionPosted By: Niall - (0 Replies)

SLEAK problem

I am not able to use SLEAK for a standalone SWT/JFace application. It gives only the resource statistics of eclipse application.

Full DiscussionPosted By: lazereyes - (0 Replies)

ResourceTransfer cannot be resolved

Where is ResourceTransfer for a plugin-application? The api says it can be found in org.eclipse.ui.part, but my Eclipse 3.2.1 doesn't find it there

Full DiscussionPosted By: Deigo - (2 Replies)

how to define my own preference

In preferences -> i have added my own preference & able to set different colors & fonts, but when i click apply it does not reflect in my editor.

Full DiscussionPosted By: Murugan - (0 Replies)

Weblogic 8.1 sp5 plugin, eclipse3.1.1 , error starting weblogic

I am trying to get weblogic plugin work in eclipse.But it fails whereas runs successfully from startweblogic.cmd

Full DiscussionPosted By: Nidhi Tandon - (0 Replies)

Custom Classloader in Eclipse debugging

When using Eclipse debugging, my classloader isn't used. How can I make sure, that my defined class loader is used?

Full DiscussionPosted By: Christophe - (1 Replies)

help : new to eclipse want to program j2ee

hey I need to program in j2ee but i don't know how to set it up. Normally I click on open perspective and choose j2ee but i'm not on the usual server

Full DiscussionPosted By: Patrick Stacey - (1 Replies)

Using TPTP to monitor Rich Client Apps?

Could one use of TPTP be to build monitoring and logging capabilities into a widely distributed RCP app?

Full DiscussionPosted By: Martin Bayly - (1 Replies)

Eclipse can't follow windows shortcuts ? (.lnk files)

Uopn clicking a .lnk windows file, Eclipse IDE does not open the target file. rather, the .lnk file content itself is displayed.

Full DiscussionPosted By: Mike Roberts - (3 Replies)

Duplicate selectionChanged() call

Problem with dependent views in plugin. In some cases seletionChanged() of dependent views is called twice.

Full DiscussionPosted By: Sergey - (0 Replies)

is there any plug in or tutorial how to use eclipse with jax-ws ?

tutorial how to use eclipse with jax-ws ? to create web services ? im need to create web services is there any way to build it thank

Full DiscussionPosted By: umen - (1 Replies)

Please help with eclipse.ui.forms

I am trying to get the tutorial to run proberly but can not import eclipse.ui.forms

Full DiscussionPosted By: Anthony - (7 Replies)

central update-site within company

For keeping all developers' eclipse at the same level i want to provide an update-site for them with special plugins

Full DiscussionPosted By: Deigo - (4 Replies)

Problem with FileDialog under Linux

FileDialog makes plugin do not respond to any actions. Looks like the problem is in open() function.

Full DiscussionPosted By: Sergey - (2 Replies)

Can start up Eclipse

Error while starting up eclipse SESSION ---------------------------------------------------------------------- !ENTRY org.eclipse.core.launcher 4 0 Oct 10, 2006 16:43:15.624 !MESSAGE Exception launching the Eclipse Platform: !STACK java.lang.ClassCastException:

Full DiscussionPosted By: saurav - (1 Replies)

daily out of memory or crash

Eclipse crashes almost every day either with out-of-memory-error dialog or even without any warning.

Full DiscussionPosted By: matthias - (5 Replies)

Why can't use relative path?

I only test a simple I/O example in Sun's Java Tutorials. When I used absolute path, all is ok; but when I used relative path, an error thrown.

Full DiscussionPosted By: Sha Jiang - (8 Replies)

Annoying pop up messages in PHPEclipse

How do I get rid of these pop up boxes? "Do you want to open or save ... ?" I know this must be related to the operating system. (Win XP)

Full DiscussionPosted By: Christian Nally - (1 Replies)

Default editor selection

Choosing a custom built editor to open a .c/.cpp/.h file that will override the CDT version. I need to figure out how to integrate it into my IDE.

Full DiscussionPosted By: Tariq - (0 Replies)

Replacement for Tapestry Palette plugin?

Looking for a Tapestry-aware plugin such as Tapestry Palette that I can use in conjunction with Tapestry 4.0.

Full DiscussionPosted By: Shaun - (1 Replies)

Eclipse JAX-WS support

How can I create a webapplication web service using Tomcat without relying on the Apache Axis implementation? Preferably using JAX-WS endpoints.

Full DiscussionPosted By: simon - (1 Replies)

Green bar code note "a"

I get green bar notes in my java code in the error/warning/note gutter on the right with tooltip text of simply "a" or "j". What do these notes mean?

Full DiscussionPosted By: Linus Kamb - (0 Replies)

attach source to jar file for debugging

I am trying to debug my project using eclipse I have mypackage.jar file containing UI based project now i want to debug that project but here i cant attach my source to this jar file.

Full DiscussionPosted By: nil_kudale - (2 Replies)

Any way to launch a preference page at will?

I am looking for a way to launch my preference page when my plugin encounters a preference value which requires user input.

Full DiscussionPosted By: Richard Mitchell - (3 Replies)

Alternative Update-Sites

Is it possible to define an alternative update site for each feature inside an RCP application without changing the feature manifest?

Full DiscussionPosted By: Klaus Lehner - (2 Replies)

 Popular at EZ
 
 Popular at EclipseZone
 Next section
 Back to top
A recap of some of the most popular and active EclipseZone discussions this week.
The Bug Blackhole?

When it comes to Eclipse's Bug Tracking, RESOLVED/LATER has been considered a bug blackhole by many. So is it?

Full DiscussionPosted By: R.J. Lorimer - (5 Replies)

Server Side Equinox

In the past year, the Server Side Equinox project has made huge strides in implmentation. Have you considered using Equinox on the server?

Full DiscussionPosted By: R.J. Lorimer - (5 Replies)

RESOLVED LATER -- why not NEW?

RESOLVED LATER is still the subject of a discussion at - except the bug is now marked as RESOLVE FIXED (even though there are still a host of bugs in the LATER state).

Full DiscussionPosted By: Alex Blewitt - (5 Replies)

Upcoming Webinars on CDT and Mylar

The Eclipse Foundation is hosting two new webinars. The first will be an Eclipse CDT webinar on October 18 and then an Eclipse Mylar webinar on October 25. Registration is required.

Full DiscussionPosted By: Ian Skerrett - (0 Replies)

 Your Account
 
 Your Account
 Next section
 Back to top
Manage your account info for this and other DeveloperZone publications.
Manage your DeveloperZone membership details

Click on the following links to:


 Contact Info
 Next section
 Back to top
Here's how to reach us, we love to hear from you.
Email us
Send news items to editors@eclipsezone.com
Send questions, complaints, or suggestions to feedback@javalobby.org
Send advertising inquiries to advertise@javalobby.org
 
Call us
Our number is (919) 678-0300. We'd love to hear from you!

 Legal
 Back to top
The fine print we'd rather avoid completely.
Feel free to redistribute this newsletter in part or in full to your friends.

EclipseZone News is a service mark of DeveloperZone, Inc.
Copyright ©2001-2006 DeveloperZone, Inc.

Thank you for your continued support of DeveloperZone. If you prefer not to receive the EclipseZone weekly newsletter, send an e-mail to unsubscribe-eznews@javalobby.org and please ensure the actual email address to be removed is present.
DeveloperZone Inc., 113 Legault Drive, Cary NC 27513 USA