Eric Bruno is a systems engineer at Sun and co-author of two new books for Prentice Hall, Real-Time Java™ Programming: With Java RTS and JavaFX: Developing Rich Internet Applications. Steve Haines, host of the InformIT Java Reference Guide, caught up with Eric right before this year's JavaOne conference.
InformIT: Can you give us a little background on yourself?
Eric Bruno: I have real-time experience building trading systems, news and quotes feeds, and other financial software products in C++ and Java while at Reuters. Overall, I've been working with Java in all forms since 1997 as a consultant with many companies. I've been part of many successful large-scale software systems that I've helped architect, design, and build. I've been writing about my development experiences since 2002 as a contributing editor for Dr. Dobbs Journal. I've had articles published in Dr. Dobbs, Software Development, C/C++ Users Journal, DevX, and InformationWeek. I started book writing in 2004, and so far have three books published.
Editor's Note: Eric also has a new article on InformIT, Using the Sun Java Real-Time System.
IT: You have a new book entitled Real-Time Java Programming. Can you tell us a bit about why you wrote that?
EB: I had an immediate attraction to real-time Java development, and found myself building quite a knowledge base. Also, being in NY, I work closely with financial companies in NYC. As a result of my growing knowledge on the subject, and my experience with more and more companies, I decided to write a book on real-time Java development to share it. This is the driving factor behind all of my writing: to share. I know how important good software development books have been to my career, and it's my goal to provide that to others regarding real-time Java and all of the subjects I write about.
IT: On that same topic, many people still feel that Java, and any interpreted or partially interpreted language, is not appropriate for real-time systems. Is there anything you can tell us to dispel that misconception?
EB: Java has grown a lot since its beginnings. In fact, with the latest Sun HotSpot virtual machines, Java code is compiled to machine code when it executes. This is known as "just-in-time" (JIT) compilation. For the most part JIT compiled code is just as fast as compiled C++ code, and sometimes it even surpasses it since it's optimized on the fly. However, real-time application behavior is not really about the raw performance of code; even interpreted languages can be used in the real-time space. What's needed is a way to reason about and then prioritize processing within your software, and an assurance that your code will run with predictable timing. Java RTS, being based on the RTSJ and Java SE HotSpot, provides this and more.
IT: You have another book coming out about JavaFX and using JavaFX to develop Rich Internet Applications. How involved have you been at Sun in developing JavaFX? How do you feel JavaFX will impact the Java community? How do you feel JavaFX is positioned against technologies like Flex and Silverlight?
EB: I've been working with JavaFX since it's been known as F3, but at a higher level. Jim Clarke has been involved in the development of the language, and the compiler. However, Jim Clarke, Jim Connors, and myself have been helping to drive adoption of JavaFX in the community for quite some time. In my opinion JavaFX will help Java developers without GUI experience to more naturally begin building rich Internet applications. I was one of those developers, having focused on server-side, distributed system Java development for many years. My personal preference is to use JavaFX instead of Flex or Silverlight because I like Java, I have a great deal of experience and knowledge around it, and I think most other Java developers will feel the same way. JavaFX is uniquely positioned because with basically one language (and one type of developer), you can build server-side applications, desktop applications, and web-based applications without shifting gears.
IT: You're giving two presentations at JavaOne this year, both on Real-Time Systems. What can you tell us about those presentations? What do you hope your attendees will take away from those presentations?
EB: Actually it's three! The technical session (TS-5059) is about balancing both throughput and determinism in a Java RTS application. I've worked with developers who say they want determinism in terms of predictable (and minimized) latency, only to get hung up when they see that their system can no longer handle as many transactions per second. Also, I've worked with customers to help them gain back the throughput through tuning after we've gained the determinism. This session discusses this and the strategies that have worked. Next is BOF 4560, which dives into the internals of Java RTS, and what makes it a real-time system. Finally, BOF 4593, presented in conjunction with a customer who I worked with regarding Java RTS, discusses a real-world case-study in working with real-time Java. Each of these talks compliments one another; the first is about how to use Java RTS, the second is how Java RTS works internally, and third discusses someone's real experience with it, good or bad.
IT: What are you particularly excited to see at this year's JavaOne?
EB: To hear news about JavaFX (that even I haven't heard yet), to experience developer excitement about the latest in Java RTS development, and to gather more information on Project Vector, which is a Java application store.
IT: We've all seen changes in the Java industry in the past year, most recently and notably the acquisition of Sun by Oracle. How do you feel that this will impact the Java community?
EB: My opinion is that when you have two industry giants agreeing to merge mainly because of one thing — Java in this case — the result will be a level of focus and energy that we haven't seen before in the Java world. The Java community should be excited about the opportunity this presents to everyone involved.
IT: What's next for you? What are you working on?
EB: I think I need to work on a tan. :-) I've been heads-down working on these two books for some time now! Seriously, my goal is to become one of the top sources of information in the Java world through blogging, announcements, articles, developer conferences, and by just helping developers solve their Java-related problems in any way I can. Watch my blog on dobbscodetalk.com, and my columns that I intend to expand on ericbruno.com, for the latest information on everything Java. Who knows, there may be some surprises there in the coming months.