Chris has posted 2 posts at DZone. View Full User Profile

Java - Client Side Development or Enterprise Only?

04.12.2011
| 6206 views |
  • submit to reddit

Before I begin, I must warn everyone about the age old (Java Server vs. Java Desktop) battle

I'm a big fan of Java (must be, as I was developing in it since 1997, and getting to grips with the new AWT event model in Java 1.1)

I do notice that the posts in the new java.dzone are all about enterprise software (new frameworks, changes to frameworks, questions about frameworks)

Is there anything out there that is J2SE based? I know that there are some cool things going on in the SWT world, and even in the jogl world - but for clarity's sake I will say jogamp

My main point is - why are these not acknowledged in java.dzone.com

 

Published at DZone with permission of its author, Chris Clark.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

James Sugrue replied on Tue, 2011/04/12 - 1:03am

Hi Chris

I'm not sure I agree that we're not acknowledging client side development. Looking at the current frontpage, sure, we have some enterprise stuff, but there's also articles about Java in general, Java mobile and development practices

My own experience is with desktop software, JavaSE and Eclipse RCP/SWT applications, so I've always tried to get a good focus on these technologies while working on JavaLobby and EclipseZone. I've even written a refcard covering Java GUI Development, with both Swing and SWT.

If there are any specific topics you feel we are missing let us know. 

James

 

Jilles Van Gurp replied on Tue, 2011/04/12 - 1:28am

Client side in general has made room for mobile and web based development. It's still being done but Java is not and never has been a technology of choice there due to a variety issues related to the end user experience (installation, look and feel, integration with the target platform) as well as the bar being raised continuously by other platforms (.net, OS-x, flash, HTML 5, QT, Silverlight, etc.). For all the  stuff going on in the SWT, JavaFX (or whatever they call it now) and other desktop facing APIs in Java, it is decent technology but developer adoption is lagging behind in terms of numbers of developers and in terms of high profile software delivered to actual end user. Mostly it is used for enterprise type development where it is increasingly marginalised by web based approaches. The number of non trivial desktop applications targeted at a wider audience is very slim by now. It's even worse if you exclude applications targeted at other developers (like IDEs, programming editors, modeling tools, etc).

The good news is that Java is highly relevant for mobile development on Android and J2ME for those hundreds of millions of legacy devices for those not wielding a smart phone (i.e. most people on this planet). Easy to forget about them and certainly not as glamorous as building fart applications for the iphone wielding elite.

Then web based development is nearly 100% a server side affair for Java. Applets are dead and buried and have utterly failed as a delivery platform for end user applications. There is little point in even enabling applet support in your browser these days. The client side is html and javascript based and now also spans mobile web and this remains a Java free zone. 

Lieven Doclo replied on Tue, 2011/04/12 - 2:24am

I have to disagree with the statement that Java has never been the platform of choice when creating rich client applications. In an enterprise environment, I'll choose a Java rich client over a .NET rich client any day. I've done development for both sides and at least in my experience, Java rich clients are a lot more suited for enterprise environments, while .NET is more suited for rapid development (and is therefore a premium choice for SMB's). Even the installation is no longer an issue, we have webstart for that (with integrated updating and versioning if you know what you're doing). The bar being raised by Flash, Silverlight? Hardly. Point out one thing you can do in Flash (AIR) or Silverlight clients you can't do with Java rich clients. At least with Java, you have an end-to-end solution for rich clients, whereas other technologies focus on the client side, which makes maintenance so much easier since you have only one technology to support. Lack of developer adoption is more of a fashion thing than a ease of use thing. It's just a lot more fashionable to create a web client than it is to create a rich client. The result: huge, non-trivial web applications which should have been rich clients in the first place. Web applications that take tons of money to develop and even more money to maintain, due to the ever-increasing demands towards a more desktop-like web application by the user. Why are we putting so much effort in trying to make web application look more like desktop applications? Ease of deployment? Bleh. Not an issue anymore, we have Webstart. Integration with target platform? Last time I checked, Java, unlike .NET, was platform agnostic and you can achieve much greater integration with the underlying system by using a rich client than a web client. System look and feel? No one complains when rich web clients have completely different look and feels... Why then? Because it's fashionable.

René Jahn replied on Tue, 2011/04/12 - 4:00am

First: dzone is not only about Enterprise technology. There are a lot of articles about desktop technologies/problems/news. Not as many as for Enterprise stuff but that is because Enterprise topics are "very cool" now... (I have no relation to dzone!)

The Java world is not only Enterprise :) Many business apps are not browser based (html, ajax) because performance is relevant or end users need desktop feeling. There are many reasons to opt for desktop applications e.g. Display billions of data without paging, Hardware integration, Costs, Development time, Maintenance, ...
Most backend applications are not browser based, but frontend apps are! I don't talk about apps for end users (like online banking or online betting) because an end user does not handle a lot of data... I talk about apps for companies which implements all business processes and handles all business relevant data. A small company needs cheap standard products but big companies need individual software or standard software which needs customization - sounds better. It is not a problem to develop everything with "enterprise technologies" but it's just too expensive (to develop, to maintain)

And why are Applets dead? Sun had a head start with Applets but they created no reasonable use cases and so, Applets were seen more as a toy. Nowadays - Flash/Flex, Silverlight are not really different. Another problem with Applets is/was that developers did not know how to develop apps with that technology.

And I'm sure if some keyplayers would say that plugins are now preferred that many critics would change their opinion immediately. A little bit of marketing, perfect use cases, Vendor support and things change.

Alex Scott replied on Tue, 2011/04/12 - 4:36am

Take a look at Griffon (Groovy MVC Swing application framework). Its a young project, but already extremely fast to develop good quality Java desktop applications and above all - enjoyable.

Geertjan Wielenga replied on Tue, 2011/04/12 - 5:00am

Here are 198 pieces of evidence to prove the relevance of the Java desktop.

http://platform.netbeans.org/screenshots.html 

I spend pretty much all my time showing developers all over the world about all this. And in the enterprise, the Java desktop is massive. And growing. The web is insecure and unreliable. Not good for the enterprise, e.g., banks, and in the aerospace/military industry "insecure and unreliable" are not strong selling points either.

Mihai Dinca - P... replied on Tue, 2011/04/12 - 5:30am

Hello.

I agree  with you Chris. There is very few data about desktop applications. I just want to give you an example. I am working at NextReports Designer , a swing desktop reporting application, and NextReports Server , a web application created with Spring, JCR, Wicket and other technologies / frameworks.  Two years ago an article was published. It was practically the beginning (only a year of development). Since then I tried to publish articles to javalobby to present what are the new features, to talk about the server (which two years ago was in a state of inception). I managed to publish only announcements about the products. The two or three articles I wrote were just deleted without any feedback. I accept that an article may not be published because there are some flaws or some missing things. But the lack of feedback and the way some persons there at javalobby treat people who post is beyond my understanding.

So it is not about there aren't desktop applications out there, it is about the system applied at javalobby.

Geertjan Wielenga replied on Tue, 2011/04/12 - 5:49am

If you go to http://netbeans.dzone.com, you'll see articles about the Java desktop all the time, pretty much every day. Often they also end up on http://java.dzone.com, when enough votes have been received for them. I.e., if you want Java desktop related articles on JavaLobby, just vote for them on NetBeans Zone...

James Sugrue replied on Tue, 2011/04/12 - 6:12am in response to: Mihai Dinca - Panaitescu

Hi Mihai Sorry to hear about your experience. Generally, articles are not just deleted. I'll follow up with you offline to see which articles were deleted, and discuss this further. We have several moderators, so I'll check with them as well. James

Matt Avery replied on Tue, 2011/04/12 - 1:52pm

I helped write a Swing application over 8 years ago, PerfectForm , that is still in production use.  It is a fantastic client side application with a completely customized look and feel, splash screen, toolbar icon, with sophisticated licensing, self-updating, backup / restore features, etc.  This application has absolutely everything you could ask for in a rich client application and has been extremely successful.  It is living proof that Java is perfectly suitable for client side applications.  Because of this experience, I have always regarded negative statements about Java's suitability on the desktop as sheer ignorance.

 If this application is not convincing enough for you, go buy Rosetta Stone and install it on your machine.  It appears to be nearly all Java.  Note that I have no affiliation with Rosetta Stone aside from being a satisfied customer.

Jay Huang replied on Tue, 2011/04/12 - 9:43pm

Based on the survey done not long ago by java.net on Java desktop, it shows that people do care about Java client. Unfortunately, it is lack of attention. Moving forward, I hope that Oracle will have a strategy for Java client.

Java is actually pretty good for desktop software development.  Take a look at the software called Raid at http://www.nexpixle.com. It has the native installers for both Windows and Mac. The GUI looks good too. It can record sound from different sound sources, play back the sound, generate warp and effect animation at good speed, record screen activities , generate final video as Flash and QuickTime movie with sound synchronization. All is done in Java.  I don’t think that this can be done easily by using HTML or ActionScript.

Here is a final video produced by the software. http://www.youtube.com/watch?v=5uFBfg5LxAI

 

 

Mark Unknown replied on Wed, 2011/04/13 - 2:51pm

I think that Java EE is poorly named. Although not perfect, it would be more accurately be Java SSE (SS == server-side). Yeah i know that is fully accurate. But the point is that one can do enterprise applications only use Java SE. An app does not have to be a web-app to be an enterprise app. Nor is a web-app an enterprise app automatically. I know some ivory tower architects would not agree and think all apps must be webapps. Anyway, I do plenty of desktop apps. But they are enterprise apps because they are used in the enterprise and communicate with servers, some of those being web servers and queuing services. But it is just the client that is "desktop" and probably is just one "client".

Hontvári Levente replied on Wed, 2011/04/13 - 6:28pm

Applets are used on popular casual game sites especially for multiplayer games. Most developer never heard about this, even though we are talking about millions of users. 

James Kear replied on Tue, 2011/09/06 - 3:10pm

With version 5 of the Java Platform, Enterprise Edition Java EE, formerly referred to as J2EE, development of Java enterprise applications has never been easier or faster. hire a programmers

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.