 |
|
Bio: Scott Delap is president of Rich Client Solutions, Inc., a software consulting firm focusing on technologies such as Swing, Eclipse RCP,
and Flex. Scott is a frequent presenter at conferences such as
JavaOne and No Fluff Just Stuff. He also serves as the lead Java
editor of InfoQ.com.
|
Q: How do you feel about the open sourcing of the Java platform?
A: Open source means many different things to many different
people. Some focus on licensing, while others on governance.
Personally, I'm curious to see how open source affects the direction
of the platform.
Will the momentum of languages built on the JVM* such as Groovy and
JRuby affect the platform and JVM going forward? Will popular
additions such as AOP be integrated into the platform? I'm also
curious how much influence the developer community will have on the
platform's direction.
Q: How will open source affect Java technology on the desktop?
A: That remains to be seen. In my view, desktop Java's future
evolution can be tied to two things. The first is deployment.
Desktop Java's Achilles heel has always been ease of deployment.
RIAs (rich Internet applications) have been very active of late with
Adobe Flex-Apollo and Microsoft Silverlight. Here's the question: How
will Java technology evolve, and is there still time for technologies
such as Ethan Nicholas's Java Kernel work to make a difference versus
the competition?
Open sourcing the Java platform could make this process happen faster
-- or it may not.
The other angle related to desktop Java is API evolution. How can we
make applications easier to write? Community involvement with the
Swing Application Framework and Data Binding JSRs should make them
key additions in future versions of the platform.
Q: Tell us about Rich Client Solutions.
A: I'm president of Rich Client Solutions, a consulting company
focusing on innovative desktop and rich web applications. Among the
technologies we focus on are Ajax, Swing, and Eclipse RCP. We provide
on-site training, application architectural design, and general
project-based consulting.
In respect to Ajax, we see a lot of use of bridge technologies such
as DWR (Direct Web Remoting). On the desktop Java side, Swing is
still actively used. Eclipse RCP has gained a lot of momentum
recently.
Q: What should developers understand about Java technology on the
desktop?
A: They should be aware that Java technology offers robust
capabilities. Java2D, for example, is a very full-featured graphics
API that many developers are unfamiliar with. Desktop Java is also
continuing to evolve. For example, the SWT (Standard Widget Toolkit)
team is building a completely new implementation of SWT on Windows
Presentation Foundation that will provide excellent support for
Vista.
Q: What should developers understand about writing testable desktop
user interfaces (UIs)? And what will they learn from your session on
this?
A: They should learn that desktop application does not mean
"untestable application." In more practical terms, the session will
explore how code can be separated using established patterns to test
UI logic without having to involve the widgets themselves.
Q: When you consult with businesses on desktop development, what
challenges do they currently face?
A: It's very important to start off on the right foot. Some
organizations who rush out a first release confront maintenance and
development problems in subsequent releases. Rich Internet and
desktop applications should be built on a solid foundation that uses
proper threading and clean, well-designed model-view-controller
architectures.
Q: What online resources do you use to keep up with Java technology?
A: I read a lot of blogs. As the Java editor for InfoQ.com, it's
part of my job description to keep up on a wide variety of topics.
Q: What advice would you give to a programmer new to the Java
language?
A: Learn how the language and programming works. To solve a problem,
don't merely cut and paste a block of code you've found online into a
class. That may work at first, but when something goes wrong, you
need a hunch as to why. If you fundamentally understand how the code
works, solving such issues should be easy.
Q: What do you do when you feel stumped?
A: Like a lot of developers, I'm a big fan of Google. I can usually
find online conversations that will lead me down the right path. If
that doesn't happen, I email many talented developers I know. Often, a
different perspective can provide a solution as well.
Q: What's the next big technology revolution?
A: I think technology is moving simultaneously in a number of
directions. On the client application front, I think we will see a
gradual evolution away from Ajax to higher-level APIs. Some, like GWT
and OpenLaszlo, may still use the browser under the hood for
implementation. Others, like Silverlight and Flex, may have their own
runtime.
There's also an industry trend toward virtualization. At the
corporate level, we have technologies such as VMWare. At a higher
level, there are companies such as Amazon with EC2.
The day is approaching in which I'll be able to start up 10 server
instances when required. However, writing applications that can take
advantage of multiple servers on demand is still not as easy as it
should be. Thus, I suggest keeping an eye on grid computing. There
are some interesting projects out there such as Apache Hadoop that
make writing distributable algorithms an easier task.
Q: What do you see as the most important API in Java technology five
years from now?
A: I think the concurrency API will be the most important. Regardless
of abstractions, writing good multithreaded code will be essential to
achieving maximum performance in a world where servers will have 20-plus
processors.
Q: If you could work on a dream project, what would it be?
A: I enjoy solving problems, so my dream project would involve a good
challenge. It might be finding a way to sift though millions of
records quickly, or perhaps creating a desktop application that lets
someone do their job in half the time it currently takes.
* As used in this document, the terms "Java virtual machine" or "JVM" mean a virtual machine for the Java platform.
Scott's Two Tech Sessions
Developing Enterprise Business Applications in Eclipse Rich Client Platform: Intermediate/Advanced (TS-3634)
Scott Delap and Chris Butler
Wednesday, May 9
6:35-7:35 p.m.
Writing Testable Desktop UIs (TS-3631)
Scott Delap and Barry Livingston
Friday, May 11
12:10-1:10 p.m.
|