Информация об изменениях

Сообщение Re[6]: Сосредоточение на одном языке программирования от 15.03.2021 13:46

Изменено 15.03.2021 13:48 gyraboo

Re[6]: Сосредоточение на одном языке программирования
Здравствуйте, Hobbes, Вы писали:

G>>Владение на экспертном уровне, это когда не допускаются всякие хитрые баги, скажем, в Java, такие:

G>>
G>>Integer a1 = 10;
G>>Integer a2 = 10;
G>>System.out.println(a1 == a2);
G>>

G>>Выведет true.

G>>
G>>Integer a1 = 10_000;
G>>Integer a2 = 10_000;
G>>System.out.println(a1 == a2);
G>>

G>>Выведет уже false.
G>>Хотя Khimik бы сделал вывод, как он недавно писал на форуме про аналогию, что, "по аналогии, мы здесь тоже ожидаем true", ведь 10 и 10_000 — оба целых числа, имеют вроде бы аналогичные свойства.

G>>сравнение объектов по == само по себе является индикатором плохого кода


H>Если оператор сравнения объектов сравнивает идентичность экземпляров объекта, тогда почему в первом случае будет true?


Это как раз та проблема экспертных знаний, о которой я говорю. Чтобы понять этот код, мало обычной логики и здравого смысла, нужны ещё и тайные знания. И считаю это — плохо.
Re[6]: Сосредоточение на одном языке программирования
Здравствуйте, Hobbes, Вы писали:

G>>Владение на экспертном уровне, это когда не допускаются всякие хитрые баги, скажем, в Java, такие:

G>>
G>>Integer a1 = 10;
G>>Integer a2 = 10;
G>>System.out.println(a1 == a2);
G>>

G>>Выведет true.

G>>
G>>Integer a1 = 10_000;
G>>Integer a2 = 10_000;
G>>System.out.println(a1 == a2);
G>>

G>>Выведет уже false.
G>>Хотя Khimik бы сделал вывод, как он недавно писал на форуме про аналогию, что, "по аналогии, мы здесь тоже ожидаем true", ведь 10 и 10_000 — оба целых числа, имеют вроде бы аналогичные свойства.

G>>сравнение объектов по == само по себе является индикатором плохого кода


H>Если оператор сравнения объектов сравнивает идентичность экземпляров объекта, тогда почему в первом случае будет true?


Это как раз та проблема экспертных знаний, о которой я говорю. Чтобы понять этот код, мало обычной логики и здравого смысла, нужны ещё и тайные знания (ну не совсем тайные, но — особые знания о работе платформы Java, усложняющие семантику языка). И считаю это — плохо.