Честно говоря, мне кажется, что с Java Вам пытались продать серебряную пулю. А как только вы поняли, что это нет так (а так и быть не может), то сильно-сильно огорчились.
Java это самая обычная технология. Магии тут нет.
А вот еще.
Я был бы очень рад не повторяться с докладами. Что совсем новое всегда лучше чем даже обновленное. Но почему тогда, вопросы на конференциях одни и те же? Почему тогда, вот уже с регулярностью в 3 года при любом голосовании «что рассказать» Java Memory Model если не первая — то в топе???? (как она мне надоела ;))
Например про другую конфу «Цена участия в конференции зависит от даты оплаты — она будет меняться от 13 000 до 21 000 рублей.» — вот это вот бизнес. Причем не «бизнес по поставке знаний», а просто бизнес.
А Joker, JPoint да и JavaOneMoscow — это благотворительность.
Вы уж извините, но не поёрничать я не мог.
Сначала все кричат, «ууу перенесли лямбды из 7-ки в 8», потом «уууу выход 8-ки перенесли год с 2013 на 2014» (на самом деле на полгода), «уууу да чего там за тормоза в Оракле не могут тут какие-то паршивые лямбды зафигачить».
А потом я начинаю спрашивать людей — «а вы какую Java то юзаете?». И вижу, что на 7-ку перешло 10-20%. 50% на 6-ке. куча на 5-ке, И!!! <барабанная дробь> всегда, на любой конференции находятся мыши кушающие 1.4 </барабанная дробь>
Ну зачем вам 8-ка? Поиграться? Для своих проектов? Так я свои проекты уже 2 года на 8-ке пишу.
А про «зафигачить Java с лямбдами и фичами» так не выйдет — если уж зафигачить по быстрому, то получится исключительно «Java c лямбдами и багами». Все такие супер разработчики, но почему-то про цикл тестирования никто не думает. А ведь именно тестирование на данный момент самая дорогая по времени и ресурсам часть разработки.
Друзья. А дейсвительно, скажите, ну что же там в JMM непонятно? Я читал этот доклад 5 раз. Если общественность настаивает на шестом — да пожалуйста. Но тогда мне кажется, что что-то в консерватории презентации нужно подправить. Что?
Или мне действительно нужно его переписать, а не повторяться?
Как мне нравится последнее время такая тенденция. Берется статья и переводится.
Блин, и тут даже не выйдет объяснить автору, что он балбес. Ибо в любом случае стрелки на автора оригинала, и спорить нужно там.
А тут перевод. Перевод статьи, автор которой совсем не разбирается в теме.
О! Первый возглас в числе комментов.
Хотите ответ — а назвали так, потому, что автор оригинальной стать не шарит! Да и переводчик тоже, иначе исправил бы.
Какой смысл давать бессмысленные советы?
Если не знаешь как там все работает — то такие советы вредны. А если знаешь — то не нужны.
А вредны во первых, потому что захламляют код, ну и во вторых — я на каждый «хинт» могу сделать контрпример, когда данный хинт будет вызывать деградацию. Кроме разве что первого «хинта», потому, что там какая-то невнятность, я никакого «хинта» не вижу.
Да тут сборище цитат. Претензии не к переводу, а к источнику.
«Долгая процедура сборки мусора может привести к явлению, известному как «Stop the world».» — а может и не привести. А быстрая приведет? А без stop the world можно? Блин — взялся писать — хоть узнай что к чему. В сети тонны правильных презентаций, на амазоне терабайты правильных книг.
«Сборщик мусора (Garbage Collector, GC) существует для обработки большого количества выделений памяти под короткоживущие объекты» — WAT? а долгоживующие как? Кстати что за выделения? Они не заразные?
«GC в этом случае использует так называемое «молодое поколение» («young generation») — сегмент кучи, где размещаются новые объекты. Каждый объект имеет поле «возраст» («age», находится в заголовке объекта), который определяет сколько сборок мусора он пережил. Как только достигнут определенный возраст, объект копируется в другую область кучи, называемую «старым» («old») поколением. » — врут сволочи. GC (абстрактный) работает совсем не так.
«Строки являются неотъемлемой частью практически любой структуры данных. Будучи более требовательными к ресурсам, чем другие примитивные типы» — WAT? Строка примитивный тип????? Назад в школу и не вылазить.
заменив volatile store на обычный store. Программа будет абсолютно правильно работать на x86 архитектуре, хотя, согласно JMM, будет некорректной.
Программа будет корректно работать в том смысле, что x86 HMM ничего гадостного не сделает. Но тут прибегает HotSpot и опаньки. Уж ты то должен это знать.
Он не называется L0. :)
И с одной стороны часто весьма неплохо работает, снимает затык с декодера и поднимает настоящий IPC до 3-х. С другой стороны также много примеров когда его не хватает.
Ссылаться на NetBurst (P4) скользкий путь. Это тупиковая ветвь микроархитектуры, с появлением Core (который потомок Pentium M) ушла в утиль. У того же Fog прекрасно написано как работает HT в новых микроархитектурах — что продублировано, что шарится поровну, а что шарится «competitively»
C++, C#, Erlang, Haskell? По ним мало конференций? А почему, как Вы думаете?
Java это самая обычная технология. Магии тут нет.
Я был бы очень рад не повторяться с докладами. Что совсем новое всегда лучше чем даже обновленное. Но почему тогда, вопросы на конференциях одни и те же? Почему тогда, вот уже с регулярностью в 3 года при любом голосовании «что рассказать» Java Memory Model если не первая — то в топе???? (как она мне надоела ;))
А Joker, JPoint да и JavaOneMoscow — это благотворительность.
Сначала все кричат, «ууу перенесли лямбды из 7-ки в 8», потом «уууу выход 8-ки перенесли год с 2013 на 2014» (на самом деле на полгода), «уууу да чего там за тормоза в Оракле не могут тут какие-то паршивые лямбды зафигачить».
А потом я начинаю спрашивать людей — «а вы какую Java то юзаете?». И вижу, что на 7-ку перешло 10-20%. 50% на 6-ке. куча на 5-ке, И!!! <барабанная дробь> всегда, на любой конференции находятся мыши кушающие 1.4 </барабанная дробь>
Ну зачем вам 8-ка? Поиграться? Для своих проектов? Так я свои проекты уже 2 года на 8-ке пишу.
А про «зафигачить Java с лямбдами и фичами» так не выйдет — если уж зафигачить по быстрому, то получится исключительно «Java c лямбдами и багами». Все такие супер разработчики, но почему-то про цикл тестирования никто не думает. А ведь именно тестирование на данный момент самая дорогая по времени и ресурсам часть разработки.
повторениепочетверение на JavaOne Moscow 2014? :)консерваториипрезентации нужно подправить. Что?Или мне действительно нужно его переписать, а не повторяться?
Блин, и тут даже не выйдет объяснить автору, что он балбес. Ибо в любом случае стрелки на автора оригинала, и спорить нужно там.
А тут перевод. Перевод статьи, автор которой совсем не разбирается в теме.
Хотите ответ — а назвали так, потому, что автор оригинальной стать не шарит! Да и переводчик тоже, иначе исправил бы.
Если не знаешь как там все работает — то такие советы вредны. А если знаешь — то не нужны.
А вредны во первых, потому что захламляют код, ну и во вторых — я на каждый «хинт» могу сделать контрпример, когда данный хинт будет вызывать деградацию. Кроме разве что первого «хинта», потому, что там какая-то невнятность, я никакого «хинта» не вижу.
«Долгая процедура сборки мусора может привести к явлению, известному как «Stop the world».» — а может и не привести. А быстрая приведет? А без stop the world можно? Блин — взялся писать — хоть узнай что к чему. В сети тонны правильных презентаций, на амазоне терабайты правильных книг.
«Сборщик мусора (Garbage Collector, GC) существует для обработки большого количества выделений памяти под короткоживущие объекты» — WAT? а долгоживующие как? Кстати что за выделения? Они не заразные?
«GC в этом случае использует так называемое «молодое поколение» («young generation») — сегмент кучи, где размещаются новые объекты. Каждый объект имеет поле «возраст» («age», находится в заголовке объекта), который определяет сколько сборок мусора он пережил. Как только достигнут определенный возраст, объект копируется в другую область кучи, называемую «старым» («old») поколением. » — врут сволочи. GC (абстрактный) работает совсем не так.
«Строки являются неотъемлемой частью практически любой структуры данных. Будучи более требовательными к ресурсам, чем другие примитивные типы» — WAT? Строка примитивный тип????? Назад в школу и не вылазить.
И т.д.
Программа будет корректно работать в том смысле, что x86 HMM ничего гадостного не сделает. Но тут прибегает HotSpot и опаньки. Уж ты то должен это знать.
И с одной стороны часто весьма неплохо работает, снимает затык с декодера и поднимает настоящий IPC до 3-х. С другой стороны также много примеров когда его не хватает.