United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...

New Java Champion: An Interview with Josh Marinacci

by Yolande Poirier

Josh Marinacci, a Java developer and user interface expert, discusses programming and design. Josh was selected earlier this year as a new Java Champion. The Java Champions are an exclusive group of passionate Java technology and community leaders who are nominated and selected by the Java community.

Published August 2010


Bio: Josh Marinacci has spent the last ten years writing Java user interfaces for wireless, Web, and desktop platforms. He joined the Swing team at Sun to work on high-quality user interfaces. Joshua co-authored O'Reilly's Swing Hacks with Chris Adamson. He also leads the Flying Saucer open-source project and helps out with JDesktop Integration Components (JDIC) and SwingLabs. Joshua holds a BS in Computer Science from Georgia Tech. He currently works as a Developer Advocate for Palm.

Poirier: Congratulations for being selected as a Java Champion!

Marinacci: Thank you!

Poirier: How do you feel about becoming a Java Champion?

Marinacci: I am excited to be a Java Champion because I will stay involved with the Java community. Java Champions help shape the future of Java technologies and spread the word about the technologies.

Poirier: How did you get involved with Java technologies?

Marinacci: I have been using Java technology since the first Beta in 1995. In college, my favorite teaching assistant was an intern at Sun, and he gave me early access to the Java Beta in 1995. Java language was the first true language that I worked with before I worked with C++ and Smalltalk. It’s the language I go to for everything I work on.

In 2004, I began working on a book called Swing Hacks. The idea started as I noticed that no experts were blogging about Swing on Java.net. I wrote a blog on Swing that later turned into the Swing Hacks book, which I co-wrote with Chris Adamson. After the book got published, I was offered a position on the Swing team at Sun Microsystems in 2005.

Poirier: What were the most interesting projects you worked on while at Sun Microsystems?

Marinacci: The first and last projects I worked on. On my first project, I worked on Swing windows’ look and feel. It seems kind of boring, but it is very important because those components are used every day by hundreds of millions of people. It is important that they look right and they look like a native window control. It also made me pay more attention to details.

My last project was the Java Store. It was interesting because it was the first time I worked on a project truly targeted at end consumers. The interface matters more than anything else. We did many iterations of the UI to make it easy to use, intuitive, and fun. Fun applications make people go to the site and spend time exploring. I worked very closely with the User Design group. Java Store is my best piece of work at Sun Microsystems.

I have to say software and interfaces are much better today than they were ten years ago. Successful companies care a lot about the user interface.

Poirier: What Java projects are you currently involved in?

Marinacci: I use Java technology at Palm. I built a couple of websites for developers, and I did that entirely with server-side Java technology, JavaServer Pages (JSP), and servlets. I also work on open source projects, which will be public in several months. I wish I had closures from Java Development Kit (JDK) 7 right now, because it would make the design more elegant.

Poirier: You are a programmer by training. What have you learned from working on design?

Marinacci: Programmers are trained to write code, not to design user interfaces. If they get familiar with the design philosophy and work closely with designers, they will be able to design applications better. On the Java Store, I learned a lot by working on workflow and user interfaces with designers.

Visual effects like transparencies and shadows are part of a trend. If you look at patent filings from Apple, you can see that they do the initial design in pure black and white. They focus on buttons and navigation workflow from one screen to the other before they work on the look and feel, which is the last step. You have to think about which features are most important to end users and how users are going to use the features. This is fundamental for well-designed applications. I have seen plenty of applications that look beautiful but are horrible to use because all the developer cared about was the visual effects.

Poirier: Like many developers, you have to be concerned with both desktop and mobile screens. You design interfaces for desktop and mobile applications. For you, what are the specific design challenges of mobile devices?

Marinacci: They are more limited than a personal computer (PC). On mobile devices, we don’t care about processing power; we care about device efficiency and small size, rather than the raw speed. With a touch 2” by 3” screen, there is a lot less you can do. The design principles include fewer controls, making the most important task the easiest to do, and removing unnecessary features. The design also needs to be intuitive and fun for a broad audience. I have seen very successful applications that do less than their desktop counterparts but they do things really well and are easy to use.

Poirier: What do you see in the future for Java?

Marinacci: In the next 10 years, cell phones, tablets, and netbooks—the smaller and more personal devices—will replace personal computers. More people are using cell phones than computers.

I think Sun has found a good home at Oracle. Oracle understands a lot about what Sun has tried to do. It will be interesting to see what happens in the next few years.

Poirier: Josh, thank you for your time.

Marinacci: You're welcome.

See Also