EclipseZone logo image
Thursday, February 23, 2006  

Adobe Flex 2.0 BetaGo beyond AJAX with the Adobe Flex 2.0 beta

Adobe Logo The Adobe Flex 2.0 beta is the most complete application development solution for creating and delivering cross-platform rich Internet applications within the enterprise or across the Web. Combine the richness of desktop software with the reach of the web.

Download Your Copy Now!

 EZ News Corner
 
 EZ News Corner
 Next section
Riyad Kalla and RJ Lorimer are tag-teaming the EclipseZone community as head EZ editors. They have both been long-time Javalobby.org members and are avid Eclipse users.
Choosing a framework you can rely on

The real motivation for picking a framework is based on two things: trust and accountability. I know this sounds ridiculous, we are techies, we choose things based on their technical merit, sometimes even their whizz-bang! Do we though? Do we really think that is enough when your boss comes to you and says "Ok, I need you to build an absolutely bullet proof application for a government agency where security and stability are of the utmost importance.” Do you even consider using that cool SourceForge or JavaForge project? Are you too scared to even imagine what would happen if the system crashed, kept crashing, or got hacked?

Let's say you took the risk; the XYZ Framework project is just too cool to pass up and, besides, you want to learn it. What happens when you get past the design stage and get into the heavy coding stage? What happens when you are 3/4 of the way through it and find out that there is a huge design problem with how sessions are handled? Maybe you find it's impossible to totally secure access based on how the framework handles flow control? Now what?

Now, keep in mind I'm not equating commercial to stable; I'm only making a line in the sand between "new, cool project" and "old, robust, tested project". I've been giving this a lot of thought recently, as I am currently in this position, and I think a lot of developers go through this same internal dialog. You want to know the real reason why so many developers "grow their own"? Because they don't understand what is out there. I write Riyad RCP because I don't understand how Eclipse RCP works. That is, until I get months into Riyad RCP and go "Oh, now I understand why they do that with Composites... go figure." Now it's too late to stop, too much work has gone into it.

Think of the jobs you have worked at where you inherited some legacy framework. Isn't everyone's explanation for it something along the lines of "When we started this project, none of the options out there did what we wanted.” Now you're left sitting there staring at basically a text book app and thinking "Yes they did...” So what happens? Accountability and trust is what happened.

If a developer has to put his trust in something and he's relatively sure of his skills, I think a lot choose to put their trust in themselves. "I will write a fine-tuned framework specifically for this app; it will be so much more efficient then general-case frameworks." What really ends up happening is that his intentions start off good enough, but as the framework stage of development drags on, and managers want to start seeing demos the inevitable happens. The project gets rushed out the door in a very incomplete state. However, the one benefit here that a lot of developers value, even if the framework isn't perfect, is that they feel confident in their ability to maintain the framework and fix bugs. They know exactly where the ResourceBundle loading is done, so there is no search necessary. They know to open up LeakyResourceBundleUtil.java and fix it, and because of this they feel confident; they can be accountable. What scares a lot of developers is using some well known framework and having the inevitable bug show up and then having no idea how to fix it. Mailing lists can help, but ultimately the bug could be in your huge mess of code which you can't share with anyone else to look at. Scary.

If you sat someone down in front of a huge framework, say the Eclipse platform with no documentation and they banged out an email client that threw a NPE every 10th time checking mail and asked them to fix it, a lot of developers would balk at that. "Oh god, I have no idea where to look. I should have written my own framework."

How do you combat this? How do you get people to stop reinventing the wheel? How do you get them to feel confident enough in the platform that they can throw all their eggs into the basket and say "We are in this through thick and thin, I love you."? You provide documentation. In fact, you provide so much documentation that your documentation could kill a small horse. You document everything, not just Javadoc, but features, how-to’s and styles of coding. You try to provide so much documentation that someone could search for "Splash screen", and not just find the Javadoc on Window, but actually find a document on how to write a splash screen using your framework.

This is exactly what the Eclipse developers have done and continue to do. This is the #1 complaint against using alternative frameworks like NetBeans even from the Eclipse 1.0 days. There was no contest when it came to the level of documentation provided by the Eclipse group to learn their platform, every tiny part of it, in and out.

I have to say with a certain level of confidence that this is 85% of the reason that Eclipse steam rolled the competition out of the gate. When you make things accessible to developers, don't waste their time. Grease the wheels and give them the controls, they will love you for it. I can certainly see the bulleted lists, the framework comparisons and the mailing list arguments: "NetBeans has supported that forever! Spring RCP has supported that forever! MyRandom RCP has supported that since its pre-alpha release!" The point is, no one knew that. There were one, two or three "Getting started" guides, maybe a "Starter tutorial" here and there, but where were the "Splash screen how-to" or the "View synchronization" tutorials or even the random 10 "Sample application" guides that a developer could read and extract just enough from each one to map it to his own needs? Well, a few years ago, this style of documentation was no where except in the Eclipse camp. Now NetBeans and the other frameworks are pumping out some excellent tutorials. Folks like Roman Strobl are spending their days creating web casts, screen casts, quick tutorials and blog entries covering all the nooks and crannies I'm talking about. This is what we need: giving people editable appetizers of information that they can convert to bigger apps, or just have fun with.

Is this too little too late for everyone else? God no. Keep it up I say, mush mush! The more documentation out there the more everyone is going to strive to improve and reuse these frameworks. At the end of the day, all we as developers want is something that we can trust our next app on.

When I originally wrote this article it had a strong web framework undertone to it. I believe this is because the barrier to entry in the web framework arena is much lower compared to a good client side framework like NetBeans or the Eclipse platform. That's not the type of thing you spec out in a weekend and have a beta running by the next week, but all the arguments apply. Think back to around 1998. Was there even any framework that people could consistently suggest to one another to use for any client side app? I'm not aware of one. Because of this, I can only imagine the number of legacy frameworks that have been created over the years to solve this problem in-house that we are never made aware of. At least with web frameworks, most of them end up in easily searchable arenas because of their generic nature (handling requests). Client side apps can be fine tuned for an extremely specific purpose, as we saw with early Eclipse releases where the platform was clearly tuned to an IDE. It takes work, a lot of work, to try and dream up and expand the support for something like that to encompass all the possible use cases. As we move forward it's nice to know we have a few mature choices so we don't need to go down that path again and again.

Well, we are at the end. I appreciate you reading this article and I hope you take something away from this. The key is documentation. The reason I think this is important is because I am a sucker for homegrown frameworks. I like writing them, I like using them and frankly every great framework we use right now was born out of an open source startup at some point. Because of this, I want to encourage people to still create them, don't hang your head and think "Oh it's been done before" and give up. If you do plan on writing it, don't forget to document it. Give us examples, tutorials, explanations and screenshots. God knows we love screenshots. Who knows, you might be writing the next Hibernate, Spring or Struts right now and not even know it.

Until Next Time,
Riyad Kalla
editors@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.
Clean Up Warnings with the 'restriction' Suppression Flag

Eclipse 3.2 M5 brings the addition of a new supported SuppressWarnings annotation parameter: 'restriction'. Learn how to use it today.

Read the full tip and discussion Posted By: R.J. Lorimer - (2 Replies)

Developing Eclipse/OSGi Web Applications Part 2

With Eclipse and OSGi, we should be able to create truly componentized, "pluggable" web applications. Author Wolfgang Gehner describes how he gets there, combining Eclipse 3.2/Equinox and Struts 1.3 as example for an established web framework."

Read the full tip and discussion Posted By: Riyad Kalla - (0 Replies)

Developing Eclipse/OSGi Web Applications Part 1

With Eclipse and OSGi, we should be able to create truly componentized, "pluggable" web applications. Author Wolfgang Gehner describes how he gets there, combining Eclipse 3.2/Equinox and Struts 1.3 as example for an established web framework."

Read the full tip and discussion Posted By: Riyad Kalla - (0 Replies)

Catch exceptions in the debugger

Catch an exception, before your program does, by using the Java Exception Breakpoint in the debugger.

Read the full tip and discussion Posted By: Alex Blewitt - (2 Replies)

Cut Lines Key Binding in the Eclipse Editor

Recently on the eclipse.platform newsgroup, someone asked what the best way to cut a line was in the Eclipse editor - learn about the optional key-binding in this tip.

Read the full tip and discussion Posted By: R.J. Lorimer - (10 Replies)

Be Aware of the Javadoc Browsing Options

Eclipse has various options for browsing Javadoc for referenced libraries. Read a summarization of them in this tip.

Read the full tip and discussion Posted By: R.J. Lorimer - (5 Replies)

Use Embedded Tomcat in Eclipse for a Webapp

Christopher Merrill took the time to writeup a great tip on making use of the embedded Tomcat server that ships inside of Eclipse (used to host the help system).

Read the full tip and discussion Posted By: Riyad Kalla - (23 Replies)

Go Digging With Incremental Find

Eclipse has a rarely talked about feature that is particularly popular in the Firefox web browser - incremental text find. Learn how to use it in this tip.

Read the full tip and discussion Posted By: R.J. Lorimer - (16 Replies)

Adding heapstatus in Eclipse 3.1.x without -debug options

this trick show how you can patch eclipse source for example, i choose adding heap status. heap status can be added in eclipse 3.1 with -debug option, but it is slow and we will see how add this without -debug options

Read the full tip and discussion Posted By: Haris Peco - (0 Replies)

Providing consistent clipboard behavior in form-based workbench parts

When working with form-based editors or views, users expect the global Cut, Copy, Paste, and Delete actions to work for text controls. By default, this is not the case. This example demonstrates how to accomplish this using the TextActionHandler class.

Read the full tip and discussion Posted By: Peter Nehrer - (0 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.
TN3270 plugin

I am looking for a Telnet 3270 plugin for Eclipse 3.1 running is a Windows environment. I do a lot of IBM work.

Read the full question & Discussion Posted By: Charles Godwin - (0 Replies)

Eclipse 3.1.2 Appearance

I upgraded to 3.1.2 and am trying to replicate the color scheme I used in the previous version. I cannot figure out how to change the cursor color.

Read the full question & Discussion Posted By: Will Merydith - (1 Replies)

Eclipse on the new iMac Intel Core Duo. Help!

I'm experiencing a host of problems when trying to use Eclipse on the new Intel iMac. Problems with Subversion en with running applications.

Read the full question & Discussion Posted By: Mark Boon - (9 Replies)

How to get data from a query and use it

I want to get the data from a query and store it in a variable and use that variable in another query.In Birt how can i do it.

Read the full question & Discussion Posted By: venu - (0 Replies)

newlines in regex find & replace

How do you include newlines and other control characters into the replace text? Backslashes get stripped from the normal regex codes.

Read the full question & Discussion Posted By: Rob Agar - (3 Replies)

error in developing the report

Developed a report following steps of Scripteddataelement example demo in birt site and got struck with the following errors details r given below

Read the full question & Discussion Posted By: venu - (1 Replies)

how to get dynamic data in Birt

I need to use some variable for comparision in my query while creating a data source.Now my problem is IN BIRT where i can store variable and fetch it

Read the full question & Discussion Posted By: venu - (1 Replies)

Applet Window Size

How would I go about changing the size of the applet window in Eclipse? Is it an eclipse option, or part of the code?

Read the full question & Discussion Posted By: alexandra - (1 Replies)

Running an executable in an Eclipse View

I'd like to be able to run an executable, (cygwin, putty, cmd prompt take your pick!) in an Eclipse view. This would really help my productivity!

Read the full question & Discussion Posted By: Ivan - (1 Replies)

How to make J2EE web app local build & deployment easier?

I need tips on an easier way to include J2EE app dependancies (web.xml etc) in my Eclipse project output /build dir for local deploy't & debugging inside the IDE with J2EE app server. Any tips welcome

Read the full question & Discussion Posted By: David - (2 Replies)

How does eclipse find the JRE Location

Hi all, How does eclipse find the JRE Location which gets appended to the java project classpath?

Read the full question & Discussion Posted By: Nagraj - (2 Replies)

TableViewer Example

Searching for a TableView example working on 3.1.2. The one in reference URL does not work in 3.1.2.

Read the full question & Discussion Posted By: Azly Nacro - (2 Replies)

To disable editors in Eclipse plugin application

We have developed an Eclipse Plugin application. But the editors are editable. This has to be disabled.

Read the full question & Discussion Posted By: Anila Alex - (0 Replies)

Rendering into AWT image through GC

Hello, I'm trying to create a very simple SWT app (or eclipse plugin), that draws text (or individual glyphs in fact) into an image and saves the imag

Read the full question & Discussion Posted By: AM - (0 Replies)

Eclipse workspaces on Ubuntu Breezy GNU/Linux

I've turned on the "Prompt for workspace at startup" option, but I don't see the prompt. It also selects the wrong workspace initially.

Read the full question & Discussion Posted By: Neil Greenwood - (1 Replies)

OutOfMemory Error

The Error is know like that : Unhandled event loop exception Reason: java.lang.OutOfMemoryErro

Read the full question & Discussion Posted By: gantait - (4 Replies)

Drawing natively on swt canvases on macintosh

Hello all. I want to write an application with java swt interface and a native rendered component (C). On windows I have a Composite.handle that...

Read the full question & Discussion Posted By: Cornel - (0 Replies)

newbie problem reading a file : Workplace is closed

Having difficulty accessing a file resource from within eclipse, am receiving "Workplace is closed exception".

Read the full question & Discussion Posted By: John Kilbourne - (2 Replies)

accessing plugin resource files

How do I access text files in my plugin? By comparison, to use images, the AbstractUIPlugin class has a method to return an ImageDescriptor.

Read the full question & Discussion Posted By: John Kilbourne - (1 Replies)

Reg:eclipse RCP

Hi, Im new to eclipse RCP.can u please help me how to develop a application using eclipse RCP.send me if u have any books for this.

Read the full question & Discussion Posted By: narasimha - (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.
Eclipse as an Ecosystem

A study of Eclipse was performed at the Harvard Business School analyzing IBM's strategy around Eclipse, let's see what our study says instead.

Full Discussion Posted By: Riyad Kalla - (23 Replies)

RCP and Java Webstart

Hi All,

I've been trying to export my RCP application using the Java Webstart technology using Eclipse 3.1.2 and Java 1.506 under Linux, without any success.

I got several errors, some related to the plugins directory which is not valid, s...

Full Discussion Posted By: Georges - (23 Replies)

Did we need SWT?

Our beloved tip guru R.J. Lorimer set off what I think is a very interesting find with his post here .

Full Discussion Posted By: Riyad Kalla - (18 Replies)

Eclipse 3.2M5 is out

The latest milestone of the Eclipse platform does not disappoint, with JSE6 and Intel Mac support, more refactorings, better support for plug-in development, goodies for RCP developers, and more.

Full Discussion Posted By: Ed Burnette - (11 Replies)

Parse Error and partial solution

Hello !
I installed with success this pop-up calendar:
http://www.cwroethel.com/Projects/JPopupCalendar/

One of the commands to build this calendar is:

Full Discussion Posted By: Buenzli - (9 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