Java Platform Tradeoffs (Riga 2013)

Preview:

DESCRIPTION

Slides from Java Day Riga 2013 talk.

Citation preview

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.1

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.2

The following is intended to outline our generalproduct direction. It is intended for informationpurposes only, and may not be incorporated intoany contract. It is not a commitment to deliver anymaterial, code, or functionality, and should not berelied upon in making purchasing decisions.The development, release, and timing of anyfeatures or functionality described for Oracle’sproducts remains at the sole discretion of Oracle.

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.3

Java Platform Tradeoffs

Алексей Фёдоров, Oracle

Java Day Riga

28 ноября 2013

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Agenda

Частота выхода апдейтов

Фикс багов ломает совместимость

История про Substring

Совместимость как груз тянущий вниз

История о неизвестных отцах

GUI: Нативный или универсальный?

История про Beep

Как быть хитрому лицензиату?

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.5

Сюжет 1Апдейты: часто или редко?

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.6

Обновления Java и политика

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.7

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.8

Сюжет 2Исправление багов или совместимость?

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.9

Протокол взаимодействия

API spec

(aka Javadoc)

JLS 8 JSR 337 JVMS 8

Standalone

documents

Спецификация конкретной

версии платформы Java

играет роль протокола!

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.10

Какие изменения допустимы?

Предлагаемое изменение Update Major release

Добавить что-нибудь в Public API

(пакет / класс / метод / поле)- +

Удалить что-нибудь из Public API - -*

Добавить что-нибудь в Private API + +

Удалить что-нибудь из Private API +** +

Изменить спецификацию чего-нибудь - +**

Исправить ошибку (несоответствие поведения

требуемому в спецификации)+**,*** +

* - @Deprecated, @Override ** - проанализировать риски

*** - см. следующий слайд

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.11

Adding null key to empty TreeMap without Comparator should throw NPE

Bug 5045147 Bug 2188127

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.12

Adding null key to empty TreeMap without Comparator should throw NPE

Bug 5045147 Bug 2188127

Bug-2-Bug

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.13

Сюжет 3String.substring()

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.14

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.15

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.16

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.17

Since JDK 7u6

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.18

Performance vs. Memory

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.19

Сюжет 4Совместимость или новые фичи?

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.20

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.21

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.22

Сюжет 5Неизвестные отцы

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.23

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.24

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.25

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.26

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.27

Сюжет 6GUI: Нативный или универсальный?

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.28

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.29

Сюжет 7Toolkit.beep()

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.30

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.31

Java 7

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.32

Java 7

Java 8

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.33

Сюжет 8История о хитром лицензиате

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.34

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.35

Выводы

Большинство tradeoff’ов связаны с совместимостью

– в том или ином её смысле

Имеющиеся риски трудно оценивать

Разные риски в update releases и в major updates

Java двигается в Embedded

– Больше различий в поведении

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.36

Q&A

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.37

Мои контакты

@23derevo

alexey.x.fedorov@oracle.com

fyodorov.spbu@gmail.com

Skype: fyodorov.spbu

http://about.me/alexey.fyodorov

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.38