Почему некоторые платформы отказываются от поддержки древних версий Java? - PullRequest
6 голосов
/ 01 августа 2010

Пока я сижу здесь, модифицируя PircBot , я только что заметил, что весь бэкэнд был написан для поддержки Java 1.1 .Он имеет собственную реализацию очереди, использует хеш-таблицы, пользовательские реализации производителя / потребителя, основанные на сигнализации wait () и notify () и т. Д. Даже в Commons-lang отсутствует какая-либо поддержка таких вещей, которые Java 5 вносит в таблицу, например обобщений.Вы можете взять множество других примеров очень популярных фреймворков, которые изо всех сил стараются поддерживать 1.1.

Мой вопрос: почему?Почему некоторые части сообщества Java отказываются поддерживать новые версии?Я придерживаюсь этой теории: старые версии используют более старые версии фреймворков и более старые JVM, более новые версии используют обновленные фреймворки и JVM.Вы обновляете все с помощью программного обеспечения.

Теперь я могу частично понять людей, все еще использующих Java 1.5, но 1.1?Если вы выполняете что-то до этого, то вы явно не обновляете JVM из-за глупых политик / боитесь неизвестных, и поэтому не собираетесь обновляться до более новых версий программного обеспечения.Так почему же мы до сих пор их поддерживаем?

В соответствующей заметке, если вы пишете новую платформу, следует ли вам поддерживать что-либо <1,5?Если вы попытаетесь разветвить существующие фреймворки, обновив его до 1.5, а затем поговорить с сопровождающими о его использовании? </p>

Намного более конкретные обсуждения (это касается поддержки в целом): Есть ли еще веская причина дляподдержка JDK 1.4?

Отказ от поддержки JRE 1.3

Ответы [ 4 ]

2 голосов
/ 01 августа 2010

Потому что это легко!От Java 1.1 до Java 1.4 были введены только крошечные языковые функции (например, strictfp).Так зачем ограничивать себя, если вам не нужно.Допустим, вы пишете класс StringUtil или разбираете файлы Word, тогда это не имеет значения.Просто начиная с Java 5, у вас есть улучшение языка, а с Java 1.0 до Java 1.1, конечно, внутренние классы.

Это только для языка и не столько для библиотек.Есть интересные дополнения, конечно.

1 голос
/ 01 августа 2010

Я знаю, по крайней мере, одно коммерческое предприятие, которое решило, что никогда не выйдет за пределы 1.1, чтобы они могли работать вечно как на java JVMS, так и .NET с одним и тем же исходным кодом.

1 голос
/ 01 августа 2010

Обратная совместимость?

Изменение уровня поддержки JVM должно стать основным выпуском. То есть версия 1.x идет к 2.x, чтобы указать на это.

Кроме того, я считаю, что прочитал, что для того, чтобы получить наибольшее покрытие в мобильных телефонах, вам нужно выбрать 1.1 Это может быть старым, хотя.

1 голос
/ 01 августа 2010

Я думаю, что наиболее распространенная причина в том, что новые функции, представленные в более поздних версиях, все равно не используются.Я имею в виду, что если библиотека не использует новые функции, такие как обобщенные или расширенные функции параллелизма, не возникает никаких проблем с совместимостью.

...