addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwchatcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscrosseditemptyheartfacebookfolderfullheartglobegmailgoogleimagesinstagramlinklocation-pinmagnifying-glassmailminusmoremuplabelShape 3 + Rectangle 1outlookpersonplusprice-ribbonImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruseryahoo

Compatibility and API Evolution & Querying Massive DataSets in the Cloud

  • Sep 8, 2014 · 6:00 PM
  • This location is shown only to members


RSVPs close the night before the meetup.


• Ruwen Schwedewsky will be presenting a quick talk on using JavaAssist to manipulate Java class byte-code.

• Jens Dietrich from Massey University, NZ will present on the topic of Library compatibility and the difference between Source and Binary compatibility.  This is based on his research over the last year, and a developer survey conducted around the world.

• Kon Soulianidis will preview his upcoming JavaOne talkQuerying Massive Data Sets in the Cloud with BigQuery and Java.

Ruwen's talk:

Ruwen will be demonstrating the use of processing annotations with JavaAssist in order to add behaviour at compile-time.

Ruwen has been using Java since 2005.  He is visiting from Germany where he worked for one of Germany's biggest health insurance firms where wrote his thesis on static code analysis.

Jens' talk:

Real-world programs are neither monolithic nor static – they are constructed using platform and third party libraries, and both programs and libraries continuously evolve in response to change pressure. In case of the Java language, the rules defined in the Java Language and JVM Specs define when library evolution is safe.

These rules distinguish between three types of compatibility - binary, source and behavioural. 

In the first part of this talk I will present some puzzlers (in the style of Joshua Bloch’s famous book) showing the inconsistencies between the different types of compatibilities. In the second part, I will talk about some of the research we did in order to figure out what problems this causes in practise: (1) a developer survey showing that the rules of binary compatibility are not well understood by developers, (2) a repository study showing that this causes real problems in projects, and (3) a study on a set of 100+ popular Java programs that shows that incompatible API evolution is common. At the end, I will talk a little bit about tools and methods that can be used to mitigate some of these problems.


Jens has a MSc and a PhD in Mathematics from the University of Leipzig and has worked with object-oriented technologies (mainly Smalltalk and Java) since 1996. He helped to design and implement some of the first large-scale OO enterprise applications for clients like Mercedes Benz and several large banks in Germany, Switzerland, the UK, the US and Namibia. Jens is now Associate Professor in Software Engineering at Massey University New Zealand.

He is interested in design analysis and refactoring (see for instance, contracts for dynamic component models (such as OSGi) and testing.

Jens is currently visiting Australia to work with Oracle Labs in Brisbane on new algorithms to be used for the static analysis of the Java platform.

Kon's Talk:

In a recent Java-based project for a big Australian telecommunications company, Google BigQuery was selected for back-end data storage. This enabled its client to interactively query a terabyte of data in 25 seconds—as opposed to 30 minutes with a traditional RDBMS. What’s more, it was able to do it with a SQL-like query language and didn’t have to host any of the infrastructure themselves. This presentation discusses what BigQuery is, how it relates to other big data solutions, and the different mechanisms you can use for querying it from a Java client. It also shows how you can leverage the new Java 8 streaming APIs to efficiently stream massive quantities of data into BigQuery.


6:00 - 6:15   Networking Drinks & Pizza
6:15 - 6:25    News
6:25 - 6:35   Ruwens Talk
6:35 - 7:30   Jens Talk
7:30 - 7:40  Break
7:40 - 8:40  Kons Talk

* Subject to change


Thanks to Peoplebank for once again sponsoring the food & beverages, as well as providing their amazing venue.

We'll be giving away a copy of IntelliJ idea thanks to Jetbrains.

Getting there:

Peoplebank offices are on the south-west corner of Flinders Lane and Queen St.  Doors lock at 6pm but someone from Peoplebank will be downstairs to let people in.  If when you get there, no one is present, call [masked] and we'll send someone down. For those driving in, there is flat rate (~$10)  after hours parking on Market St, between flinders lane and flinders st.



Join or login to comment.

Our Sponsors

  • Thoughtworks

    Food Bev + Venue for June, August, Dec '15 meetup

  • Docmosis

    Food + Bev + Nametag + Awesomeness Sponsor for 2015 / 2016

  • Jetbrains

    Prizes for group attendees

  • Aconex

    Venue + Beverage sponsor for Sept.

  • Peoplebank

    Providing a room with a view for our meetup plus food & bev sponsorship

  • N Squared

    MelbJVM's 'AFL Duke' logo. Courtesy: Noel Richards

  • O'Reilly Media

    50% off most ebooks/videos & 40% off most print books. Use code: PCBW

  • Queens Collective

    Melbourne's Home to World-Class Startups. 20 Queen Street

  • Azul Systems

    Food, Beverage & Speaker Sponsorship of MelbJVM 2014 finale.

  • Oracle

    Food and Beverage sponsorship for MelbJVM. Provider of raffle goodies.

  • Plumbr

    Food & beverage sponsor August 2014.

  • Pivotal Inc

    Food and Beverage sponsor for the October 2013 meetup

  • Chronicle

    Food, Beverage & Speaker Sponsorship of the March 13th 2014 meetup

  • Vaadin

    Food, Beverage and feature speaker for Feb 2014 meetup

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy