Sunday, 14 January 2007

JDeveloper Q&A with Steve Muench

In an ongoing series of articles, three Australian JDeveloper developers quiz Steve Muench of Oracle about his past, how he made the transition from Oracle Forms to Java, and on the latest and greatest JDeveloper 10.1.3 release. As an Oracle Ace with a visible web presence and his own blog, Steve is a leading force behind JDeveloper. His articles are a first port of call in making effective use of Oracle's ADF technology stack. Having worked for Oracle on just over 15 years, his fingerprints can be found in many Oracle's solutions.

Q) What is your principal role at Oracle and can you describe your average working day?

A) The job title on my business card is “Consulting Product Manager”. I try to help customers be successful using JDeveloper and Oracle ADF, then take the information I learn by doing this and try to leverage it to provide customer-driven guidance for the planning and implementation of features all across the JDeveloper 10g product. While I might end up getting involved in decisions about any features in the product, I tend to focus primarily on the features that make J2EE application building easier for typical corporate business application developers who might have used Oracle Forms or other 4GL tools in the past.

The fun thing about my job is that there isn’t really a typical day. I might be writing a technical whitepaper one day, writing or reviewing a product specification the next, working on demos to illustrate best-practice coding techniques to customers, fine tuning the next instalment of my Oracle Magazine column, answering users questions on the OTN discussion forum, discussing bugs and resolutions with the developers, working with Worldwide Support to assist on a thorny customer situation, just to name a few of the most typical things. I’m also sometimes involved in doing product evangelization at Oracle Partner, customer, or user group events, but these days most of my customer interaction happens over the internet using the OTN discussion forums or Oracle Collaborate Suite’s iMeeting software. This allows me to interact with many more customers, developers, and support engineers in a day than I could if I would be physically travelling around.

Q) Your Blog along with your strong presence on OTN and Oracle events has made you an Oracle personality in recent years. Ever get recognized on the street?

A) After 16 years at Oracle, I definitely recognize a lot of customer faces when I attend events like OpenWorld or user groups, but I unfortunately don’t have any funny stories to tell about being recognized in the street. I started my blog in January 2003 out of my personal frustration of not having enough time to write a proper book on Oracle ADF. It was the second best thing I could think of to help get users information about making the most of Oracle ADF. There is a lot of leverage in putting something in writing so that people can teach themselves how to “fish”, so to speak. Before taking a job with Oracle in 1990, my original goal in life was to be a math teacher, so I love explaining complicated things to people in terms they can understand. The blog lets me do it as my time allows.

Q) Besides JDeveloper you are known for your work on Oracle Forms v4.x & v5.0. How did you go making the transition between the 2 technologies? Do you still think about problems in terms of Forms solutions?

A) My journey from Oracle Forms to Java had a 3-year interim “layover” in the world of object-oriented development working as the lead product manager on the Project Sedona development team. This was work we did at Oracle to pioneer a complete object-oriented development environment before Java appeared on the scene. We now think of it as a useful “research project” that was ahead of its time, since many of the ideas embodied in that project have reappeared in JDeveloper and Oracle ADF. My initial learning curve in moving from a relationally-minded developer to one who could think in objects happened during that project, so by the time we began reimplementing the Project Sedona ideas into what became JDeveloper and ADF, I was over that hump. I can’t say that I think like a Forms developer any more, but I do understand how Oracle Forms developers work and think from having worked so long with Forms before. I used this intuition to help guide the initial design of the Oracle ADF framework, working in tandem with Oracle Applications teams, and use it to help plan and drive future feature work to keep making areas of the product that are still complicated a little easier with every release. We began a focused education campaign in the last year on helping Forms developers get their footing in the J2EE world with lots of targeted technical content on OTN and Oracle Developer Days seminars around the world. We’ve been getting great feedback from this effort so far from existing Forms users who’ve been wanting to get started with J2EE for their next major projects.

Q) Can you give an idea on the JDeveloper team and size, how it is dispersed, how this affects(ed) the build process and delivering the end product.

A) The sun never sets on the JDeveloper team! We have over 150 people working in various roles on the product comprising (in no particular order): developers, development managers, QA engineers, build engineers, doc writers, product managers, customer evangelists, and usability engineers. We’re spread out in development centers in Redwood Shores, Bangalore, Reading (UK), Pleasanton, Colorado, and probably a few more places I’m forgetting. Through the magic of the Internet we are part of a single, big virtual team. Our build engineers have automated the mechanism of producing nightly builds combining the collective work of all the developers, including automated testing and reporting to keep everyone honest and managers aware of project status, bug counts, and other stats.

Q) The JDeveloper team is actively visible on the OTN Forums and Oracle events around the world. What’s the goal behind this activity?

A) This is our primary opportunity to learn how customers use the product, what problems that have while getting started, and what they like and dislike about it. A good amount of our team members participate in the forum because they like this customer contact. One great thing that’s been happening over the last few years is that more and more our customers are helping each other in the forum, creating more of a true community feeling rather than just a place to ask questions of Oracle people exclusively. Often the customers who’ve been using our tools on a project for months will have unique insights that our daily use of the product wouldn’t give us. So it’s great to have both there in one of the most active discussion forums on OTN.

Q) Oracle and the JDeveloper team are actively involved in the Java Community Process with other key industry representatives to improve Java and J2EE. What’s your opinion on the success or failure of the collaborative process and Oracle’s input?

A) I think customers appreciate it when multiple vendors cooperate on designing a common standard and then compete on providing the best implementation of it. We’ve participated actively in many JCP expert groups, with driving roles most recently in the JSF, EJB 3.0, but with dedicated involvement in many others. It’s often a thankless job since it takes a lot of time to hammer out a good spec that’s been giving enough time to go through wide community review. I think the results have been overwhelmingly positive to date.

Q) For Java programmers questions about IDEs invoke a holly war between Eclipse and Netbeans. How do you think JDeveloper differentiates itself from these products?

A) We try to differentiate ourselves by providing an order of magnitude more end-to-end, integrated functionality, and since making JDeveloper 10g free in June of 2005, we try to make sure price is no longer a differentiator. With other free IDE’s, it’s up to you to scout out the collection of plug-ins you want to use and not all of them are free. When you plug them together, you can end up with functionality that doesn’t quite seem like it was built by the same company, since in fact, it wasn’t. JDeveloper 10g delivers the functional breadth of a tool like Visual Studio Enterprise Architect Edition, but for free and on an open deployment architecture.

Our goal since 1997 has always been to provide a product that addresses the complete development lifecycle and simplifies complex business application development. We have a demanding set of internal customers in the form of the Oracle Applications division, where over 4000 developers use the JDeveloper/ADF technology stack to build self-service web application modules for the eBusiness Suite. We’ve built a product that was good enough for ourselves to use, and in the process tried to make sure it was appealing to external customers as well. We’ve steadily improved the usability every release to be more visual, and more productive than ever.

Since Eclipse, NetBeans, and IntelliJ started with a sharp focus exclusively on the Java coding experience, until recently their code-focused development features like refactoring were more extensive than JDeveloper 10g’s. We’ve completely remedied this in our JDeveloper 10g Release 3 (10.1.3) product. We started by implementing the hard, enterprise features like the Oracle ADF framework, visual page design, built-in performance profiling, UML modelling, database design, and other features. These have taken years to get right to a totally integrated experience. It’s going to be arduous for these other players who started with the lower-level Java coding features to move “upmarket”, if you will, to provide a similar end-to-end experience for the corporate application developer.

Q) What comments would you make to traditional Forms developers with few Java or object oriented skills in making the leap to JDeveloper 10.1.3 for development? Do you believe the ease and usability of Oracle Forms development will be seen with a 3GL such as Java?

A) My advice would be to leverage the resources we’ve made available at the J2EE Application Development for Forms and Designer Developers site, read the back issues of my Oracle Magazine DEVELOPER:Frameworks column, attend one of our Developer Days seminars, and then pick a small, yet real-world application to build while they learn the ropes. We have numerous lessons focused specifically on helping Forms users grasp the concepts and working approach of JDeveloper/ADF. A developer with 15 years of experience in working with Oracle Forms often forgets that its taken them 15 years to learn all the ins and outs of the Forms product. The JDeveloper/ADF environment is consciously design to work a lot like the Forms design experience, and the features of the ADF framework handle all of the same things that the Forms runtime makes easy for developers in that product. I’m not saying there is no learning curve, by no means. But, due to the modular, consistent architecture of ADF, once you grasp the fundamentals, putting together the pieces is not as hard as it initially looks.

Q) JDeveloper 10.1.3 marks a significant milestone in the product’s history by moving away from UIX technology to the adoption of JavaServer Faces in Oracle’s own flavour ADF Faces. What decisions were made in deciding JSF was the best future for JDeveloper and its web developers?

A) Customers complain that the best practices for implementing web application UI’s on the J2EE platform have evolved too many times over the last years. First servlets, then JSP pages, then JSP Pages with tag libraries, then JSP pages married with Struts. Struts is also not the only game in town, so a thousand flowers have bloomed trying to build a better mousetrap. We built UIX because our own Oracle Applications development teams needed a higher-level, component-based, event-driven way to build rich, real-world web user interfaces with attractive and often complex, interactive behaviours. By working extremely hard as part of the JSF expert group to bring the expertise we gained by implementing UIX to the table, we were able to strongly influence the design and implementation of the JSF spec. This allowed us to redevelop UIX on top of an industry standard so our hundred or so components can now be used in any JSF-compliant IDE. Our strong support behind JSF reflects our conviction that it is a robust technology that should insure developers can learn it and stick with it for a long time to come. That said, we’ve also invested in improvements in our support for Struts because many, many users are using that today, so whether you initially start using JSF or wait a while longer and stay with Struts and JSP, we’ve got you covered with visual productivity features across the board.

Q) Besides ADF Faces and refactoring, what other new features do you see key to JDeveloper 10.1.3?

A) JDeveloper 10.1.3 has so many cool new features, it’s hard to pick just a few. We’ve improved code navigation, refactoring, team development, modelling, web services, web development, mobile development, Swing development, XML development, and database development. We’ve invested a lot of effort in the ADF framework layers to make working with all backend technologies easier, and made them work especially seamlessly with the new JSF view-layer technology, in addition to their existing support for JSP and Swing. 10.1.3 is really a huge step up for users in all areas of the product.

Q) The next versions of JSP, JSF and J2EE (now JEE) are around the corner. What changes do you envisage will occur to JDeveloper because of this?

A) We’re already supporting all of the latest standards in the 10.1.3 release, like JSF, J2SE 5.0, JAX-RPC web services, EJB 3.0, etc., so I don’t expect anything radical to be changing based on what you’ve mentioned in the future.

Q) There are frequent criticisms raised by beginner and experienced JDeveloper users, that documentation leaves something to be desired, incomplete JDocs with nothing but function names, cookie-cutter examples that through simplicity ignore the gotcha’s, and poor support from Oracle Support. How are these criticisms being addressed by the JDeveloper team?

A) We’ve provided meaty technical whitepapers and demos to supplement our online reference documentation, but it’s a fair point that one thing we’re missing is a proper developer’s guide that you can read cover to cover and get up to speed. We’re directly addressing this issue by providing two ADF Developer’s Guides in the 10.1.3 timeframe. These are readable manuals that cover the end-to-end development experience of using Oracle ADF in JDeveloper for building applications. One guide will focus on the experienced Java developer and one guide on the Forms/4GL developer. Each guide covers the same basic ground of building an end-to-end demo application and explains all the details that make it up, but the guides are separate to cater to the recommended business tier technologies for these two distinct audiences as well as to best cater to each group’s existing skillset. We’ll continue providing new Oracle by Example tutorials that have proven popular as well. We have a new “Cue Cards” system in the 10.1.3 product to provide interactive tutorials on all the application building basics, so we hope through these various initiatives to really improve the out of box experience. We routinely do support trainings and interact with support when they need assistance from development, so they will be ready to support the 10.1.3 product when customers start needing time-critical help with issues.

Q) JDeveloper as a product has seen many changes since its introduction in 1998. In this time the technology stack has changed frequently, more recently in the web sphere leaping from JSP, UIX and Struts to JavaServer Faces. This presents a challenge to old and new developers alike. Do you see a future of stability or more change?

A) As I mentioned above, we see JSF as hopefully the last “paradigm shift” in J2EE web interface building technologies. As part of the expert group, we’ve insured it is open and extensible enough to permit vendors to develop rich, sophisticated component libraries without having to change the fundamental model of how things fit work or what a developer needs to know to build applications with JSF components. So, in short, I see a future of more stability in this areA)

Q) Java and its relating thick web technology stack has come under attack more recently by reported simplified development web frameworks such as Ruby on Rails (and potentially Microsoft’s .Net). What’s your analysis on these technologies and their contrasts with Java and the facilities provided through JDeveloper?

A) I’ve only just scratched the surface of Ruby on Rails, but my impression of watching the online screencasts of building an “application” in 10 minutes is that I could build that same application in less time with JDeveloper and ADF. Functionality-wise, JDeveloper 10.1.3 holds it own in any kind of comparison with Microsoft Visual Studio 2005, except that our fully-loaded product is free and the applications you build with it can deploy to any platform.

Q) With the significant 10.1.3 release behind you, what new features are we likely to see in JDeveloper’s future? Any features that will disappear?

A) We’re working hard on making it easier to build end-user customization into applications, which is a required feature for many portal-style applications in the real world, but very hard to implement in general. We’re also investing a lot of energy in taking our declarative development features in ADF Business Components to the next level to further simplify the next wave of common application patterns that we see our internal and external customers doing most frequently. Finally, we’re already well along the path to implementing additional ADF Faces JSF controls that improve the AJAX-style interactivity of the browser interface. Same JSF architecture, even richer component options being added to the already rich set we offer today. These are all ingredients that are tablestakes features for the coming Oracle Fusion Applications wave, but have the nice side-effect of bringing incredible new power to all JDeveloper/ADF users in the process.

Q) Oracle recently announced that ADF Faces, Oracle's JavaServer Faces implementation will be donated to the Open Source Apache Faces project as Apache Faces Cherokee, with key Oracle programmers supporting the initiative. What were the reasons for the donation and what key benefits will this provide ADF Faces users in your opinion?

I don’t think I can do a better job than Jonas has already done on answering this question here: :)

(This article is a reprint of the article I published in the quarterly AUSOUG magazine Summer 06 edition. I'd like to extend my thanks to Steve Muench for agreeing to the interview, and Brenden Anstey from Delexian and Ray Tindall from Sage Computing Services for their input on this Q&A article.)


Anonymous said...

Welcome to the world of blogs Chris!

Anthony said...

Chris I understand Jdeveloper is advancing in ease of use and functionality. However, I do not understand the J2ee for Forms developers drive. From what I have read Oracle will be supporting forms for at least a decade. Don't misunderstand me I have began to use jdev/J2EE and will continue to explore it. Im unsure which platform should I use for continued development ? both are advancing. jDev 10.1.3 with JSF is good but Forms 11g due in April. Which platform is Oracles preferred platform and why.


Chris Muir said...

For awhile the drive to JDev from Forms was the thought that Oracle was going to drop Forms. But this has been pretty much ruled out for the next while by Oracle's JDev/Forms team.

(However I don't think the comments from Oracle are a big deal, in particular the comment that they'll support it for another decade. Since Forms 4.5 there has been little change to the core product, mainly the ability to deploy to the 3 tier architecture in my honest opinion, with a few other flashy additions. So what's to support? It's a pretty stable product. However is there money still to be made out of support?: Yes... thus why Oracle will continue to support it)

I see the importance of learning JDev from a *Forms* programmer's point-of-view with the following reasons:

1) Career advancement
2) There is little innovation in the Forms world. It's great for editing data master-detail.... but, um, what else?
3) Forms skills will go the way of Cobol programmers as the majority of Forms sites become legacy systems only

I also think that Forms has a number of limitations, including poor scalability, poor code reuse, an antiquated IDE, too strong a coupling with the DB, among other things. These my own opinion.

Don't get me wrong, there is still a market for Forms particularly in legacy systems, and there is still a need for new Forms programmers to maintain and extend existing systems. Mind you Forms is also a great place for Oracle programmers to retire. And I can guarantee you wont see any (long-term successful) large scale internet deployments of Forms to the general public anytime soon.

As for why it is Oracle's preferred platform? Why not? It's their product isn't it? Why wouldn't they pursue it? They've built it around their needs.

All above my $0.02. Opinions may vary dependent on weather conditions ;)


InfoCaptor said...

Hi Chris,
Congratulations on your blog! It was great meeting you at the Melbourne OAUG.

Nice iterview too!