JavaOne2014

From APIDesign

(Difference between revisions)
Jump to: navigation, search
(API Design for the Lazy Ones)
Current revision (04:15, 4 January 2017) (edit) (undo)
(CON4946: API Design Checklist)
 
(38 intermediate revisions not shown.)
Line 1: Line 1:
Time for another [[JavaOne]] proposals. I am not sure I really want to travel across the Ocean, but my friends encourage me to submit some talks, so let's try it.
Time for another [[JavaOne]] proposals. I am not sure I really want to travel across the Ocean, but my friends encourage me to submit some talks, so let's try it.
-
== [[Java]] & [[iOS]] Panel ==
+
== Accepted ==
 +
 
 +
Looks like my karma of being [[JavaOne2011]] rock star is gone. Only few of my submissions got accepted. Is [[DukeScript]] doing something wrong? At least the talks about [[API]] are still being accepted. However I promised a checklist and I don't have any, will need to make something up in the next three months. The BOF with [[RoboVM]] guys will certainly be fun - is there any other person with [[VM]] insight to join us?
 +
 
 +
=== BOF4941: Virtually Inside-Out! ===
 +
 
 +
Monday Sep 29, 19:00 - 19:45, Moscone South - 305
 +
 
 +
 
 +
Designing your own virtual machine? Interested in byte-code? Or just curious to know how your favorite [[Java]] language construct (think of [[Closures|lambdas]]) transfers into the native form by your[[VM]]? Join the authors of alternative [[VM|Java virtual machines]] to ask and learn!
 +
 
 +
The session brings the guys taking [[Java]] to new devices (like [[iOS]] as [[RoboVM]] does or into a browser as done by [[Bck2Brwsr]] [[VM]], [[Doppio]] or [[TeaVM]]) to walk through their code and discuss similarities and differences between their virtual machines.
 +
 
 +
In no way, this is an introductory talk! Just a few slides. Most of the time spent digging through internals of our [[VM]]s in a code editor or debugger showing the most gory details one always wanted to know about, but were afraid to ask.
 +
 
 +
Bring your questions! Learn how [[VM]]s of your favorite language looks inside-out!
 +
 
 +
=== TUT4890: How to program JavaScript in Java ===
 +
 
 +
Tuesday Sep 30, 8:30 - 10:30: Hilton - Plaza A
 +
 
 +
Let's do a bit of [[DukeScript]] programming!
 +
 
 +
=== CON4946: [[API Design Checklist]] ===
 +
 
 +
Tuesday Sep 30, 12:30 - 13:30, Hilton - Imperial Ballroom A
 +
 
 +
{{:API Design Checkllist}}
 +
 
 +
=== CON6091: [[DukeScript]]: How to Put the Java into JavaScript ===
 +
 
 +
Monday Sep 29, 14:30-15:30 Hilton Golden Gate 4/5
 +
 
 +
This is [[Toni]]'s talk, but I am sure I'll be around.
 +
 
 +
== Rejected ==
 +
 
 +
 
 +
=== [[Java]] & [[iOS]] Panel ===
I was invited by Shai to join panel about various strategies to get [[Java]] on to [[iOS]]. Originally I was supposed to talk about [[Bck2Brwsr]] [[VM]], but then we agreed, it will be better to focus on [[DukeScript]]. Either me or somebody else from the [[DukeScript]] community will join the panel.
I was invited by Shai to join panel about various strategies to get [[Java]] on to [[iOS]]. Originally I was supposed to talk about [[Bck2Brwsr]] [[VM]], but then we agreed, it will be better to focus on [[DukeScript]]. Either me or somebody else from the [[DukeScript]] community will join the panel.
-
== Gateway to All Screens of Your Life ==
+
=== CON4951: Gateway to All Screens of Your Life ===
-
The World Wide Web celebrated its 25th year in March ([https://pbs.twimg.com/media/Bioc_Y5IEAAAfzp.jpg illustration photo]). However the Web is no longer the same as it used to be at the beginning. Instead of browsers that connect to static [[HTML]] pages served by simple [[Apache]] servers out there, we have dynamic ecosystem of small devices running all over the globe and talking to each other in ways unimaginable back then.
+
The World Wide Web celebrated its 25th birthday in March ([https://pbs.twimg.com/media/Bioc_Y5IEAAAfzp.jpg illustration photo]). However the Web is no longer the same as it used to be at the beginning. Instead of browsers that connect to static [[HTML]] pages served by simple [[Apache]] servers out there, we have dynamic ecosystem of small devices running all over the globe and talking to each other in ways unimaginable back then.
Also the presentation changed. Rather than using browser for everything the user interface consumers are getting more and more used to dedicated applications installed from various ''stores''. [[Linux]] distributions were using such application repositories for ages and now, when phones and tablets popularized this style among regular users, each [[OS]] is coming up with its own ''store''.
Also the presentation changed. Rather than using browser for everything the user interface consumers are getting more and more used to dedicated applications installed from various ''stores''. [[Linux]] distributions were using such application repositories for ages and now, when phones and tablets popularized this style among regular users, each [[OS]] is coming up with its own ''store''.
Line 13: Line 51:
Developing applications for such heterogeneous [[environment]] is however bringing its own challenges - unless we harness the power of [[Java]] and boost its ability to ''Write Once, Run Anywhere'' to new dimensions!
Developing applications for such heterogeneous [[environment]] is however bringing its own challenges - unless we harness the power of [[Java]] and boost its ability to ''Write Once, Run Anywhere'' to new dimensions!
-
Let us show you how to developer services ready for the [[wikipedia:Internet_of_things|IoT]] age with the help of [[OSGi]] services. Let use present them and control them in a unified way on your desktop, [[Android]], [[iOS]], in a browser or a device dedicated LCD screen with the help of [[DukeScript]]. Let us show you how to package your applications to be ready for ''store''-like distributions.
+
Let us show you how to develop services ready for the [[wikipedia:Internet_of_things|IoT age]] with the help of [[OSGi]] services. Let use present them and control them in a unified way on your desktop, [[Android]], [[iOS]], in a browser or a device dedicated LCD screen with the help of [[DukeScript]]. Let us show you how to package your applications to be ready for ''store''-like distributions.
-
== API Design for the Lazy Ones ==
 
-
[[Good]] design skills are essential for easier acceptance of your [[API]] and through its perspective also your products. [[Java]] has been perceived as a verbose language, where one has to type more to perform similar functionality as in other, typically scripting languages.
+
=== CON4933: Java & JS Synergy. Together at Last! ===
-
Such verbosity is common, but not necessary. There are advanced design techniques that allow our users to focus only on their business logic, express it with few lines and auto-generate the boiler plate code on the background, all using standard [[Java]] libraries!
+
While [[Java]] and [[JavaScript]] languages share the same prefix and while the latter was marketed as a scripting language for the first one, it comes with no surprise that these languages are completely different. For many years the [[JavaScript]] was a laughed out younger brother of [[Java]], never treated seriously.
-
Let us walk you through the basics of the [[JavaC]] plugin infrastructure and give with its help design an [[API]] which allows us to be more effective, compact (while not loosing type safety) than similar [[JavaScript]] version. Let us show how good IDE support one can get when using such API!
+
However things have changed. [[JavaScript]] made significant leaps forward while [[Java]] took a long, deep breath. [[JavaScript]] increasing popularity is built on its instant availability in every browser, yet [[JavaScript]] is also driving innovation: frameworks like [[Angular.js]] or [[Knockout.js]] are reshaping the way we think about [[MVC]] and how we allow developer/designer interaction. Progress is however not restricted to client side: [[V8]] is solid enough [[VM]] to run server side applications and [[NodeJS]] programming model brought event driven server side programming to masses. More and more developers have to ask what part of their application should be in [[Java]] and what in [[JavaScript]]? What tools to use to develop and debug each of such parts? How do I make those parts naturally work together? Wouldn't it be easier to give up on [[Java]] completely? Of course not, you aren't at [[JavaOne|JavaScriptOne]]!
-
Let us demonstrate the importance of a [https://twitter.com/ApiUsabilityTst proper API usability study] and demonstrate how it can improve the overall easiness of ones [[API]]!
+
Rather than finding differences, let us seek similarities. Let us bring [[Java]] and [[JavaScript]] closer and demonstrate how one can smoothly mix code in these languages. Pass objects between those systems without any barrier. Call [[JavaScript]] from [[Java]] and [[Java]] from [[JavaScript]]. Do it synchronously or asynchronously. In a single process or over the wire. Spice existing [[NodeJS]] application with usage of any [[Java]] library. Beautify your [[Java]] application with any [[JavaScript]] framework out there and [[HTML]]5 and CSS. Step by step analyse what is happening in such mixed system. Inspect [[HTML]] elements driven by [[Java]] with top-notch tools. Write once and deploy to browser, server, [[iOS]], [[Android]], etc.
-
== One Language to Rule them All! ==
+
Let us show you the real synergy between [[Java]] and its script. Let us show you the [[JavaScript]] as it was meant to be!

Current revision

Time for another JavaOne proposals. I am not sure I really want to travel across the Ocean, but my friends encourage me to submit some talks, so let's try it.

Contents

Accepted

Looks like my karma of being JavaOne2011 rock star is gone. Only few of my submissions got accepted. Is DukeScript doing something wrong? At least the talks about API are still being accepted. However I promised a checklist and I don't have any, will need to make something up in the next three months. The BOF with RoboVM guys will certainly be fun - is there any other person with VM insight to join us?

BOF4941: Virtually Inside-Out!

Monday Sep 29, 19:00 - 19:45, Moscone South - 305


Designing your own virtual machine? Interested in byte-code? Or just curious to know how your favorite Java language construct (think of lambdas) transfers into the native form by yourVM? Join the authors of alternative Java virtual machines to ask and learn!

The session brings the guys taking Java to new devices (like iOS as RoboVM does or into a browser as done by Bck2Brwsr VM, Doppio or TeaVM) to walk through their code and discuss similarities and differences between their virtual machines.

In no way, this is an introductory talk! Just a few slides. Most of the time spent digging through internals of our VMs in a code editor or debugger showing the most gory details one always wanted to know about, but were afraid to ask.

Bring your questions! Learn how VMs of your favorite language looks inside-out!

TUT4890: How to program JavaScript in Java

 Tuesday Sep 30, 8:30 - 10:30: Hilton - Plaza A

Let's do a bit of DukeScript programming!

CON4946: API Design Checklist

 Tuesday Sep 30, 12:30 - 13:30, Hilton - Imperial Ballroom A

API Design Checkllist

CON6091: DukeScript: How to Put the Java into JavaScript

Monday Sep 29, 14:30-15:30 Hilton Golden Gate 4/5

This is Toni's talk, but I am sure I'll be around.

Rejected

Java & iOS Panel

I was invited by Shai to join panel about various strategies to get Java on to iOS. Originally I was supposed to talk about Bck2Brwsr VM, but then we agreed, it will be better to focus on DukeScript. Either me or somebody else from the DukeScript community will join the panel.

CON4951: Gateway to All Screens of Your Life

The World Wide Web celebrated its 25th birthday in March (illustration photo). However the Web is no longer the same as it used to be at the beginning. Instead of browsers that connect to static HTML pages served by simple Apache servers out there, we have dynamic ecosystem of small devices running all over the globe and talking to each other in ways unimaginable back then.

Also the presentation changed. Rather than using browser for everything the user interface consumers are getting more and more used to dedicated applications installed from various stores. Linux distributions were using such application repositories for ages and now, when phones and tablets popularized this style among regular users, each OS is coming up with its own store.

Developing applications for such heterogeneous environment is however bringing its own challenges - unless we harness the power of Java and boost its ability to Write Once, Run Anywhere to new dimensions!

Let us show you how to develop services ready for the IoT age with the help of OSGi services. Let use present them and control them in a unified way on your desktop, Android, iOS, in a browser or a device dedicated LCD screen with the help of DukeScript. Let us show you how to package your applications to be ready for store-like distributions.


CON4933: Java & JS Synergy. Together at Last!

While Java and JavaScript languages share the same prefix and while the latter was marketed as a scripting language for the first one, it comes with no surprise that these languages are completely different. For many years the JavaScript was a laughed out younger brother of Java, never treated seriously.

However things have changed. JavaScript made significant leaps forward while Java took a long, deep breath. JavaScript increasing popularity is built on its instant availability in every browser, yet JavaScript is also driving innovation: frameworks like Angular.js or Knockout.js are reshaping the way we think about MVC and how we allow developer/designer interaction. Progress is however not restricted to client side: V8 is solid enough VM to run server side applications and NodeJS programming model brought event driven server side programming to masses. More and more developers have to ask what part of their application should be in Java and what in JavaScript? What tools to use to develop and debug each of such parts? How do I make those parts naturally work together? Wouldn't it be easier to give up on Java completely? Of course not, you aren't at JavaScriptOne!

Rather than finding differences, let us seek similarities. Let us bring Java and JavaScript closer and demonstrate how one can smoothly mix code in these languages. Pass objects between those systems without any barrier. Call JavaScript from Java and Java from JavaScript. Do it synchronously or asynchronously. In a single process or over the wire. Spice existing NodeJS application with usage of any Java library. Beautify your Java application with any JavaScript framework out there and HTML5 and CSS. Step by step analyse what is happening in such mixed system. Inspect HTML elements driven by Java with top-notch tools. Write once and deploy to browser, server, iOS, Android, etc.

Let us show you the real synergy between Java and its script. Let us show you the JavaScript as it was meant to be!

Personal tools
buy