Summary of the event (in English)
Java IDE day is supported by
The future of Java IDEs
The following is a transcript of the panel that took place during the Java IDE Day in Genova.
Moderator: Paolo Predonzani
Question1: We have here three IDE's (NetBeans, JDeveloper, IntelliJ IDEA) represented by yourselves and there are a number of other IDE's on the market. We think this is great - we like to be able to choose between products from different vendors. The question is: what is the differentiation? Where should the battle be fought? How can you be different? Please answer not only in terms features but consider also support, target market, quality and compatibility.
Roman Strobl: I think it is a good thing that there are different IDE's because the competition, as we saw today, forces each of the vendors to add new features so the IDE's get better and better. There is also a downside in that, if you want to use different IDE's, you have to learn them. This is the only negative point, but overall there are mainly positive points. Regarding differentiation, different vendors provide different stacks. For instance, we at Sun have NetBeans, we have the Glassfish application server, we have MySQL, etc, so we provide the best support for our technologies. What I would suggest to people is: if you have to choose an IDE, choose your vendor first. It can be Sun, Oracle, IBM, etc. Eventually you will find that NetBeans is the best IDE for Sun technology, JDeveloper is the best for Oracle technology and so on.
Paolo Ramasso: One of the main goals of our IDE is to be hot pluggable with almost any kind of application server. By changing the configuration you can deploy in the very same way to our application server or any other from other vendors. We also give great importance to SOA development. This would be a differentiator for us because after deploying our BPEL PM you can hook it up and work with any kind of SOA environment. We also allow to design data transfers and transformations using ESB (Enterprise Service Bus), and finally deploying to our BPEL engine running in different containers with a simple mouse click. JDeveloper is free but you can also buy support which is provided by a worldwide team. JDeveloper is also for us a good way to promote and make our middleware infrastructure more popular.
Vaclav Pech: In my opinion, comparing the tools by feature lists only scratches the surface. It doesn't really reveal the qualities of the different IDE's, especially since all the IDE's are pretty good. Where IntelliJ IDEA stands out is the quality, the depth, the consistency and the intelligence offered by the tool to developers. In my presentation you saw the support you get when you edit named queries and how you can refactor your entities without fear of breaking named queries. You saw how you can write Java code without defining all the classes - you can define them later. That's what really differentiates IDEA from the others. Our ultimate goal is the developer's productivity so that when you use the tool and write the code you are as fast as possible. The tool tries to guess what you want to achieve and tries to help you as much as possible. Plus we want to be around when you need help. We provide, for free, round the clock technical support. Any time you have a problem you send us an email, call us on skype or use our on-line forum and we provide pretty quickly an answer to your problems.
Question2: Where do you get your ideas to develop the next features of your IDE's? How much do you listen to your users and how much is it internal innovation?
Paolo Ramasso: On the Oracle web site (OTN - Oracle Technology Network) there are lots of forums about many subjects, including jdeveloper IDE. There are also OTN polls. For instance as soon as you download a product you are asked a set of questions like where do you use this product? do you use any other similar products? what do you like/dislike in the product? Furthermore now that JDeveloper is free, there are many more people using it around the world and posting to Jdev forum. Also there are a number of internal projects using our technology. Another very good channel is through Oracle consultants facing customers every day.
Vaclav Pech: Our innovation is driven by IntelliJ IDEA's community of users. We also listen to a number of visionnaires, who share their visions with us. Finally we watch the direction technology is going. These are the three sources of inspiration that drive our innovation. You can easily become part of this if you participate in our (EAP) Early Access Program. This is the place where people talk, discuss, and suggest ideas. They talk between themselves and with the developers of IntelliJ IDEA. So together they come to a conclusion on what is the best solution to a particular problem, then we implement it and people can try it. Through this iterative process we deliver the functionality that our users want. That's our main force. Our only goal is to deliver an IDE that suits developers.
Roman Strobl: NetBeans is slightly different compared to JDeveloper and IntelliJ IDEA because it is an open source project. The community's involvement is even larger so we listen a lot to it. Also a lot of code is contributed from the community: somebody starts his own plug-in and one day it is integrated in the main distribution. There are different channels. One is the bug system, where anyone can file a bug or, even better, a patch that can eventually be accepted. Also myself and the other evangelists go to events where we get feedback that we can pass on to the NetBeans developers. Finally we have contributors from other companies. So the process is more distributed. There is no single point of control.
Question 3: There are many frameworks that allow dynamic bindings between beans or between beans and web applications, e.g. developed in JSF. IDE's help in the development of those. However it can be difficult to debug these applications because some errors are generated at run-time, while they are not detected at compile time. What support do you offer or plan to offer in this area?
Vaclav Pech: I have good news for you. IntelliJ IDEA already detects these problems. So when you write a JSP/JSF page and you use expression language, if you refer to a property that does not exist then you get a warning. Or when you edit a Spring configuration file and use auto-wiring, if you have two beans that can fit for that auto-wiring, Spring throws a run-time exception - because it doesn't know which bean to choose. IntelliJ IDEA gives you a warning. So this is part of the intelligence of the tool.
Roman Strobl: We currently don't have any such features. We want to do something IntelliJ IDEA does as well, i.e., to improve the number of inspections. We currently have a few but we plan to have more in the future. Also if you use beans binding, you have the property chooser that can help you.
Paolo Ramasso: We have some help in the UI editor. If you mistype something like the name of a property, you get the errors highlighted with different colors in UI editor. If you use ADF with visual drag-and-drop it is quite difficult to make a mistake because the tool automatically handles the binding for you. However if you make changes after the automatic binding and you get an error you have to check the code to find the problem. There is also a very good error detection at run-time thanks to a set of logging properties, so if you should get an error at run-time you can track its source.
Question 4: Users often come to IDE's because these are the place where different technologies meet together: we have seen today support for coding, for testing, for integration with application servers, for web UI's, for client-side UI's, and so on. So many different pieces meet in one place and you can develop a complete application without ever leaving the IDE. What do you think is missing from this picture? What are the plans for your next release?
Roman Strobl: I think integration of different languages, like Groovy or JRuby, is going to be more important in the future because people are going to use more than one language, so there is a need for an integration of those. Another thing for the more distant future is a web-based IDE: an IDE that runs not as a desktop application but as a web application. I think this is a cool idea that we are going to see in the future.