Search

Categories

Links

Referers

JavaOne: questions

May 15 2006, 02:18:47 PM PDT »Java Comments [11]
If there are any topics you would like me to cover in my BOFs on Wednesday, feel free to add a comment below. If I am not able to cover it on Wednesday, I'll follow up on the blog.
Post a Comment:
Comments are closed for this entry.
Comments:

Hey, what happens with "Crack the Verifier" challenge?

Posted by eu on May 15, 2006 at 05:49 PM PDT #

This is outside my area. Try asking in the JDK community booth #723 (right across from the racetrack).

Posted by Peter von der Ahe on May 15, 2006 at 06:33 PM PDT #

The hard questions, and keep it technical, no BS please. 1. eclipse compiler vs. javac. Why (and especially why do YOU think) not just developers but tool vendors like Intellij are moving to the eclipse compiler when there's already javac? 2. native javac? like jikes... mainly for performance, jsp in particular. 3. why is javac not an open source java.net project? Why not engage opensource developers, rather than wait for eclipse to catch up and pass you by. Just like most everything else Sun has put out. 4. the baby steps you took to expose javac apis are nice, but what's in the oven in the short, medium and long term (obviously we want more!).

Posted by 69.108.204.151 on May 16, 2006 at 02:02 AM PDT #

These are interesting questions.

1. It is not really appropriate for me to speculate on the motives of IntelliJ. Since javac is designed for batch operation and JDT is designed for IDE use, perhaps JDT has an advantage in that area. However, we are continuously exposing internals of javac and adding new features to ease IDE integration. We will share our thoughts in how we can make javac more "accessible" and suited for dynamic usages.

2. I don't believe that a C version of javac would make it much faster and will discuss this at the Compiler BOF. I have some data to back this up.

3. You can download the sources at mustang.dev.java.net and submit fixes on jdk.dev.java.net. (I know that doesn't make javac open source but we are trying to engage developers). I would like to provide a guide to modifying javac and perhaps I can briefly outline the architecture of javac at the compiler BOF.

4. When you say baby steps, are you referring to javax.tools (JSR 199)? That is indeed an API of narrow scope, however, javac implements JSR 269 (which includes a "mirror" API for types and program elements). Also we have added supported public (but not standard) API in com.sun.source which doesn't include the usual "This is NOT part of any API supported by Sun Microsystems." I don't think these are baby steps (just consider a project like Jackpot) but I agree that we are not done. We will demo our "javacviewer" which shows all the data you can extract from javac through supported public API. Personally, I'd be happy to implement an IDE on top of that.

Posted by Peter von der Ahe on May 16, 2006 at 02:58 AM PDT #

IntelliJ is not moving to eclipse compiler. We just feel it necessary to allow the user to choose any external compiler he likes. And still javac seems to be more stable when it comes to compiling java 5 featured code.

Posted by Eugene Vigdorchik on May 16, 2006 at 03:42 AM PDT #

Peter, if you allow me, I would like to make one little clarification.
The Eclipse compiler has multiple purposes. It is obviously integrated into the Eclipse IDE, but is also performing as a command-line tool.
Useful read: http://www.eclipsezone.com/eclipse/forums/t71850.rhtml

Posted by Philippe Mulet on May 16, 2006 at 07:10 AM PDT #

Philippe, if you allow me :) its a good news that JDT core compiler is available as a separate download but do you have freeze some parts of the internal implementation.
The public API doesn't export much info and the internal API changes every week.

I've another remarks, for me, eclipse compiler is a step behind javac in term of 1.5 features (on my last project, 3 months, 5 eclipse compiler bugs found), and i think you can improve it by converting the JDT to use generics. It can help you to find lot of "generics" bugs.

Peter, sorry for trusting your forum

Posted by Rémi Forax on May 16, 2006 at 10:23 AM PDT #

Philippe, I was merely trying to point out that the compilers come from different backgrounds: javac was originally written to perform batch compilations and JDT was originally written to be integrated in an IDE.

Posted by Peter von der Ahe on May 16, 2006 at 11:00 AM PDT #

Rémi, The entry point of the batch compiler has not changed for months. I am talking about the org.eclipse.jdt.internal.compiler.batch.Main class, which is the entry point of the Eclipse batch compiler. This is used by the ant javac task adapter that calls the Eclipse compiler. It depends what you are calling an internal API.

Posted by Olivier Thomann on May 16, 2006 at 12:20 PM PDT #

Remi, we fixed all of your bugs, except for one which soon will be addressed (of course :-)). This to say that our 1.5 support is improving significantly.
Beyond the debate between compiler implementations, I would like to mention that Peter and I had many interactions to clarify some of the language semantics (together with Tim Hanson, compiler man from BEA), and tried to be consistent for the sake of Java community. From these exchanges resulted quite a number of bug reports on all sides... not just in Eclipse :-) So though each of us still thinks his compiler is the greatest, we are trying to serve Java by agreeing on semantics, and believe me, with 1.5, the complexity did increase a lot...

Posted by Philippe Mulet on May 17, 2006 at 03:09 AM PDT #

Peter, I attended both of your BOF sessions last night on Generic usages and Java Programming Language and Compiler Issues for the Java Platform. I tried to go to http://www.cplan.com/javaone2006/contentcatalog to look for your presentation, but it seems like it is not uploaded there. If possible, could you please send me the 2 presentations you had or upload it to the website? Thanks! By the way, the presentations was great! Especially the Generic presentation, I learned a lot from it. The compiler issues presentation was a little too technical for me, but it is still very informative!

Posted by David Chu on May 18, 2006 at 12:09 AM PDT #

Java is a trademark of Sun Microsystems, Inc.
Copyright © 2006,2007 Peter von der Ahé