Welcome!

Java Authors: Al Mannarino, Christopher Keene, Anatoly Krivitsky, Pat Romanski, Jason Weathersby

Related Topics: Java

Java: Article

Java Beyond the Server

Java Beyond the Server

Happy New Year! I trust you had a good festive break...not drinking or eating too much. Who am I? Good question. My name is Keith Brown and I'm the new J2SE editor of Java Developer's Journal. As this is the first issue of the new year, our editor-in-chief felt it was the perfect time for me to kick off and bring my flavor of Java to you each month.

My professional history is varied, so the least said about that the better (only joking). I'm a seasoned developer with nearly ten years of software engineering behind me, five of them spent working with this beautiful language we call Java. I've been involved with Java at many levels, mainly at the client-side, as opposed to the trendier jet set who specialize at the server-side. When Alan first spoke to me regarding this role, I was excited about his vision for the magazine. Since it aligned with my own beliefs regarding software engineering, I felt I could take this role and do it justice.

As the newest member of the team, I would like to spend a little time discussing my own personal views on the state of the industry, and where we can work together to make sure we are suitably armed with the tools to implement solutions for the next wave of problems that are winging their way toward us.

Did you catch last month's Guest Editorial from Eric Shapiro? Eric managed to encapsulate the very mood of the J2SE movement. As he said, people are quick to automatically dismiss Java to the server-side, automatically reaching for infamous phrases such as EJB, JSP, and JMS. But Java is more than just server-side - look at our J2ME section if you have any doubts.

I'm here to help reinforce the case for Java outside of the server world. Swing has had a bad rep to deal with; in fact, the history of GUIs in Java isn't a pretty one. When Java first burst onto the scene we were stuck with AWT. When Windows and even X-Windows had all these fantastic APIs, Java developers were definitely at the bottom of the heap with AWT. But it has to be said that the efforts of developers to produce beautiful client-side applications were admirable considering the tools they had to work with.

There was hope. We were told of a GUI API that would allow us to get to the tools we needed to produce production-quality, client-side applications, a GUI that would offer the flexibility and speed of any native platform-specific tool, a GUI to finally bring Java to the masses. Wow - sounded too good to be true.

Sadly it was. What finally arrived was something that was definitely a far cry from the pipe dream we were all living in. To say Swing was a disappointment to some would be a bit of an understatement. The system was buggy, slow, and very inflexible to porting. Maybe it was rushed out the door too quickly and people expected too much from it initially. After all, the APIs it was competing against had been seasoned over many years with a huge amount of testing and development invested in them. Swing was finding its feet with a very demanding audience.

I think that's one of the reasons why Java's popularity grew so quickly at the server-side. Technologies such as servlets and then JSPs made it very easy to build front ends to applications that could be quickly and easily deployed to the masses without worrying about extra downloads - in other words, the very premise that Swing was hoping to solve, but never quite got there due to its size. Even today, if you surf to a page that has a Swing applet, the browser goes into a bit of a fit; if you're really unlucky, you'll have just incurred a 10MB download, worse case.

Swing has never managed to quite get there, but after a number of years in development, the time has come to start delivering on some of its promises.

More Stories By Keith Brown

Keith Brown has been involved with Java for many years. When he’s not coding up client solutions for a European Java company, he can be found lurking in the corridors of conferences all around the world.

Comments (4) View Comments

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.


Most Recent Comments
eetsoop 01/13/02 08:01:00 PM EST

There is nothing wrong with Swing. I was developing a cross-platform (PC/Mac) application for a client when JFC/Swing was released. It was infinitely better than AWT, but still had some "challenges". Java was not ready for "prime time" until the jdk 1.2 release, and Swing, along with the rest of the "core" went through many improvements in the early days. I remember living (and in some cases dying) through each of the jdk 1.1.x releases. Once the jdk 1.2 came along (that's "Java 2" to the marketing folks), Swing was bundled with the core API's and was performing well. Swing's (and Java's) bad reputation in the early days came from bad applets in a static HTML world. If you knew what you were doing you could develop some awesome desktop applications using Swing. But then the Internet took off, and so did Java server-side. Desktop apps (not just Swing-based) took a back seat. Swing has been improving all along and it works great right now. Don't sell it short or make any apologies.

Louis 01/11/02 01:12:00 PM EST

So what changed with Swing ??!! Your article doesn't answer the question in the previous comment.

I always wondered, why AWT and Swing in the first place. Instead of Swing, why not have "JSPClient". That is jsp like environment that can run stand alone on the client browser. Without the need to have the client install a web-server that is jsp enabled. This way, the same applications can be deployed either stand alone or web based.

Bob Wiley 01/10/02 10:08:00 AM EST

So what has changed with swing that makes it more usable now? I used to believe in java on the client side but the it always seemed like a big tradeoff. With the introduction of Java Web Start I'm thinking of coming back to fold or going completely over to C#, but I still haven't decided yet.

jyoti kumar 01/10/02 02:00:00 AM EST

your article is good and vey infomatic