Vážení příznivci jazyka Java,

Před časem jsem zasílal dva zajímavé testy na ověření, zda Java vývojáři znají rozdíl mezi kompatibilitou Java API tak jak jí vyhodnocuje Java překladač vs. JVM. Testy jsou již nyní uzavřené a výsledky zpracované. Ve zkratce byl potvrzen předpoklad, že Java vývojáři jsou dobře obeznámeni s kompatibilitou na úrovni zdrojových kódů (co lze přeložit), ale již méně znají kompatibilitu na úrovni JVM (co způsobí LinkageError).

Tento týden ve středu 12.2 proběhne na Západočeké univerzitě v Plzni přednáška na toto téma, kterou přednese sám hlavní autor studie. Zájemci jste srdečně zváni. Prednaska se kona od 15h v mistnosti UV115 (vestibul Fakulty Aplikovaných Věd), Univerzitní 22 Plzeň (dálniční sjezd Bory).

Dále uvádím abstrakt a bio údaje přednášejícího, kterým je Jens Dietrich:

Title: Broken Promises: Problems in Java Programs Caused by Incompatible Library Upgrades

Abstract:

It has become common practice to build programs by using libraries. While the benefits of reuse are well known, an often overlooked risk are system runtime failures due to API changes in libraries that evolve independently. Traditionally, the consistency between a program and the libraries it uses is checked at build time when the entire system is compiled and tested. However, the trend towards partially upgrading systems by redeploying only evolved library versions can result in situations where these crucial verification steps are skipped. For Java programs, partial upgrades create additional interesting problems as the compiler and the virtual machine use different rule sets to enforce contracts between the providers and the consumers of APIs.

We have studied the extent of the problem on the qualitas corpus, a data set consisting of Java open-source programs widely used in empirical studies. We found that the above mentioned issues do occur in practice, albeit not on a wide scale. We then developed a set of Java library evolution puzzlers - inspired by Joshua Bloch’s famous book - to find out whether developers are aware of the sometimes subtle differences between source, binary and behavioural compatibility. Over 425 developers responded. I will present some of the (surprising) survey results. I will also challenge the audience to solve some of the puzzlers.


Bio:

Jens Dietrich is Associate Professor at the Engineering School of Massey University in New Zealand. In former lives he studied Math at the University of Leipzig (which started as a offshoot of the University of Prague in 1409) and completed a PhD in Computer Science in 1996. He then worked for the Bauer & Partner Consulting group between 1996 and 1999, designing and implementing large-scale Smalltalk applications for the banking and automotive industry. Between 1999 and 2003 he worked as a development aid consultant in IT technology in Namibia for a German government organisation, before returning to Academia in 2003 by joining Massey.


-------- Original Message --------
Subject: Test rozdílů v kompatibilitě zdrojových kódů a binárních Java knihoven
Date:   Tue, 03 Dec 2013 15:09:46 +0100
From:   Kamil Jezek <kje...@kiv.zcu.cz>
To:     konference@java.cz



Dobrý den

s kolegy se zabývám rozdíly mezi binární kompatibilitiou a kompatibilitou zdrojových kódů v Javě. Tedy mezi tím co je zkompilovatelné, ale způsobí chybu za běhu a naopak. Předpokládáme, že tyto rozdíly nejsou mezi programátory příliš známé, což je problém při tvorbě zpětně kompatibilních aktualizacích knihoven.

Vytvořili jsme dva testy, v případě nedostatku času se dá vyplnit kratší verze testu, pro získání co nejvíce informací je lepší vyplnit delší verzi

kratší verze
https://www.surveymonkey.com/s/LibEvolutionPuzzlersSE

delší verze
https://www.surveymonkey.com/s/LibEvolutionPuzzlers


Test je koncipován tak, že je vždy předložen kód klientského programu, aktuální knihovna a nová verze knihovny. Testovaná osoba odpovídá zda je aktualizace možná bez překompilování, je nutná rekompilace a případně zda se změni chování programu.

Všem kdo se o rozdílnost interpretace Java compileru a virtual machine zajímají, kdo si chtějí oveřit znalosti, nebo se naučit něco nového, doporučuji test vyplnit.


Kamil


--
Ing. Kamil Jezek, Ph.D.

Researcher, NTIS - New Technologies for Information Society
Department of Computer Science and Engineering
University of West Bohemia in Pilsen, CZ


http://www.linkedin.com/in/kamiljezek


Odpovedet emailem