Size: a a a

2020 January 11

P

Pavel in rust_offtopic
Alex Zhukovsky
так а какоеповедение? Если гц бар удалил
финализатор это не деструктор
источник

P

Pavel in rust_offtopic
после его вызова объект всё ещё может быть в памяти
источник

D

Dima in rust_offtopic
Pavel
выше написано почему — модель памяти определяет, что может произойти при гонке в джаве (одно из двух)
хотя как может быть не уб, если у меня есть взаимодействие с с кодом это уб ил не уб?
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
финализатор это не деструктор
You can not access any objects your object refer to, that has finalizers, as you have no guarantee that these objects will be in a usable state when your finalizer runs. The objects will still be there, in memory, and not collected, but they may be closed, terminated, finalized, etc. already.
источник

AZ

Alex Zhukovsky in rust_offtopic
непонятно что они под can not access имеют ввиду
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
после его вызова объект всё ещё может быть в памяти
может, но это не значит что операции с ним определены
источник

P

Pavel in rust_offtopic
Dima
хотя как может быть не уб, если у меня есть взаимодействие с с кодом это уб ил не уб?
нет взаимодействия с кодом, гонка в джаве влияет только на данные, не на код
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
тоесть, будь моя воля, я б сидел и получал бабки с неба и писал пет-проджекты на разных рандомных языках, но за джаву получать деньги меньше мороки, чем за всякие питоны/жсы/шарпы
хз, шарпы сильно приятнее джавы
источник

AZ

Alex Zhukovsky in rust_offtopic
хотя я слышал там паттерн матчинг нормальный собираются делать и все такое, так что мб это еще поменяется
источник

AZ

Alex Zhukovsky in rust_offtopic
единственная фича которой мне из жабыне хватает - инлайн наследование интерфейсов анонимными типчиками
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
единственная фича которой мне из жабыне хватает - инлайн наследование интерфейсов анонимными типчиками
кстати недавно узнал, что  в охуеть какого мощного груви его тоже нет — нельзя определять классы внутри метода
источник

AZ

Alex Zhukovsky in rust_offtopic
Gymmasssorla
Так это проблема, если не ловится на этапе компиляции. Ревьювер может не выспаться и банально пропустить код, возвращаемся к тому моменту, зачем создавали безопасные языки, вроде Раста
but with great powers comes great responsibility
источник

D

Dima in rust_offtopic
Pavel
нет взаимодействия с кодом, гонка в джаве влияет только на данные, не на код
я че-то не совсем понял, допустим есть у меня u64, передаю я указатель на него в сишную функцию которая выполняется в другом потоке вообще(в ядре например), она не атомарно его инкрементит, что в java будет? сорри я java совсем не знаю если что
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
хаскель был популярным 10 лет назад? потом его популярность резко упала?
смотря что считать под популярностью. Есть конторы которые на нем пишут. Работу найти можно. Хайповать и получать по 20 офферов за месяц - наверное нет
источник

AZ

Alex Zhukovsky in rust_offtopic
Pavel
зато, если тебе очень надо конкурентно что-то поделать без синхронизаций, даже если там может быть какая-то минорная гонка, которая не страшна, то ты знаешь, что ничего страшного не произойдёт и можешь не тратить лишние усилия на это. Да, это как бы развязывает руки накосячить в важном коде, но так же развязывает их в вопросе, когда ты точно знаешь, что это не страшно в этом конкретном коде. Тут мы, конечно, скатываеся уже к теме динамически/статически типизируемых языков, только на другом уровне. Да, хорошо, когда у тебя не может быть гонок, но иногда, тебе плевать на гонки просто потому, что это что-то минорное и имплементировать правильное решение — слишком трудозатратно по сравнению с ценностью, которое оно принесёт.
вот я кстати наоборот стремаюсь. Иногда смотрю на код, вроде ничо страшного не должно произойти, но подсознателньо после раста неприятно, что я на 100% не уверен
источник

AZ

Alex Zhukovsky in rust_offtopic
из разряда "если я неволатильный инт интерлокедом заинкременчу всё будет ок или нет?"
источник

AZ

Alex Zhukovsky in rust_offtopic
не всегда помнишь все такие нюансы спеки
источник

AZ

Alex Zhukovsky in rust_offtopic
когда компиль подсказывает намного проще
источник

P

Pavel in rust_offtopic
Dima
я че-то не совсем понял, допустим есть у меня u64, передаю я указатель на него в сишную функцию которая выполняется в другом потоке вообще(в ядре например), она не атомарно его инкрементит, что в java будет? сорри я java совсем не знаю если что
в си у тебя это может изменить vtable, например (всякая магия register spill), в джаве у тебя либо просто может быть незамеченная запись (на настенных часах запись произошла раньше чтения, но нет цепочки happens-before, которая приводит к видимости этой записи считывающим потоком), или порванная запись для double и long (но не для мелких типов).
источник

P

Pavel in rust_offtopic
Alex Zhukovsky
не всегда помнишь все такие нюансы спеки
просто помни про happens-before
источник