Обновить
-10
1.4

Пользователь

Отправить сообщение

Зависимость от количества элементов не совсем линейна, небольшой спойлер из второй части:


javac из OpenJDK 14-ea+29 сдаётся намного раньше, на 2_746 элементах

21_845 это оценка сверху при следующих допущениях:


  • Для полной инициализации одного элемента перечисления нужна только инструкции putstatic
  • Более выгодного по размеру кода способа инициализировать static final поле нет

Первое утверждение неверно, как и указано в статье:


На самом деле эта оценка завышена. Значение для записи в поле инструкция берёт с вершины стека, которое туда поместила одна из предыдущих инструкций. И эта инструкция тоже занимает драгоценные байты.

Как дело обстоит со вторым пунктом сейчас и в вероятном будущем — узнаете из заключительной статьи цикла.


Число 8_191 у автора твита получилось после дополнительных оптимизаций, которые не делает javac.

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

Нет, ваша позиция — «Это очень сложно, потому и не сделали», моя — «Руки не дошли, вот и не сделали».


В пользу моей точки зрения говорит JDK-8213076 Pattern matching for switch, который как раз и посвящён добавлению этой возможности в язык, а вовсе не объяснению того, что это слишком сложно сделать.


Им и со строками-то уже сильно выворачиваться пришлось.

Сомневаюсь, что реализация вызвала сколь-нибудь серьёзные трудности. Принять решение — да, пришлось.


Складывается такое впечатление, что главное — это принять решение, а выполнимо ли оно с заданным качеством — «дело десятое»…

Не нужно передёргивать, я говорил про байткод. На уровне байткода этот switch вполне может выродиться в пару invokedynamic/tableswitch, которые JIT заменит на intrinsics.
Синтаксический сахар это совсем не космические технологии.

Датчики, как я понял, передают данные по Bluetooth.
Почему бы злобным хакерам не ограничиваться патчами, а полностью отреверсить протокол и, заперевшись в чистой комнате, написать OSS-замену этому недостаточно Libre Link?

Иными словами, на этапе компиляции значение данного выражения не может быть определено. Именно поэтому оно и не может быть использовано в case.

Class literal в case нельзя использовать потому, что в JLS11 §14.11 его поддержка не заявлена:


The type of the Expression must be char, byte, short, int, Character, Byte, Short, Integer, String, or an enum type (§8.9), or a compile-time error occurs

java.lang.Class в списке разрешённых типов отсутствует, точка.
Добавят в спецификацию разрешение использовать java.lang.Class — допилят и компилятор и VM.


В какой конкретно байткод это будет транслироваться — дело десятое.


P.S. Class literals, хоть тот же String.class, на уровне байткода вполне себе загружаются из пула констант.

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

Какой-то вы пуганный, дисклеймерами так и сыпите.
Словно не с нейросетями побаловаться предлагаете, а конституционную монархию свергнуть.

Нет ни Java, ни Brainfuck?
Эти пришельцы безнадёжны, не стоит тратить на них время.

КДПВ похожа на эволюцию гематомы с переходом в новом свете в некроз.

Generics, полноценная поддержка Unicode — уже пары этих пунктов достаточно, чтобы забыть D5 как страшный сон.

Название компании, кстати, тоже под NDA?

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

А Порфирьевич-то — планетолётчик!


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

«А это идея!», подумали контрабандисты.

Не у одного.
Быстро открыть диалог, вставить путь из буфера обмена и сразу нажать на «ОК» — сейчас это что-то из области фантастики.

Всегда присутствует дополнительный этап «мы будем долго шуршать диском и строить никому не нужное дерево».

Если сильно не повезёт, то случается ситуация «что-то я в своём дереве такого пути не вижу, идите лесом». Пока диалог не найдёт введённый путь в своём дереве, через «ОК» его закрыть нельзя, только через «Отмену».

Картинки со звуком!
Сам хит-парад ошибок, увы, скучный. Копипаст и невнимательность.
Хотелось ошибок хотя бы такого уровня.
Кстати, PVS-Studio ошибку из статьи по ссылке найдёт?

Фейерверк цветов кнопок, иконок, пунктов меню.

Вы, верно, на версию двухгодичной давности смотрите?
Примерно в версии 2018.3 заботливые УХУИ-специалисты похерили нормальные контрастные иконки и заменили их на нечто, больше всего напоминающее осеннюю слякоть под подошвами сапог.


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

Как, предположительно, могло выглядеть задание на создание данного служебного произведения:


«Ребята, у нас кадровики в панике, уже первые отказы от кандидатов пошли. Напишите там, что мы хорошие!»
Тут слово «кейс» не подходит, т.к. оно — более узкое.

Мы ведь замену слову «кейс» ищем, а не наоборот.
Операция <X> идеально подходит в качестве замены для <Y> не обязана быть коммутативной.

А вот с кейсами — сама не люблю это слово, но не могу подобрать удачную замену именно для бизнеса: опыт, история из жизни, история клиента?

«Случай», идеально же подходит.
«Был у нас на производстве такой случай...».

Информация

В рейтинге
1 435-й
Зарегистрирован
Активность