El viernes, 29 de noviembre de 2013 00:51:25 UTC-3, Stephen Haberman 
escribió:
>
>
> > implemented as a Java 8 compiler plugin (extension point) 
>
> Interesting! I had not heard of these before: 
>

It's curious, I googled about Java 8 compiler plugins when RayC said that 
you talked about a new code-gen feature in Java 8 
 

> It looks like these compiler plugins use "com.sun" packages, and are 
> not a JSR, which AFAIK means no Eclipse IDE nor ecj support? What does 
> that mean for your GWT-free deferred binding proposal? 
>

Yes, compiler plugins are an experimental feature, just like annotation 
processing tool was in Java 5. I hope it will be formalized in future Java 
versions. My plan is, as a first step, to externalize the Rebind annotation 
and the Rebinding.create() method/class (a GWT-free replacement for 
GWT.create()). These could be in an external package, like rebinding 
(javax.rebinding would be an ideal :-P). Think about this API as a kind of 
JSR330, a minimalistic API describing only what should be done, but nothing 
about how to do it. Java 8 would implement it as a compiler plugin, GWT as 
a compiler improvement (we already have it, just look at my github profile 
:-P). 
In a second step, we could externalize the generator API, may be in a 
rebinding.generator package (again, an ideal would be 
javax.rebinding.generator). GWT-free generators should use 
javax.lang.model.type.*<http://docs.oracle.com/javase/7/docs/api/javax/lang/model/type/package-summary.html>
 instead 
of 
com.google.gwt.core.ext.typeinfo.*<http://www.gwtproject.org/javadoc/latest/com/google/gwt/core/ext/typeinfo/package-summary.html>
 . 
In Java 8, these could be implemented as compiler plugins. In GWT, these 
new generators would be a kind of wrappers for old generators.
In a third step, we could externalize the deferred binding configuration 
(i.e. *.gwt.xml files). Annotations and/or guice like modules are 
interesting options.
 

> That aside, I think a GWT-free deferred binding API would be pretty 
> sexy. If one were starting GWT from scratch, I'd naively assert/agree 
> that the problems of "build-time codegen" and "transpiling .java to .js" 
> are orthogonal, and so should be tackled separately. Which would 
> ideally make both implementations smaller/simpler/better. 
>

Yes, in and ideal world, I would like to have these compilation steps:

JavaCode => JavaToJRibbleCompiler (Java 8 compiler plugin) => JRibbleCode
JRibbleCode => JRibbleToJavaScriptCompiler => JavaScriptCode

As we live in a dirty corrupted world, we must replicate implementations. 
For JRE/Android, we could implement it as Java 8 plugin/JDT extension (if 
it exists)/whatever. In GWT, as a compiler enhancement (It already exists!).

Anyway, it's really exciting to see your contributions, Andres, your 
> write up was very good. 


You are welcome, thanks for your feedback! 

- Andrés Testi

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit-contributors+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to