http://java.sun.com/ http://java.sun.com/javaone http://java.sun.com/javaone
JavaOne - ExperiencingJava technology through education, industry, and community
Home > 2008 JavaOne Conference - Rock Star Chet Haase

2008 JavaOne Conference - Rock Star Chet Haase

 
by Janice J. Heiss  

Chet Haase Bio: Chet Haase is a senior computer scientist on the Flex SDK team at Adobe, focusing on graphics issues and features. In a former life, he worked for Sun Microsystems as a client architect in the Desktop Java group, working with client technologies such as Java 2D, Swing, AWT, and deployment. He is coauthor with Romain Guy of the book Filthy Rich Clients: Developing Animated and Graphical Effects for Desktop Java Applications. He and Guy are presenting a session on filthy rich clients at the 2008 JavaOne conference.
 

Q: A few months ago, you published a book, Filthy Rich Clients. What should developers know about it?

A: Four things: First, it's about whizzy effects that can help developers create better applications and better user experiences. Second, it's got a lot of background about Swing and Java 2D, so that developers can understand not just the effects that we wrote but the techniques that they can use to write their own effects. Third, it's a fun read, or at least we tried to make it so. And finally, all of the demos and utility libraries are available, including source code, at the book's web site.

Q: After eight years in Sun's Java Client Group, you left in January 2008 to join Adobe. Tell us what you've been up to.

A: I joined the Flex team to work on graphics-related stuff -- no surprises there. So far, I've mainly been spinning up on the platform: Flex, Flash, AIR, MXML, ActionScript3. There's a lot to learn for someone who's just been doing Java for the past 8-plus years. Meanwhile, I've been helping out with some component re-architecture work the team is doing for the next release, and I'm starting to look into animation.

Q: There's an Adobe event on Wednesday night at 5:00 p.m. at the Metreon, where you're giving a short presentation with James Ward. Tell us about it.

A: This should be fun. James Ward will give a quick introduction to the Flex platform, including how to write Flex clients that talk to Java back ends. Then I -- and maybe my coauthor Romain Guy -- will show some demos of "filthy rich" Flex applications about how to use Flex to get the kinds of effects that we talked about in our book. The approaches are different for Flex, but you can achieve very similar effects with that platform. Anyone interested should stop by the Adobe booth to get an invite.

Q: What attracts you about developing graphics software?

A: I like the visual feedback I get from my programs. When it works, you can see the results on the screen. When it's broken, you can see them, well, incorrectly on the screen. This is much more satisfying to me than debugging some hidden database transaction. Also, graphics marries my math background to my software background. Computer graphics uses a lot of techniques from linear algebra to trigonometry to geometry to calculus. Using math to put pretty pictures on the screen is way more fun than most of the stuff I did in my math classes.

Q: What advice do you have for someone who wants to have a career creating graphics software?

A: Take the math courses you need. It doesn't need to be higher-level stuff, but I've leaned heavily on linear algebra and some amount of calculus for a lot of what I've done.

Q: What advice would you give to a programmer new to the Java programming language?

A: Don't use line numbers. Don't put your entire application in one method. Trust the garbage collector to do its job.

Q: What industry is poised to deliver on the promise of web services in a big way?

A: Wrestling. When the WWF (World Wrestling Federation) uses web services on the World Wide Web, the moniker will be wwwwwfws.

Q: Can you describe the process of writing code?

A: I try to collect in my mind, and maybe in illegible notes on scrap pieces of paper that I can never locate afterwards, some concept of what the system will do. Then I start prototyping.

There's an ideal approach that I've seen described in books where you specify an entire system -- API, whatever -- in function stubs and comments, and then all you have to do is fill in the details. Maybe some people actually code this way, but I haven't met them.

Much of software is a research project, where it's not clear what is possible or how the details will actually need to work. So when I get close to knowing what I want to achieve, then I start hacking some code to find out what is going to work and how. As I get the smaller pieces working, I can refine the design because I have a better idea of what will actually work.

Q: What code are you most proud of creating?

A: The Timing Framework. It's a library that was developed to fix a particular gap I saw in Java SE -- the lack of useful timing-animation features -- and was then grown organically, based on requirements we had or that people sent to us. It's now a very solid library that makes animations in Java much easier.

I'm also quite proud of all of the code written for Filthy Rich Clients -- targeted demos that showed people how to accomplish specific tasks, and written as tutorials to educate, as well as simply working code.

Q: What's the next big technology revolution?

A: The banana phone. Fruit that can function as both a communications device and a nutritious snack.

Q: What do you see as the most important API in Java five years from now?

A: There will never be a more useful API than System.out.println.

Q: Can you give us an example of beautiful code?

A: Here's one:

  10 print "fart"
  20 goto 10

Q: If you were asking Santa Claus for a new NetBeans IDE plug-in, what would it be?

A: How about an ActionScript3 editor?

Q: What do you do when you feel stumped?

A: Pick up a pen and paper and think through the problem. Take a walk. Talk to someone else about it. Or have another cup of coffee -- it may not help, but it tastes good.

Q: What recent changes to the Java platform have made your life easier?

A: Some of the language changes in J2SE 5.0 I've found useful, like the new for() loop.

I've used generics some to simplify the Timing Framework API, although I feel like the real benefit of generics is for the users of generified APIs, not the developers that had to make generics work in their code.

Q: The most important thing for Swing developers to understand is...?

A: Turn off the food processor before you stick your hand in it.

Q: What do you think is the biggest technical hurdle to Web 2.0?

A: The veritable plethora of frameworks out there that are used for "Web 2.0" applications. Especially in the Ajax world, it's hard to know where to start, continue, or end. At some point, a developer's brain just maxes out on the possibilities. Maybe it's really spelled "Web Too," as in "Too Many Options."

Q: Are you a card-carrying member of an online developer community?

A: I'm not in a specific community, but I'm a regular blogger in my area of development focus. I think that having great libraries is an important part of attracting the developer base.

But explaining how developers can use the libraries and showing them specific, approachable examples of how to do so is another critical part of the equation.

Q: How does graphics software development fit into the Web 2.0 picture?

A: Web 2.0, as I understand it, is about better and more dynamic user experiences in the browser. Those experiences mean rich graphics and effects, in whatever framework you choose to use. Even effects as simple as animating a drop of a shopping item into the cart or fading out some item on the page use interesting graphics techniques.

Q: How do you feel about open-source software?

A: I think open-source software is great, but not for the reason that people might assume. When people hear that a project is open sourced, they might assume that there are legions of people helping out, chucking code into it from all corners of the universe and collaborating in this very loose way.

Most open-source projects that I've seen have been less about everyone contributing and more about transparency of the source base and informed feedback from developers. Most companies and people probably care more that they can see what's inside the black box, and suggest changes as appropriate, than they do about actually making changes and checking them in.

So, for example, my Timing Framework benefited not from people actually committing code but rather from people being able to see how it worked and then talking with me about how it could be improved for their particular situation. That's something that would have been more difficult had the source been closed and secret.

Java and the Flex SDK are both open sourced. I hope they both benefit from community involvement at whatever level people choose to get involved.

Q: You have been known to write zany and witty things on your blog. Do you think being goofy and silly keeps you sharp and loose and creative as a developer?

A: Sure, that's it. That's why I do it.

No, I don't really have a reason that I do it. I just enjoy trying to get a laugh. However, I do think that you can't educate people if they're asleep.

So, for example, making a presentation entertaining can be almost as important as making it informative. I've seen very dry presentations that are still quite good, but in general it's the more dynamic presentations that people remember and want to see again.

The same applies to articles: If you can use amusing analogies or wording in order to get your point across, you might stand a better chance of keeping your reader going than if you just spit out some code and equations at them. At least that's my petty rationalization, and I'm sticking to it.

Q: Could you share with us a couple of your favorite geek jokes or stories?

A: Well, I can't promise they're my favorites or funniest, but at least they're new -- I just posted them to my blog this week -- and very geeky:

What do you call it when a chip manufacturer loses money?
A cash miss.
What do you call someone that has to use a dull web application?
Bored to tiers.
See Also

Codedependent: Chet Haase's technical blog
Enough About You: Chet Haase's humor blog
Filthy Rich Clients book site

Rate and Review
Tell us what you think of the content of this page.
Excellent   Good   Fair   Poor  
Comments:
Your email address (no reply is possible without an address):
Sun Privacy Policy

Note: We are not able to respond to all submitted comments.