В анонсе релиза Java 7 (http://www.opennet.me/opennews/art.shtml?num=31332), компания Oracle гарантировала сохранение полной обратной совместимости со всеми ранее выпущенными продуктами. На деле все оказалось не так радужно. Разработчики Java-проектов Apache Lucene и Apache Solr уведомили (http://lucene.apache.org/#28+July+2011+-+WARNING%3A+Ind...) пользователей о возникновении ряда серьезных проблем, при попытке запуска код под управлением Java 7. При этом наблюдаются не только крахи в процессе работы, но и более серьезные проблемы, такие как повреждения содержимого поисковых индексов.
После анализа ситуации, разработчики пришли к выводу, что проблемы возникли из-за некорректной работы некоторых режимов оптимизации в новой версии компилятора в виртуальной машине Hotspot. Проблемы могут проявляться не только в виде крахов, но и приводить к некорректным результатам вычислений. Разработчики посоветовали пользоват...URL: http://lucene.apache.org/#28+July+2011+-+WARNING%3A+Ind...
Новость: http://www.opennet.me/opennews/art.shtml?num=31340
Опять эти игрища с ключами оптимизации компилятора — задолбало c GCC, теперь и в HotSpot.Хорошо, что оставили возможность отключать сомнительную машинную оптимизацию и дали возможность прикладным программистам самим думать.
> дали возможность прикладным программистам самим думать.К жабистам это не относится. Ну-ка, оптимизатор хренов, а воткни-ка в свою яву заранее сгенеренный оптимизнутый машинный код? На сях(++) как два байта переслать. Оптимальнее вручную выписанного асма, отпрофайленого с точностью до команд - просто некуда. Да, не портабельно, зато быстро и можно использовать сильные стороны конкретной архитектуры по максимуму.
не вопрос, бери JNI и оптимизируй до посинения
> не вопрос, бери JNI и оптимизируй до посиненияТолько это явой уже не будет ;)
>> не вопрос, бери JNI и оптимизируй до посинения
> Только это явой уже не будет ;)Так и ассемблер не является С++ :)
> Так и ассемблер не является С++ :)ты чо! это ересь! компилятор понимает — значит, C!
А зачем Ява-то тогда?
зачем с/с++ тогда, если есть asm?
> А зачем Ява-то тогда?ну, например, она нужна тем, кто знает когда, что и как нужно оптимизировать
Вполне ожидаемо
> Вполне ожидаемоНеожидаемо — в Apache проблему в новом оптимизирующем JIT (кстати, написанном на C++) отследили и предупредили не только пользователей новой версии JDK7, где оптимизации включены по умолчанию, но и пользователей JDK6, если они ВДРУГ_ЗАХОТЯТ включить сомнительные оптимизации JIT'а.
а также предупреждали оракуль, но релиз важней багфиксов. а пользователи могут идти жаловаться в «спортлото». ынтырпрайз такой ынтырпрайз — оракуль не только словом, но и делом показывает, как им важны их клиенты.
> а также предупреждали оракуль, но релиз важней багфиксов. а пользователи могут идти
> жаловаться в «спортлото». ынтырпрайз такой ынтырпрайз — оракуль не только
> словом, но и делом показывает, как им важны их клиенты.А куда они денутся? С подводной лодки?
USer294 это ты?
> USer294 это ты?нет, не он. но раз он пропал — надо же кому-то за него работать.
Вот такая вот обратная совместимость. Оракл гарантирует.
Обратная совместимость ораклом сроду не гарантировалась.
> Вот такая вот обратная совместимость. Оракл гарантирует.Оракл в последнее время много кому и чего обещал, гарантировал и прочая.
Лицензионные соглашения Оракла (EULA) читал полностью (как GPL) для разнообразия? Ничего не обещал и ничегошеньки не гарантировал.
Неважная обратная совместимость в Java проблема настолько старая, что проблемой её уже никто не считает.
> Неважная обратная совместимость в Java проблема настолько старая, что проблемой её уже
> никто не считает.BTW, а в линаксе есть обратная совместимость? Полная? Так что замнем для ясности. Максима "Совместимость важнее производительности" канула в лету да-авным-да-авно!
Бурный расцвет GPGPU вычислений это подтверждает. К черту совместимость, если вы можете на том же ширпотребном железе смолотить задачу в 100 раз быстрее. Платить за 100 машин вместо одной кто угодно жабой задавится.
> Бурный расцвет GPGPU вычислений это подтверждает. К черту совместимость, если вы можете
> на том же ширпотребном железе смолотить задачу в 100 раз быстрее.
> Платить за 100 машин вместо одной кто угодно жабой задавится.Если речь идет о рендере "Корпорации Монстров" - то да. Если о выполнении СУБД или ERP с базой под низом стоимостью 60 лимов зелени - то ну его на хер такую производительность.
>> Бурный расцвет GPGPU вычислений это подтверждает. К черту совместимость, если вы можете
>> на том же ширпотребном железе смолотить задачу в 100 раз быстрее.
>> Платить за 100 машин вместо одной кто угодно жабой задавится.
> Если речь идет о рендере "Корпорации Монстров" - то да. Если о
> выполнении СУБД или ERP с базой под низом стоимостью 60 лимов
> зелени - то ну его на хер такую производительность.100 машин стоят всяко меньше 60 лямов зелени, если что.
Если ваша база стоит 60 миллионов - значит вас кто-то крупно нае..л.
Представь, анон - такие базы существуют. Правда, не в России, где засилье 1С и ПБОЮЛ Рога и Копыта & Черкизон.
> Представь, анон - такие базы существуют. Правда, не в России, где засилье
> 1С и ПБОЮЛ Рога и Копыта & Черкизон.Почему бы и не 1С? Главное - содержимое.
Своеобразное у меня отношение к этим DBF файлам еще со времен MS-DOS сложилось.
> Своеобразное у меня отношение к этим DBF файлам еще со времен MS-DOS
> сложилось.1С ещё и в MSSQL можно хранить. А 8-ку в постгре.
> Своеобразное у меня отношение к этим DBF файлам еще со времен MS-DOS
> сложилось.да, мне тоже с тех пор ещё нравится. удобно, быстро, практично и формат простой. жаль, что их все забыли.
И вы таки неправы по обоим пунктам :-)
Во-первых, я регистрант.
А во-вторых, то, что оно где-то есть (кто б сомневался!), ни разу не значит, что такая цена осмысленна.
> То, что оно где-то есть, ни разу не значит, что такая цена осмысленна.Ваш бы ход мыслей всем начальникам и руководителям сокращающим порой весь ИТ-отдел в пользу сомнительного "развития" всяких продуктов Microsoft.
Если кто не понял мысли, то тут все совсем просто. Код почтового сервера не стоит лицензий, которые предлагает Excange например. Ну вообщем как-то так...
В этом мире существуют не только пивные ларьки с базой на екселе но и по-приличнее предприятия ... но тебе не понять :)
> В этом мире существуют не только пивные ларьки с базой на екселе
> но и по-приличнее предприятия ... но тебе не понять :)А что тут понимать? От торговли кучей копий винды такой бизнес не отличается ни разу. И если у Оракла получается за такие деньги продавать базы - то это достижение маректологов, не больше.
>> В этом мире существуют не только пивные ларьки с базой на екселе
>> но и по-приличнее предприятия ... но тебе не понять :)
> А что тут понимать? От торговли кучей копий винды такой бизнес не
> отличается ни разу. И если у Оракла получается за такие деньги
> продавать базы - то это достижение маректологов, не больше.OMG, ты не различаешь понятия "база данных" и "сервер управления базами данных"? Сами данные могут стоить на несколько порядков дороже софта, используемого для их обработки. Более того, стоимость данных чаще всего определяется не ценой их продажи, ибо никто их продавать не собирается, а стоимостью потенциальных убытков, связанных с потерей или внесением ошибок.
Если речь о самих даных - спору нет. Но в оригинале говорилось о совместимости с железом (GPU поминались) - а она может касаться исключительно софта, а никак не даных.
База стоит столько, сколько за неё предлагают. И если за неё предлагают 60 млн. значит она этого стоит. Спрос рождает предложение - законы рынка.
> Спрос рождает предложение — законы рынка.это только половина. а вторая половина — которую продавцы отчего-то не любят упоминать — звучит так: «а впариватели-пеарщеги рождают спрос».
В Linux есть полная обратная совместимость, но не для драйверов.
> BTW, а в линаксе есть обратная совместимость? Полная? Так что замнем для
> ясности.Я бы посмотрел на четкое определение такого размытого тезиса, как "полная обратная совместимость линакса".
Без него и правда, проще замять для ясности.
Проверить работоспособность ещё на RC и оформить багрепорт до релиза проектам Apache, видимо, убеждения не позволили.
7-го июля, напомню, вышел RC.
"Интересно, что об ошибках было известно за 7 дней до выхода релиза, но компания Oracle выпустила финальную версию Java 7 точно в срок, отложив на потом устранение серьезных недоработок."
Но похоже, что крэшится она только когда включена Server VM, да ещё и на 64-битная.
Так что, на типинчных 32-битных инсталляциях ничего такого не будет.
> Так что, на типинчных 32-битных инсталляциях ничего такого не будет.Типичный 32-разрядный сервер нынче можно найти в музее палеонтологии^W политехники. А на десктопе ява вообще не сдалась. С ее временами стартом, скоростью работы программ и кислотными контролами, плевать хотевшими на системные настройки оно заведомо трупак и пытаться его оживить малополезное начинание.
Вы не поверите, но совсем недавно я видел целый зоопарк из 32-битных серверов, крутившихся кстати по Windows ХР.
Каким макаром это сервера?
>Каким макаром это сервера?В соответствии с определениями.
http://ru.wikipedia.org/wiki/Сервер
> В соответствии с определениями. http://ru.wikipedia.org/wiki/Серверааа... в педивикском смысле этого слова...
> Вы не поверите, но совсем недавно я видел целый зоопарк из 32-битных
> серверов, крутившихся кстати по Windows ХР.Кто-то перепутал энтерпрайз и детский сад?:) А то у XP столь оптимальные для серверов дефолты и всякие там лимиты на халфопен, что для достижения оптимального результата ее тюнить надо покруче гентусни. При том что оно еще и денег стоит.
>> Вы не поверите, но совсем недавно я видел целый зоопарк из 32-битных
>> серверов, крутившихся кстати по Windows ХР.
> Кто-то перепутал энтерпрайз и детский сад?:) А то у XP столь оптимальные
> для серверов дефолты и всякие там лимиты на халфопен, что для
> достижения оптимального результата ее тюнить надо покруче гентусни. При том что
> оно еще и денег стоит.Ну, к примеру, если к серверу подключаются полтора клиента (например, он в основном занимается какими-то вычислениями, или тянет данные с офисной АТС), сервером он от этого быть не перестаёт, а халфопены и лимиты становятся иррелевантными.
Вы тоже считаете, что за пределами МКАД жизни нет?> А на десктопе ява вообще не сдалась.
Кому не сдалась, а кому и очень сдалась.
> и кислотными контролами, плевать хотевшими на системные настройки
SWT, Eclipse
Один раз скомпилено - везде запускается! Это же девиз явы. Но ява такая ява... ;)
Запускается везде, где установлена JDK/JRE v. 1.X build YYY ;)
> Запускается везде, где установлена JDK/JRE v. 1.X build YYY ;)...при условии что его туда вообще спортировали :)
> Один раз скомпилено - везде запускается! Это же девиз явы. Но ява
> такая ява... ;)Это не девиз явы. Это девиз _любого_приличного_ABI_. Которого, как замечено выше, в линаксе нет by design.
> Это не девиз явы. Это девиз _любого_приличного_ABI_. Которого, как замечено выше, в
> линаксе нет by design.Да и фиг с ним. Проприерасы не заботятся о удобстве разработчиков, зажимая сорцы и спеки. Чего ради разработчики должны печься о удобстве таковых недружественныъ элементов?
> Это не девиз явы. Это девиз _любого_приличного_ABI_. Которого, как замечено выше, в
> линаксе нет by design.это девиз проприерастов. у нормальных систем другой девиз: «один раз написано по стандарту — компилируется везде, где стандарт поддержан». обеспечивать работу бинарных блобов никому не интересно; пусть проприетарщики себе анус надрывают, если им так охота.
да да ?
А если у нас есть старая программа которая не компилируется современным компилятором, но при этом надо что бы она работала. То что делать то ?
> да да ?
> А если у нас есть старая программа которая не компилируется современным компилятором,
> но при этом надо что бы она работала. То что делать
> то ?грызть кактус. или нанять человека, который асилит собрать старую версию компилятора. или нанять людей, которые допилят ваш быдлокод до компилируемости современными инструментами.
но лучше, всё-таки, сожрать кактус и сыграть в ящик.
> да да ?
> А если у нас есть старая программа которая не компилируется современным компилятором,
> но при этом надо что бы она работала. То что делать
> то ?да да. и исходников нет, как это обычно в венде? а оно валится с ошибкой и не написано с какой, как это принято среди вендопрогеров? остаётся только медитировать на такое крутое ABI, ага.
>> Один раз скомпилено - везде запускается! Это же девиз явы. Но ява
>> такая ява... ;)
> Это не девиз явы. Это девиз _любого_приличного_ABI_. Которого, как замечено выше, в
> линаксе нет by design.Это у тебя мозгов нет by design, а ABI для юзерспейсных програм в линукс очень даже есть и строго соблюдается.
> Это у тебя мозгов нет by design, а ABI для юзерспейсных програм
> в линукс очень даже есть и строго соблюдается.ты про линукс, он про какой-то линакс. я х.з. что это такое, вроде как таблетки. там может и нет ABI.
Один раз компилицо, другой раз не компилицо. Это же девиз C++. Обновление компилятора обычно приводит к тому что куча кода вообще компилироваться перестает (это при том что "стандарт" не меняется).
> Обновление компилятора обычно приводит к тому что куча кода вообще компилироваться перестаетчто-то не замечал. может, потому, что быдлокодием не страдаю, и пишу сразу соблюдая стандарты?
Я думаю, это из-за OpenJDK, к сожалению. Например, идея выдаёт такое:OpenJDK Runtime Environment (IcedTea6 1.10.3) (Gentoo build 1.6.0_22-b22)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)
WARNING: You are launching IDE using OpenJDK Java runtimeTHIS IS STRICTLY UNSUPPORTED DUE TO KNOWN PERFORMANCE AND GRAPHICS PROBLEMS
NOTE: If you have both Sun JDK and OpenJDK installed
please validate either IDEA_JDK or JDK_HOME environment variable points to valid Sun JDK installationPress Enter to continue.
Надеюсь, openjdk они доведут-таки до вменяемого состояния.
Надейтесь дальше. Переростки без багов - это утопия.
Это всего-лишь баг оптимизатора, ну причем тут обратная совместимость?!
в предыдущей версии не было бага, в этой есть. отсутствует обратная совместимость багов
> в предыдущей версии не было бага, в этой есть. отсутствует обратная совместимость
> багован нет, баг как раз обратно совместим, и его можно успешно использовать в JVM 6, написано даже как :)
Ну так из-за чего стон? Полная обратная совместимость вплоть до багов сохранена :)
И когда же 1.7.1 ждать?
Не дожедетесь, будет сразу 1.8 - сейчас такая модная^W тенденция.
> но компания Oracle выпустила финальную версию Java 7 точно в срок, отложив на потом устранение серьезных недоработок.Вот так совпадение: только-только Линус показал достойный пример (даже отложив отпуск), а Ораклу по барабану.
> По словам Линуса на подобную редкую проблему можно было бы не обращать внимание, спокойно выпустить релиз и включить патч в состав одного из корректирующих обновлений, но выпуск релиза, в котором изначально есть известные ошибки, какими бы редкими они ни были, заведомо порочная практика, до которой не следует опускаться.
Жава должна пройти процесс реинкарнации и родиться вновь тем, чем её создавали изначально.
В противном случае "особенности" архитектуры JAVA не дадут сделать из неё что-нибудь действительно работоспособное.
> Жава должна пройти процесс реинкарнации и родиться вновь тем, чем её создавали
> изначально.
> В противном случае "особенности" архитектуры JAVA не дадут сделать из неё что-нибудь
> действительно работоспособное.а что за особенности такие?
> Жава должна пройти процесс реинкарнации и родиться вновь тем, чем её создавали
> изначально.платформой для написания кода не шибко умными людьми? так она никуда от этого и не уходила.
если чо — кури историю жабы, я не троллю.
Вообще-то изначально идея была "создать независимую от операционных систем среду выполнения программ". Типа "один раз создал - выполняется везде".
А в процессе каждая мегапупер-компания создала свою реализацию, да плюс почти бессистемные изменения в коде в процессе развития.
Вот и выродилась идея в некую сумбурную кучу малосовместимых реализаций, работающих кое-как, плюющих друг на друга из-под шапки...
> Вообще-то изначально идея была "создать независимую от операционных систем среду выполнения
> программ". Типа «один раз создал — выполняется везде».увы, нет. это была только часть задумки, причём не самая большая. а основная цель была — по мере сил кастрировать язык так, чтобы от обезьян не требовалось мозга и они были легко взаимозаменяемы. но даже Стили с этим справился фиговато.
> Вообще-то изначально идея была "создать независимую от операционных систем среду выполнения
> программ". Типа "один раз создал - выполняется везде".
> А в процессе каждая мегапупер-компания создала свою реализацию, да плюс почти бессистемные
> изменения в коде в процессе развития.вообще практически все работающие реализации - потомки Sun JDK. Исключения - Apache Harmony (которая подтолкнула Санки открыть Java) и dalvik, хотя последний не совсем java. Все остальные есть потомки Сановской, хотя некоторые для серверов работали даже эффективнее - та же JRocket.
> Жава должна пройти процесс реинкарнацииДавно уже. Называется C#
j7 - write anywhere run on j6 ))))