 |
|
Bio: Raghavan "Rags" Srinivas is the CTO of technology evangelism at Sun Microsystems, focused on new technology directions and trends. With 20 years as a software developer and seven in technology evangelism, his general area of interest is distributed systems, specializing in interoperability, mobility, and security. He has evangelized in areas that include the early releases of Java, Java EE, Java and XML, and Java ME technologies and has spoken on a variety of technical topics at conferences around the world. He publishes a standards column and has represented Sun at a number of standards bodies. Rags holds a master's degree in computer science from the Center of Advanced Computer Studies at the University of Louisiana at Lafayette. He enjoys running, hiking, and eating, especially spicy food.
|
Q: What's the latest news on JavaFX technology?
A: The JavaFX announcement at JavaOne 2007 totally reinvigorated Java on the client. Much has been accomplished in the past year -- and a lot more work remains.
The animation syntax which used the dur operator has been completely revamped with TimeLine and KeyFrames, which makes it very powerful. SceneGraph and SceneGraphEffects are easy to use in JavaFX, and finally, JavaFX applications can be deployed in a browser, which many developers will appreciate. Rich clients apart, it's possible to connect to web services from JavaFX programs very easily with the javafx.xml package.
DTrace -- A Well-Kept Secret for Java Developers
Q: What should Java developers know about DTrace?
A: Despite its power, DTrace still seems to be a well-kept secret among Java developers. DTrace works on probes. Many of the probes, which can get the details of garbage collection to memory allocation to HotSpot workings, are available out of the box with Java SE 6. Separate installation is required for earlier versions, but the upcoming Java SE 7 offers significant enhancements, including for jstack(), which prints the stack trace. It is also possible to very easily add providers and modules.
DTrace is easily the least intrusive instrument that can be used to collect detailed data from a live production environment.
Q: Do you have a favorite client-side scripting language? Or which ones should Java developers get up to speed with?
A: To be honest, I don't have a favorite scripting language. I'm looking forward to the panel session titled Script Bowl (PAN-5435), where the panelists, all experts in respective programming languages, will duel it out. They will implement tasks that are suitable for scripting language with a final open round -- I'm hoping to be wowed by one of these languages, although I am already impressed by all of them.
I've noticed, in discussing scripting languages with developers, "language envy" among them. It reminds me of the days when I would whip up three to four lines of C programs to accomplish a data-processing job that would take 300 to 400 lines of a language I'll not name. My colleagues were envious. However, there were days when simple enhancements to these scripts were not easy, and not many folks had the expertise to run the program with the right arguments.
It's clear, however, that scripting languages are here to stay, and each scripting language is suitable for a specialized application. A little bit of JavaScript will certainly help all Java developers. Beyond that, learning a scripting language that's appropriate to the domain will help.
The Next Generation
Q: Can you give us some insights about the rising generation of developers? How do they differ from more experienced developers?
A: This new generation of developers has grown up with mobile phones and instant messaging. They are used to instant gratification and expect to always be connected. They have little patience for long, drawn-out software-design methods based on the traditional waterfall model.
Agile methods that depend on spinning out multiple iterations in short amounts of time are in vogue. Such an approach is sometimes referred to as cowboy or seat-of-the-pants coding.
As time to market becomes increasingly crucial and code maintenance remains important, solutions that apply the best of various techniques will emerge. Tool support for these techniques will need to catch up.
Q: In April 2002, when asked about the future of Java technology, you said, "To describe it in three words, it would be mobility, security, and ubiquity." How would you answer the question today?
A: One important element I left out was usability. Even though a predominant number of desktops have Java, there are still a very limited number of applications that are run by users on a day-to-day basis. These are being addressed. Although the size of the JRE is not shrinking, only a small kernel is required to run many applications.
Java SE 6 Update 10 addresses many of these issues, including cold-start issues and general ease-of-installation and ease-of-use issues. Finally, the increased robustness and the unification of the applet and application models in the new plug-in are great news for developers and deployers.
Q: What impression do you get of the state of software development from your experience at Tech Days?
A: I am impressed by the sophistication of the developers from Bangalore to Bangkok to Beijing to Boston. While software development is a thriving industry in most of Asia, South America, and some parts of Europe, it has leveled off in most of North America and Europe.
Open source, which has fostered collaboration across the globe, has led to a very decentralized industry, so it's not unusual to bump into an expert in a particular field in some corner of the globe.
Misconceptions About Standards
Q: What do you want Java developers to understand about standards. Are there any misconceptions that you would like to clarify?
A: There is a misconception that standards lead to acceptance of mediocrity since they need to cater to the least common denominator of features among the different companies. However, the ability to choose without being locked in to any particular platform is extremely important, and that's the main goal of standards.
It's possible to be very nimble these days in producing and adopting standards, so many vendors can profit considerably if they happen to implement a popular standard first.
Too Much Choice
Q: As you travel the world talking to Java developers, are there any misconceptions about Java that are slow to disappear?
A: Performance. The general complaint is that Java is slow. This was probably true up until J2SE 1.4, but with later releases, performance is not an issue -- unless there's some bottleneck in the application code.
Too many choices can be a problem. Many options are short-lived, and it's very difficult to migrate solutions from one platform to another, even when they are based on Java. Developers around the world are tired of choice for the sake of choice.
They are looking for unique features relevant to their application domain, and they are looking at conferences such as Tech Days to help them with architecture choices. They are also looking for help on using cutting-edge language features, tools, and so on that will help them gain a competitive advantage.
Q: What advice would you give to a programmer new to the Java language?
A: Don't be overwhelmed by the language or the platform. If you break it down, the basics of the language are based on object-oriented programming, threading, concurrency, and event-driven programming. It's necessary to become a master of these concepts since the rest of your career will depend on this foundation.
After that, one can specialize in one or multiple areas, which might involve designing GUIs, doing web stuff, JDBC programming, EJB/JMS programming, security and so on.If one's foundation is strong, it's fairly easy to move from one area to another with relative ease.
Q: What has surprised you the most about how the Java story has unfolded?
A: Applets were my first encounter with Java. We've moved full circle, and we're back to increased focus on the client side. In the meantime, everything --including Blu-ray Disc players, Sun SPOTs, mobile phones, and so on -- has Java embedded. There is still enormous potential for Java and room for growth.
Q: What about products? Anything you care to mention?
A: As technologies mature, so do products. The sustained focus on NetBeans and GlassFish is paying off. The support for scripting languages besides Java in NetBeans is far ahead of other IDEs. The ability to integrate various infrastructure pieces under GlassFish is very impressive. GlassFish v3 will provide further improvements in startup, modularization, and so on.
OpenSSO, which is essentially the Access Manager and other identity products rolled into one, is an enterprise-class solution for security needs.
For developers, these are all available in one download of NetBeans, allowing them to start the application server, use OpenSSO, and so on, within the confines of NetBeans.
Q: Do you have a dream Java project?
A: There's immense concern around the world about energy costs going completely out of control. Is there a Java project out there that will help the earth go real green?
For More Information
- Raghavan Srinivas's Blog
- The Script Bowl: A Rapid-Fire Comparison of Scripting Languages (PAN-5435)
With Guillaume Laforge of G2One, Jorge Ortiz of Stanford, and Charles Nutter and Frank Wierzbicki of Sun Microsystems
- Rich Client Applications: Getting started with the JavaFX SDK (LAB-7350LT)
Sridhar Reddy of Sun Microsystems
- Case Studies from the JavaFX Technology World (TS-7372)
With Jeff Martin of ReportMill Software and Jo Voordeckers of Dolmen/JCS
|