JavaOne2011

From APIDesign

(Difference between revisions)
Jump to: navigation, search
(Onward! Rebuilding IDEs around Shared Ground)
Current revision (04:54, 29 June 2020) (edit) (undo)
(Advanced Annotation Processing with JSR 269)
 
(19 intermediate revisions not shown.)
Line 1: Line 1:
-
[[JavaOne]] 2011 is around the corner, the question is what to talk about. Here are few thoughts:
+
I have participated at [[JavaOne]] 2011. Three of my submissions were [[#Accepted|accepted]], some of them [[#Rejected|rejected]] (but I resubmitted them for [[JavaOne2012]]). Anyway I was in Califonia at the end of September 2011 and I enjoyed the talks quite a lot.
 +
== Accepted ==
-
== Advanced Annotation Processing with JSR 269 ==
+
=== 23320: Paradoxes of API Design ===
-
Forget about runtime [[annotation]]s as used for example by JavaEE or [[Spring]]. They don't worth a penny compared to advanced compiled time [[annotation]]s processed by [[JavaC]]'s [[AnnotationProcessor]]s during compilation! [[Annotation]]s of this kind change the way we think about [[Java]]. They can improve scalability, performance and simplicity of our [[Java]] frameworks without the hassle of on startup processing so common in the EE space these days.
+
'''Wednesday, 10:00-11:00, Parc 55''': [[GeeCON]] session was successful, let's try to talk about [[ParadoxesVideo|paradoxes]] at [[JavaOne]] as well.
-
Join us to learn how to design a [[DSL|Domain Specific Language]] in [[Java]], how to improve the scalability of modular applications, how to improve startup time by building [[CompileTimeCache]]s, how to mimic the flexibility of [[LiveDB|Anything on Rails]] in plain [[Java]], how to simplify your I18N practices! Learn from our rich, more than five years experience of building [[API]]s around [[AnnotationProcessor]]s. Learn how [[AnnotationProcessor]]s simplify integration of your technology into any [[Java]]6 compliant IDE.
+
=== 23640 - The How-To of Migrating Legacy Applications to Module Systems ===
 +
 
 +
'''Thursday, 12:30-13:30, Parc 55''': John Langton,
 +
Andrzej Olszak, [[Geertjan]] and [[User:JaroslavTulach|me]]. Andrzej is author of ''Featureous'' tool that helps to [[modularize]] existing monolithic applications. John successfully used that tool to modularize his ''NDVis''. That is going to be really enlightning talk. I am looking forward to be part of it!
 +
 
 +
As far as my part goes, I'll be presenting how we modularized [[NetBeans]] ''Open IDE'' [[API]]s in 2005. Btw. I have successfully applied that experience when [[Modular Java SE|modularizing Java]] itself. Anyway, looking from the pespective of ''Featurerous'', the whole [http://openide.netbeans.org/proposals/arch/modularize.html modularization project of mine] will look like an artifact from a stone age!
 +
 
 +
=== 19720 - Patterns for Modularity II: Revenge of the Patterns ===
 +
 
 +
'''Thurday, 14:00-15:00, Hilton''': Zoran Ševarac, Toni Epple and [[User:JaroslavTulach|me]]. Zoran discovered Kirkk's [http://www.kirkk.com/modularity/chapters/ Modular Architecture] book and literarly forced me to read it. I don't regret, it was interesting read.
 +
 
 +
Zoran will likely quote the book a bit and (to make our session more entertaining) I will try to get into an argument with him. Because there is a bit wisdom to add on top of Kirkk's observations. I am ready to share it. Don't forget to stop by to get wiser!
 +
 
 +
The slides are available [[Media:Patterns_for_Modularity_II-_Revenge_of_the_Patterns.pdf‎|here]].
 +
 
 +
== Rejected ==
 +
 
 +
My record indicates that I usually need to propose a topic for [[JavaOne]] twice. I proposed the [[paradox]]es talk for [[JavaOne2010]] and it was rejected. Now, a [[JavaOne2011|year later]], it got accepted. That is why get a smell from the content that will be available in 2012 by reading list of my proposals rejected [[JavaOne2011|this year]].
 +
 
 +
=== Advanced Annotation Processing with JSR 269 ===
 +
 
 +
Forget about runtime [[annotation]]s as used for example by [[JavaEE]] or [[Spring]]. They don't worth a penny compared to advanced compile-time [[annotation]]s processed by [[JavaC]]'s [[AnnotationProcessor|annotation processor]]s during compilation! [[Annotation]]s of this kind change the way we think about [[Java]]. They can improve scalability, performance, and simplicity of our [[Java]] frameworks without the hassle of on-startup processing so common in the EE space these days.
 +
 
 +
Join us to learn how to design a [[DSL|Domain Specific Language]] in [[Java]], how to improve the scalability of modular applications, how to improve startup time by building [[CompileTimeCache|compile-time caches]], how to mimic the flexibility of [[LiveDB|Anything on Rails]] in plain [[Java]], and how to simplify your I18N practices! Learn from our rich experience of building [[API]]s around [[AnnotationProcessor|annotation processors]]. Learn how [[AnnotationProcessor]]s simplify integration of your technology into any [[Java]]6 compliant IDE.
Join us to understand the power of modern [[Java]]!
Join us to understand the power of modern [[Java]]!
-
== Onward! Rebuilding IDEs around Shared Ground ==
+
=== Onward! Rebuilding IDEs around Shared Ground ===
-
There is just one IDE on the [[Java]] market that [[Oracle]] does not contribute to. Otherwise [[Oracle]] is involved in [[Eclipse Foundation]], [[NetBeans]].org project and of course its primary IDE for support of [[Oracle]]'s enterprise technologies - [[JDeveloper]]. There has been a little component sharing between these three projects so far. This is fine when achieving other short term goals, but unsustainable as a long term strategy. Something has to be done about that.
+
[[Oracle]] is involved in almost all the [[Java]] IDEs on the market today. [[Oracle]] is a member of [[Eclipse]] Foundation, [[NetBeans]].org project, and, of course, produces [[JDeveloper]], its primary IDE for support of [[Oracle]]'s enterprise technologies. There has not been very much component sharing between these three projects so far. This is fine when achieving other short term goals, but unsustainable as a long term strategy. Something has to be done about that!
-
[[NetBeans]] team is exploring the options of component sharability for few years. Join our talk to get a small overview of what we did and what we plan. Join us to see some cool demos showing bits of [[Eclipse]] running in [[NetBeans]] or [[JDeveloper]] and various other combinations of technologies. Join us to learn how to abstract, redesign, [[bridge]] and align projects that were diverging for years. Join us to understand the importance of common [[module]] system for [[Java]].
+
[[NetBeans]] team is exploring component sharability for several years already. Join our talk to get a small overview of what we've done so far and what's comming up. Join us to see some cool demos showing bits of [[Eclipse]] running in [[NetBeans]] or [[JDeveloper]] and various other combinations of these technologies. Join us to learn how to apply our experience to your project. How to abstract, redesign, [[bridge]] and align projects that were diverging for years. Join us to understand the importance of common ground for IDEs as well as for [[Java]].
Sharing can make our products better. Join us to share!
Sharing can make our products better. Join us to share!
-
== BOF: Experiences from Building the Fastest OSGi Container on the Planet ==
+
=== BOF: Experiences from Building the Fastest OSGi Container on the Planet ===
-
What is the fastest [[OSGi]] container? [[Felix]] or [[Equinox]]? None! The fastest [[OSGi]] container is [[Netbinox]]! But then, how do you measure how fast an [[OSGi]] container is anyway?
+
What is the fastest [[OSGi]] container? [[Felix]] or [[Equinox]]? Neither! The fastest [[OSGi]] container is [[Netbinox]]! But then, how do you measure how fast an [[OSGi]] container is, anyway?
-
[[NetBeans]] project adopted [[OSGi]] in its 6.9 release. [[NetBeans]] platform applications can choose from running on top of [[Felix]] or [[Equinox]]. During work on version 7.0 we concentrated on optimizing the speed of [[startup]], especially ''daily morning launch''. This kind of [[startup|start]], when all OS caches are completely empty is very important for large desktop applications. By joining the the [[netbeans:performance|performance]] optimizations done to improve [[NetBeans]] IDE [[startup]] and [[Equinox]] we can start [[JDeveloper]] about 30% faster than plain [[Equinox]] could.
+
The [[NetBeans]] project adopted [[OSGi]] in its 6.9 release. Now, [[NetBeans]] Platform applications can choose from running on top of [[Felix]] or [[Equinox]]. During work on version 7.0, we concentrated on optimizing the speed of [[startup]], especially ''daily morning launch''. This kind of [[startup|start]], when all OS I/O caches are completely empty is very important for large desktop applications. By joining the the [[netbeans:performance|performance]] optimizations done to improve [[NetBeans]] IDE [[startup]] and [[Equinox]] we can start [[JDeveloper]] about 30% faster than plain [[Equinox]] could.
Hacking around [[OSGi]] container internals? Planning to embbed [[Felix]] or [[Equinox]] in your framework? Join us to learn how to do that effectively!
Hacking around [[OSGi]] container internals? Planning to embbed [[Felix]] or [[Equinox]] in your framework? Join us to learn how to do that effectively!

Current revision

I have participated at JavaOne 2011. Three of my submissions were accepted, some of them rejected (but I resubmitted them for JavaOne2012). Anyway I was in Califonia at the end of September 2011 and I enjoyed the talks quite a lot.

Contents

Accepted

23320: Paradoxes of API Design

Wednesday, 10:00-11:00, Parc 55: GeeCON session was successful, let's try to talk about paradoxes at JavaOne as well.

23640 - The How-To of Migrating Legacy Applications to Module Systems

Thursday, 12:30-13:30, Parc 55: John Langton, Andrzej Olszak, Geertjan and me. Andrzej is author of Featureous tool that helps to modularize existing monolithic applications. John successfully used that tool to modularize his NDVis. That is going to be really enlightning talk. I am looking forward to be part of it!

As far as my part goes, I'll be presenting how we modularized NetBeans Open IDE APIs in 2005. Btw. I have successfully applied that experience when modularizing Java itself. Anyway, looking from the pespective of Featurerous, the whole modularization project of mine will look like an artifact from a stone age!

19720 - Patterns for Modularity II: Revenge of the Patterns

Thurday, 14:00-15:00, Hilton: Zoran Ševarac, Toni Epple and me. Zoran discovered Kirkk's Modular Architecture book and literarly forced me to read it. I don't regret, it was interesting read.

Zoran will likely quote the book a bit and (to make our session more entertaining) I will try to get into an argument with him. Because there is a bit wisdom to add on top of Kirkk's observations. I am ready to share it. Don't forget to stop by to get wiser!

The slides are available here.

Rejected

My record indicates that I usually need to propose a topic for JavaOne twice. I proposed the paradoxes talk for JavaOne2010 and it was rejected. Now, a year later, it got accepted. That is why get a smell from the content that will be available in 2012 by reading list of my proposals rejected this year.

Advanced Annotation Processing with JSR 269

Forget about runtime annotations as used for example by JavaEE or Spring. They don't worth a penny compared to advanced compile-time annotations processed by JavaC's annotation processors during compilation! Annotations of this kind change the way we think about Java. They can improve scalability, performance, and simplicity of our Java frameworks without the hassle of on-startup processing so common in the EE space these days.

Join us to learn how to design a Domain Specific Language in Java, how to improve the scalability of modular applications, how to improve startup time by building compile-time caches, how to mimic the flexibility of Anything on Rails in plain Java, and how to simplify your I18N practices! Learn from our rich experience of building APIs around annotation processors. Learn how AnnotationProcessors simplify integration of your technology into any Java6 compliant IDE.

Join us to understand the power of modern Java!

Onward! Rebuilding IDEs around Shared Ground

Oracle is involved in almost all the Java IDEs on the market today. Oracle is a member of Eclipse Foundation, NetBeans.org project, and, of course, produces JDeveloper, its primary IDE for support of Oracle's enterprise technologies. There has not been very much component sharing between these three projects so far. This is fine when achieving other short term goals, but unsustainable as a long term strategy. Something has to be done about that!

NetBeans team is exploring component sharability for several years already. Join our talk to get a small overview of what we've done so far and what's comming up. Join us to see some cool demos showing bits of Eclipse running in NetBeans or JDeveloper and various other combinations of these technologies. Join us to learn how to apply our experience to your project. How to abstract, redesign, bridge and align projects that were diverging for years. Join us to understand the importance of common ground for IDEs as well as for Java.

Sharing can make our products better. Join us to share!

BOF: Experiences from Building the Fastest OSGi Container on the Planet

What is the fastest OSGi container? Felix or Equinox? Neither! The fastest OSGi container is Netbinox! But then, how do you measure how fast an OSGi container is, anyway?

The NetBeans project adopted OSGi in its 6.9 release. Now, NetBeans Platform applications can choose from running on top of Felix or Equinox. During work on version 7.0, we concentrated on optimizing the speed of startup, especially daily morning launch. This kind of start, when all OS I/O caches are completely empty is very important for large desktop applications. By joining the the performance optimizations done to improve NetBeans IDE startup and Equinox we can start JDeveloper about 30% faster than plain Equinox could.

Hacking around OSGi container internals? Planning to embbed Felix or Equinox in your framework? Join us to learn how to do that effectively!

Personal tools
buy