I got my start with Java before J2EE was even a gleam in Sun's eye, and have become very proficient in building desktop Swing apps. I am wondering if Swing is still alive and kicking, or whether most everyone is jumping on the thin client bandwagon? Thin client isn't a fit for all applications, of course, but does offer the appeal of greatly reduced effort to distribute applications to the end user community. Still, I hope that my Swing skills haven't become too passe ... Thanks in advance for your thoughts!
All depends on how you define "thin". I classify a client thin or not depending where the business logic (i.e. input validation, output aggregation, database interaction tasks) is. If you have a client that relies on the server to do most of those tasks, be it Swing or HTML, it's a thin client. You didn't mention what other technologies you have used. I've seen the server side use pretty much any combination of J2EE technology: Servlets and JSP; EJB and RMI; Servlets, JSP and EJB; and everything uses JDBC. The tradeoff discussion with the client always seems to revolve around a full-featured Swing client (but we have to install the JVM?) vs. the ease of maintenance with a browser-based app (why can't this screen update when someone else changes something?). I guess the bottom line is that you never know what�s next, so keep learning.
I consider "thin client" to mean the client workstation needs a minimum of infrastructure to be installed in order to support an application's user interface; the ultimate thin client is only needing a web browser. My J2EE apps typically consist of a combination of servlet/JSP/JDBC technology; haven't had a need to build applications on a large enough scale to warrant the complexity of EJBs. Thanks for your thoughts!