LINUX.ORG.RU

Ява 8 в production

 ,


0

3

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

Вот теперь сижу и думаю - стоит ли на нее переводить основной рабочий проект? Сейчас он пишется на семерке, но к вводу в промышленную эксплуатацию восьмерка уже успеет релизнуться скорее всего.

Перемещено maxcom из talks

★★★★

Если есть уверенность, что уже ничего не поломают, почему бы и нет.

crowbar ()

Вопрос больше идеологический имхо, нежели технический, поэтому изначально был в толксах, но раз уж сам Макском решил сюда его передвинуть..

Nagwal ★★★★ ()
Ответ на: комментарий от crowbar

А фиг его знает, вроде не должны. Да и в своем коде поправить всегда можно, благо проект новый, говнокода не успели еще расплодить. Вопрос в оценке рисков возникновения косяков у всяких сторонних библиотек с новой jdk.

Nagwal ★★★★ ()
Ответ на: комментарий от Nagwal

Какие риски, там же совместимость в обратную сторону.

Legioner ★★★★★ ()
Ответ на: комментарий от Nagwal

JDK 8 делается в концепции Test-driven development. Так что сырой код, который не проходит необходимых тестов и ломает существующую совместимость, в голове репозитория разработки (mercurial) не публикуется.

Новые возможности, которые заявлены в окончательном варианте JDK, могут быть изменены, могут поменять API и т.д..

iZEN ★★★★★ ()
Ответ на: комментарий от Legioner

Совместимость это конечно хорошо, но например при выходе семерки были глюки с работой lucene на ней. Что-то там ломали сильно внутри.

Nagwal ★★★★ ()

А расскажи, какие конкретно фичи использовал? Лямбды само собой, а ещё?

Я тоже присматриваюсь к восьмёрке, но, честно, переводить на неё продакшен пока ссу. Проект mission critical. Полагаю, надо следить за рассылками/форумами/етц, ловить момент, когда наступит feature freeze. Т.е. после этого момента будет только вылизывание существующих фич, но не добавление/удаление/изменение существующих. Вот тогда и переползать.

BYHYRT ()
Ответ на: комментарий от BYHYRT

А расскажи, какие конкретно фичи использовал? Лямбды само собой, а ещё?

Stream api в коллекциях, все эти forEach filter map collect etc. Имхо очень удобно, то чего в яве всегда не хватало. Код практически без циклов смотрится забавно.

Еще Optional с его orElseGet и orElseThrow и default методы в интерфейсах.

В принципе посмотрел на новый data time api, хорошо сделали, можно будет joda time из зависимостей выкинуть.

Я тоже присматриваюсь к восьмёрке, но, честно, переводить на неё продакшен пока ссу. Проект mission critical.

Ну, был бы у меня работающий production - я бы тоже ссал довольно долго. Тут же вопрос в том, что проект только весной в марте-апреле в тестовую эксплуатацию пойдет. И к этому моменту они релиз явно успеют сделать.

Nagwal ★★★★ ()
Ответ на: комментарий от Nagwal

Stream api в коллекциях, все эти forEach filter map collect etc. Имхо очень удобно, то чего в яве всегда не хватало. Код практически без циклов смотрится забавно.

Еще Optional с его orElseGet и orElseThrow и default методы в интерфейсах.

В принципе посмотрел на новый data time api, хорошо сделали, можно будет joda time из зависимостей выкинуть.

Спасибо, круто. Я тоже буду новый проект начинать на 8-ке, пожалуй. Там разработки на полгода точно.

Тут же вопрос в том, что проект только весной в марте-апреле в тестовую эксплуатацию пойдет. И к этому моменту они релиз явно успеют сделать.

Удачи тогда :)

BYHYRT ()
Ответ на: комментарий от Nagwal

И к этому моменту они релиз явно успеют сделать.

Если вы про Java - то они столько раз уже откладывали... Я бы не стал так надеяться.

А чем плоха система типов в скалке? Какие заморочки?

BattleCoder ★★★★★ ()
Ответ на: комментарий от BattleCoder

А чем плоха система типов в скалке? Какие заморочки?

Неосиляторство же.

ovk48 ★★★ ()
Ответ на: комментарий от BattleCoder

А чем плоха система типов в скалке? Какие заморочки?

Переусложнена. Т.е. вкуривается конечно, но мне прям страшно представить как с ней будет разбираться программер, не тянущий на senior.

Плюс не очень хорошо совместима с явовской, что порождает проблемы совместимости с некоторыми ее библиотеками. И переполненность кода тяжелой артиллерией в виде asInstanceOf[T]

Nagwal ★★★★ ()
Ответ на: комментарий от Nagwal

Ну я не тяну на senior, зато систему типов скалки вроде как освоил. Хотя тонкости в уме не держу, подзабыл немного все эти T+ и T-, но при желании, думаю, память освежить не проблема.

А asInstanceOf[T] не нужен же! Есть же pattern matching!

Доводилось мне видеть код одного неосилятора скалки, переполненный этой «тяжёлой артиллерией». Нельзя таких пускать код писать.

BattleCoder ★★★★★ ()
Ответ на: комментарий от BattleCoder

Ну я не тяну на senior, зато систему типов скалки вроде как освоил. Хотя тонкости в уме не держу, подзабыл немного все эти T+ и T-, но при желании, думаю, память освежить не проблема.

Ну вот в том то и проблема, что корректное использование всех этого хозяйства с ковариантностями, контрвариантностями, upper|lower|view bounds и прочими тонкостями практически невозможно постоянно держать в голове.

Доводилось мне видеть код одного неосилятора скалки, переполненный этой «тяжёлой артиллерией». Нельзя таких пускать код писать.

Нельзя в проектах с долгим сроком жизни и поддержки использовать язык, требующий таких усилий для осиляторства. Потому, что обязательно кто-то попадется, способный все испохабить.

Nagwal ★★★★ ()
Ответ на: комментарий от BattleCoder

они столько раз уже откладывали

Кажется, что они это сделали всего один раз. ;)

nerh ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.