Java Platform Tradeoffs (Riga 2013)
-
Upload
alexey-fyodorov -
Category
Technology
-
view
739 -
download
1
description
Transcript of Java Platform Tradeoffs (Riga 2013)
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
Skype: fyodorov.spbu
http://about.me/alexey.fyodorov
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.38