JavaOne2014

From APIDesign

(Difference between revisions)
Jump to: navigation, search
(CON4946: API Design Checklist)
(BOF4941: Virtually Inside-Out!)
Line 7: Line 7:
=== BOF4941: Virtually Inside-Out! ===
=== BOF4941: Virtually Inside-Out! ===
-
Moscone South - 305
+
Monday Sep 29, 19:00 - 19:45, Moscone South - 305
-
Monday Sep 29, 19:00 - 19:45
+
 
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!
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!

Revision as of 18:42, 10 September 2014

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

 Venue / Room: Hilton - Plaza A
 Tuesday Sep 30, 8:30 - 10:30

Let's do a bit of DukeScript programming!

CON4946: API Design Checklist

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

There are essential aspects of good API design that influence the level of acceptance of your API and through the API's perspective also success of your products. One can learn the important facts through own practical experience (and do a lot of mistakes meanwhile) or gain the experience from others (who has already done the mistakes like me when designing NetBeans Platform). Both approaches are possible, yet both require a lot of personal investment.

There is a however simpler and more clueless way: Let's follow an API Design Checklist!

In this short presentation we'll provide an introduciton to ten easy to answer questions and follow checkpoints that will guide you through the process of API design and ensure your API satisfies all the aspects of good technology: it helps its users to speed up their Time To Market, it reduces their total Cost of Ownership and also is cool enough to attract their attention.

The presented checklist will be generally applicable - e.g. useful for any APIs, not only written in Java. The provided examples will be Java related, showing our own experience of designing slick, easy to use, compact, effective, hard to misuse APIs for communication between Java and JavaScript. During the talk we will show how to use JavaC plugin infrastructure effectively to increase comfort of your API users and to build cross-IDE tooling that ensures the best edit/compile feedback possible. We will demonstrate the process of reviewing the APIs and show the increase of quality a good usability study can bring. We show how to create an API that leads to code shorter than in scripting languages while keeping all the benefits of strongly typed language like Java!

We give you ten easy steps to become good API designer!

CON6091: DukeScript: How to Put the Java into JavaScript

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