I don't think so because my future will be J2ee and c++ network programming and DBA roles.
If you don't see a use for a GUI in those roles, you aren't using your imagination. For example, something horrible happened with an application I maintain that corrupted several thousand database records. I could go into the database and correct each record myself using SQL but instead I whipped up a Swing app with a couple of screens to allow a couple of non-technical people fix the problem with a few clicks. I saved myself a day or two of tedious work and the company a lot of money.
I would challenge the notion that Java GUI apps are "badly beaten". There are a whole lot fewer of them, to be sure. And few of those that do exist are commercial apps.
But -like Joe- I see a fair number of Java GUI apps inside of companies. If there's a chance that an app ever needs to run on OS X or Linux, then coding it in Java is a good choice. Plus, you'd be widening the arsenal of tools you have at your disposal to squash a problem; Joe gives a good example of when that might come in handy.
Having said that, you're certainly right that -compared to server-side Java- client-side Java is not a smart strategic career move. But I actually find myself using Swing for some of my private applications that I only use myself (or maybe some friends of mine). Coding Swing is a nice change of pace from coding JEE.
Well.. I also don't like Swings much.. but unfortunately I do swing programming for my day to day job Well lots of front office trading applications in investment banks still use to create the trader terminals for traders! And I am in this area.
Another reason of using Java client side is Java is free.
Any experienced developer can fix the bug in Java but MS products are required Vendor support.We all have to send bug report and wait for the vendor to fix it.
You have to buy license of MS products to launch our softwares that means more cost involvement.
Most of people says they see fewer products written in Java.I think this is just a misconception because people often search for multimedia, softwares,converters,game utilities which are basically written in c++ and the rest of smalls software are RAD applications ,written in VB OR C#.
They ignore the Java applets and distributed applications which are chiefly written in Java.
Java is not suitable for building numeric and scientific application because Java has no support for multi-array and operator-overloading.The bigest disadvantage and the same time advantage of Java is Java does not support low level features.
At my previous job, I was doing lots of Swing programming. We were using Java Web Start to distribute the Swing applications. If someone was to be hired, he would be asked about his Swing experience, mostly to be able to support applications and time to time enhance them.
I don't often see a job offer with the title "Java Swing Developer", even when a company does some swing development. They are usually looking for someone who knows Swing, some other areas of Java and couple of frameworks(Web development, Database, etc.).
Swing is not dead and is still used in many companies to an extent, but most business do more Web development, library development, than Swing programming.
Most of people says they see fewer products written in Java. I think this is just a misconception ... They ignore the Java applets and distributed applications which are chiefly written in Java.
I see very few productized applets, and even fewer productized distributed applications (in Java or otherwsie), so I'd say the first sentence is spot on.
Java is not suitable for building numeric and scientific application because Java has no support for multi-array and operator-overloading.
The conclusion doesn't really follow from the premise. While there are languages better suited for numerical calculations (like Fortran-90), lack of operator overloading (which isn't used by most calculations) isn't holding Java back. The language can be used -and is being used- for large-scale numerical computations, and there are all kinds of libraries that support it (Commons Math, JSci, Colt, IMSL, Visual Numerics, ...). See this article for some discussion on the topic.
Swing may not be the most popular thing out there, but it's far from useless or dead.
In 2000 I created a J2EE development aid I called the EJBWizard. Originally it was a GUI app designed to browse databases and construct the code and config files for JOnAS EJBs. In later years I added templates to do likewise for other servers such as WebLogic and to support newer EJB standards. More recently I've used it to generate Hibernate and JPA files and even Python/Django stuff. And people complain because I "waste time" making my apps flexible. :roll:
If you haven't used the Freemind or Poseidon tools, you're missing some useful additions to your development kit. Poseidon is based on the open-source ArgoUML from tigris.org (also developers for Subversion), but for the money you buy a more polished product - and, of course, paid product support.
A very popular J2EE system with graphical tools is the Pentaho Business Intelligence suite, although like Eclipse, they use SWT instead of Swing for their GUI design tools. It's still a 100% Java GUI, though.
Last, but I hope not least, is the opensource project I'm working on (http://mtsdraw.mousetech.com). This is an attempt to create a more acceptable object-oriented graphical design tool like Microsoft's Visio, but - since it's in "Write Once, Run Anywhere" Java, it's expected to work on other OS's than Windows and even other desktop environments (its Linux competitors are usually tied to the Gnome or KDE desktop toolkits). [ September 09, 2008: Message edited by: Tim Holloway ]
An IDE is no substitute for an Intelligent Developer.