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