JDeveloper is the most comprehensive Java IDE available

Oracle’s recent announcement that JDeveloper 10g will now be available free of cost, has sparked a lot of fresh interest in the IDE. In this interview we speak to someone who is in a great position to tell us more about JDeveloper and Oracle’s other products for the Java community.

In this interview, Roel Stalman states that JDeveloper won’t be moving to Eclipse or any other IDE platform. He also tells us what’s planned for JDeveloper and Oracle Application Development Framework, and shares his thoughts on topics like EJB 3.0, AJAX, BPEL and JSF.

IndicThreads >> Hi Roel. Thanks for agreeing to this interview. Can you tell our readers a little more about yourself?

I’m the senior director of product management for Oracle’s development tools, tools which include Oracle JDeveloper and Oracle ADF. I’ve been with the JDeveloper team from the very beginning, in 1997, and during this time I have seen the product transformed from simple Java code editor to full-fledged J2EE and SOA development environment. I also supervise the development of Java-related training at Oracle.

“I’ve been with JDeveloper since 1997…”

I am also the proud father of a one year old boy called Nicholas and when I’m not busy with work or family, I enjoy playing poker or going out sailing on the San Francisco Bay.

IndicThreads >> After BEA and Borland, I am sure a lot of people are wondering if Oracle will be the next vendor to move its IDE over to Eclipse. Is JDeveloper likely to move to an IDE platform?

No, Oracle is, and has been, committed to making JDeveloper the best integrated development environment for Java and SOA developers. Because many developers do use Eclipse, we want to make it easy to deploy to Oracle Application Server from the Eclipse platform.

For that reason, Oracle is now actively working on several Eclipse projects, including tooling for BPEL, for EJB 3.0, and for JavaServer Faces all of which is already available in JDeveloper.

IndicThreads >> It has become quite difficult to differentiate between IDEs because the feature lists look so similar. Each list full of all the latest buzzwords. What makes JDeveloper stand out from the crowd? How does it compare with other popular IDEs?

JDeveloper is the most comprehensive Java IDE available. Compare JDeveloper’s feature set with the feature sets of other enterprise-level IDEs, such as IBM WebSphere Studio and Borland JBuilder, and you’ll find that JDeveloper holds its own with a price tag that can’t be beat. JDeveloper is free. Users will spend from $2000 to $4000 for the other enterprise IDEs.

“JDeveloper is the most comprehensive Java IDE available…”

Compare JDeveloper with other free IDEs and you’ll find that JDeveloper offers more: a complete J2EE and SOA development environment, with design tools for EJB 3.0, JSF, BPEL, XML, and much more.

“The biggest differentiator of JDeveloper is the Oracle Application Development Framework…”

The biggest differentiator of JDeveloper, though, is the Oracle Application Development Framework. Oracle ADF enables developers to be more productive by offering a set of highly visual and declarative tools on top of a well-tuned framework. Oracle ADF makes Java development accessible to a much broader spectrum of developers by shielding them from the complexities of the platform and the APIs, while at the same time providing more experienced developers access to all the details and all the standard J2EE code and metadata.

IndicThreads >> Oracle’s been pushing ADF for the past couple of years but its awareness and usage still seems to be restricted only to the Oracle world. Is Oracle looking at making ADF open source on maybe similar lines to how BEA took Beehive to Apache?

Open source is an interesting topic. We integrate with open source; we contribute pieces of our product stack to open source; and we have more plans in the works. However, we have seen some vendors just throw products over the wall into open source land without much of a strategy, and without much success. It can be a desperate move.

We have many customers deployed on Oracle ADF and we have received an overwhelmingly positive reaction to our ADF Faces components. We are selling Oracle ADF successfully and currently have no plans to make it open source. However, we do make the source code available to Oracle ADF customers with a support license.

“We are selling Oracle ADF successfully and currently have no plans to make it open source…”

In the future, you can expect Oracle to convert some pieces of its middleware offering to open source and to donate technology to the JCP as the reference implementation of important JSRs. We have recently announced, for example, that Oracle will develop and donate the EJB 3.0 reference implementation. I believe that going the JCP route is a better and smarter way to grow developer adoption than trying to render a proprietary technology open source.

IndicThreads >> With JDeveloper now available for free, I can develop ADF applications using it but if I intend to use ADF in production applications, I am supposed to buy ADF. Is that right? How much does ADF cost?

Roel At The Helm

That’s right, we have recently changed the pricing model for our tools. JDeveloper the IDE is now free of charge, but the runtime of our framework is a separately licensed product. The ADF runtime is bundled with Oracle Application Server, so if you deploy to the Oracle server, you don’t need to pay extra.

“JDeveloper the IDE is now free of charge,

but the runtime of our framework (ADF) is a separately licensed product…”

If you plan to deploy to a different server, you can purchase the Oracle TopLink and ADF bundle. That bundle is priced at $5000 per CPU or $100 per end user. You can find a JDeveloper and ADF pricing FAQ on oracle.com/technology.

IndicThreads >> Do you see JSF being widely adopted over the next few years?

It has taken a while for the JSF specification and tools to mature, but I see JSF as the solution for Internet development. By componentizing and simplifying web development, JSF will do for the Internet what Visual Basic has done for programming in Windows: making it accessible to the masses.

“I see JSF as the solution for Internet development…”

Before JSF, a developer needed to be expert in many diverse rendering and Internet technologies: HTTP, HTML, JavaScript, Cookies, SSL, DHTML, and whatever new flavor of the month surfaced. With JSF, the developer can focus directly on the components and their properties and events, which means that development is visual and declarative. Unlike other web frameworks, JavaServer Faces is designed from the ground up to target multiple devices.

In the end, of course, the success of a framework hinges on the availability of great tools and tons of great-looking components. As Oracle is committed to developing a thriving Faces ecosystem, we are investing heavily in JSF tools and components.

IndicThreads >> What are JDeveloper’s JSF capabilities?

Roel & Nicholas

JDeveloper comes with a code editor with JSF smarts and a visual JSF editor to design JSF pages. JDeveloper also has a JSF navigation editor to design your page flow in a visual way, and drag-and-drop data binding for EJB, Web Services, POJO, TopLink, and other data sources.

“Oracle ADF Faces is the most comprehensive library of JSF components on the market today…”

Oracle ADF Faces is the most comprehensive library of JSF components on the market today, with more than one hundred components, ranging from simple text fields to very sophisticated table and tree controls. The ADF Faces components are built on a rich framework with features for, among others, declarative skinning, partial page rendering, and internationalization. And ADF Faces applications can be rendered on many different client devices, including web browsers, wireless devices, or telnet clients.

IndicThreads >> Oracle offers a PHP extension for JDeveloper that can make it a tool for PHP development. What was the idea behind that?

JDeveloper is first and foremost a Java development tool. But we see more developers using PHP in conjunction with Java these days. For those developers, we offer a PHP extension, ensuring them the same integrated experience with JDeveloper that other developers enjoy.

“We see more developers using PHP in conjunction with Java these days…”

IndicThreads >> Does JDeveloper have any tools for integration with popular open source tools like Hibernate, Spring, Struts, etc.?

JDeveloper comes with a complete set of tools for Struts development, and it is also integrated with CVS, Ant, JUnit, and XDoclets. For Spring and Hibernate, we don’t have any specific tools integration, but these frameworks can be used in conjunction with JDeveloper and they run on Oracle Application Server.

JDeveloper 10.1.3 will deploy to any J2EE 1.4 compliant server using JSR 88. We support EAR deployment to any server with older versions of the product, and we have specifically tested BEA, IBM, and JBoss.

IndicThreads >> Do you think that hiding the complexity of J2EE is the most important job of an IDE? Do you see that role changing in the future, as conscious efforts are being made to reduce J2EE complexity?

The most important work of an IDE is to make developers more productive, and to do so without forcing them to choose a proprietary solution. Some developers will always prefer to write code, and for them the IDE just needs to get out of the way and make writing code as fast as possible. Simplifying the Java language and J2EE platform will help this type of developer significantly.

“The most important work of an IDE is to make developers more productive…”

Other developers prefer a more visual approach. The IDE should offer visual aids and thus abstract away some of the complexities of the platform and the language. But it’s important that the IDE doesn’t generate proprietary metadata. Here’s an example. When you use JDeveloper to build a Struts application, you can write the struts-config.xml by hand; you can use a dialog to enter the Struts information; or you can use a visual page flow editor to lay out the navigation between your pages. Whatever way you choose to develop your Struts app in JDeveloper, the result is stored in the standard struts-config.xml, without any additional metadata. Other developers can work on the same page flow, each using their own preferred way of developing the app.

IndicThreads >> If I am not mistaken, with JDeveloper I can easily develop applications that can persist data using various approaches like EJB, ADF, TopLink and JDBC. Which are the tools that JDeveloper offers for each of these and when do you recommend using one over the other?

That’s right, JDeveloper offers various tools for all of these persistence technologies. For JDBC, the answer is very simple: we offer a great coding environment to write your own JDBC code. For TopLink, EJB, and ADF Business Components, we offer a lot more help, varying from wizards and dialogs to a visual mapping tool for TopLink and UML diagrams for ADF Business Components and EJB.

“The motto for JDeveloper and Oracle ADF has always been “Productivity with Choice…”

The motto for JDeveloper and Oracle ADF has always been “Productivity with ChoiceÃƒ¢Ã¢‚¬? and that’s reflected throughout the product. We leave the persistence choice up to the developer, but most object-oriented folks, as well as Java experts, go for an EJB or TopLink solution, whereas developers with a database development background often prefer ADF Business Components.

As the EJB 3.0 specification is finalizing, the persistence question will become simpler. The new EJB specification is so compelling that most of the OR Mapping offerings in the market will standardize on its persistence solution.

“Most of the OR Mapping offerings in the market will standardize on the EJB 3.0 persistence solution…”

But perhaps the best news of all is that whatever backend technology you prefer, you can use the built-in data binding capabilities of Oracle ADF (being standardized in JSR 227) to build client applications that interact cleanly with those backend components.

If you take a narrow definition of SOA and focus solely on web services development, JDeveloper offers wizards, as well as coding and visual tools, for J2EE 1.4 JAX-RPC Web Services, WSIF, Web Services annotations (JSR 181), WS-Security, WS-Reliability, WS-Management, and more.

“JDeveloper offers wizards as well as coding and visual tools for SOA development…”

However, I prefer a broader definition of SOA, one that encompasses developing services and the user interfaces that interact with them, one that encompasses integration, orchestration, security and management, as well as business activity monitoring. Much of what JDeveloper offers now accords well with this broader conception of SOA: tools for JSF, for EJB 3.0, for Web Services, and for BPEL processes.

“BPEL is a very powerful language and I highly recommend that you take it for a spin…”

If you haven’t taken BPEL for a spin yet, I highly recommend that you give it a try. BPEL is a very powerful language, which is why it’s at the heart of the most sophisticated SOA solutions around. And more importantly, BPEL is really fun to develop. Try out the Oracle BPEL Process Manager with its visual BPEL designer. You will be up and running in 20 minutes.

IndicThreads >> JDeveloper (10.1.3) preview release as well as ADF Faces Early Access have been available for quite some time now. When can we expect to see the next production version and which are the new features that we should look forward to?

We are considering one more preview release this fall, followed by a production release before the end of the year. Included in this production release will be everything we have discussed here, the highlights of which are our JSF design time, the ADF Faces components, EJB 3.0 tooling, J2EE 1.4 support, and a major update of the Oracle ADF framework, including JSR 227 data binding.

“A new JDeveloper production release should be out by the end of this year…”

IndicThreads >> Oracle has already released a version of the application server that supports EJB 3.0. What are your thoughts on EJB 3.0 and which EJB 3.0 capabilities will soon make it into JDeveloper?

I think EJB 3.0 is a major step forward for J2EE. Sun, Oracle, and JBoss have taken the lead on standardizing persistence for the Java platform, as well as dramatically simplifying the concept of EJB. Any Java developer is an EJB developer now, because any developer can now take Plain Old Java Objects, or POJOs, and simply add EJB annotations. The EJB container will do the rest.

“With EJB 3.0, any Java developer is an EJB developer…”

EJB 3.0 also simplifies deployment descriptors. Prior to version 3.0, each EJB project came with an unwieldy number of EJB descriptors. With EJB 3.0, all of this is history.

“JDeveloper 10.1.3 will have full life cycle support for developing, deploying, and testing EJB 3.0 applications…”

JDeveloper 10.1.3 will have full life cycle support for developing, deploying, and testing EJB 3.0 applications. The IDE will also have annotation insight capabilities that simplify coding EJBs by hand.

IndicThreads >> AJAX is the ‘in’ thing today. So this interview would be incomplete if I don’t ask you anything about AJAX. Do you think the excitement about AJAX is justified? And can we expect any AJAX tools in JDeveloper?

Absolutely, AJAX is very important. Even though the concept isn’t new and the technologies behind it have been around for a while, the timing is right for the rich Internet client.

“AJAX is very important and the timing is right for the rich Internet client…”

Broadband Internet access has a lot to do with that. Because more people have high-speed Internet connections now, more people are in a position now to benefit from a richer, more polished user experience on the Web. And now that network latency has become a more significant factor than network throughput, it’s better to have a slightly bigger up-front download to your browser, in exchange for fewer return trips to the server for additional data. This makes for a strong case to manage more of the data in the client’s browser, which is one of the main characteristics of AJAX. The other one is the ability to fetch data synchronously.

“It’s better to have a slightly bigger up-front download to your browser, in exchange for fewer return trips to the server…”

A major reason for the popularity of AJAX, I think, is Google. Google Maps is the killer app that showcases the power of AJAX. As you move around on the Google map, it fetches data ahead of time, so that, as the user cruises around, zooming in and out, the journey is smooth and seamless. There’s never any waiting for data to load that’s a great user experience. And that is exactly what AJAX is all about.

“Oracle ADF Faces is already employing several AJAX concepts…”

Oracle ADF Faces is already employing several AJAX concepts, managing data on the client, for instance, and partial page rendering. ADF Faces will surprise users with its upcoming AJAX features, some of which we demo’d at JavaOne earlier this year.

Other Oracle products also leverage the power of AJAX. Oracle’s Business Activity Monitoring tool, for example, which runs in a browser, is a great showcase for AJAX.

IndicThreads >> Oracle’s focus on Java has led to some anxiety in users of other Oracle tools like forms, reports, etc. A popular belief is that Java will gradually make the other Oracle skills redundant. How is Oracle and JDeveloper looking to cater to old Oracle loyalists worried about Java?

Our message to Forms developers is simple: we will support Forms for a very long time to come, so there’s no need to worry about existing applications. We recommend that existing Forms applications be upgraded to the Web using Oracle Forms 10g, so that they can interact better with other systems. Oracle Forms and Reports skills remain crucial for maintaining, enhancing, and extending these applications.

“Oracle will support Forms for a very long time to come…”

For new applications, we recommend that Forms developers look at a J2EE / SOA solution. Oracle ADF offers the most productive, and most familiar, development approach for Forms users. We provide tons of content and training specifically designed to let Forms users leverage their existing skills in the new world of J2EE and SOA.

“Oracle ADF offers the most productive, and most familiar, development approach for Forms users…”

The other good news for Forms and Reports developers is that Oracle Database, SQL, and PL/SQL skills remain very much in demand in the SOA world where storing and managing information is often a key concern.

IndicThreads >> Thanks Roel. It’s been good talking to you. Could you share your blog url or email address with our readers?

You’re welcome. Thanks for having me. You can reach me at (roel doT stalman aT oracle doT com), and you can learn more about JDeveloper at oracle.com/technology

Related

Content Team

The IndicThreads Content Team posts news about the latest and greatest in software development as well as content from IndicThreads' conferences and events. Track us social media @IndicThreads. Stay tuned!

You mention ‘I also supervise the development of Java-related training at Oracle.’, so maybe you know if there are plans for some kind of developer certification for JDeveloper or ADF? (like there is for SQL, the database etc.)

We at Oracle believe that developers should have a choice. When developers have a choice, vendors and open source projects will compete for their loyalty and that means more innovation.

We can develop more cool features if we are in charge of the whole stack. That’s different from an open source model where we write plugins to a base IDE. We can also integrate our tools better than a set of loosly coupled plugins from different contributors.

Now, I’m not saying that the Eclipse model is bad. It’s not and it’s obviously working. We also support the Eclipse community and have recently announced that we will lead three major Eclipse projects (JSF, EJB 3, and BPEL).

Again, it’s about choice. With JDeveloper you get the most comprehensive J2EE and SOA IDE. And it’s free. Many of the cool J2EE features in JDeveloper will take some time before they show up in Eclipse. However, if you prefer Eclipse, we will support you too and we will work hard to ensure that you have a great development experience.