Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Результаты опроса: Какой язык лучше
C# лучше всегда и везде 17 36.17%
Kotlin лучше всегда и везде 3 6.38%
Kotlin лучше для Android-а, C# в остальных случаях 5 10.64%
C# лучше для Web-а, Kotlin в остальных случаях 0 0%
Kotlin для Android-а, C# для Web-а, в остальном одинаковы 0 0%
C# лучше для Android-а, Kotlin в остальных случаях 0 0%
C# для Android-а, Kotlin для Web-а, в остальном одинаковы 1 2.13%
Примерно одинаково хороши во всех областях применения 6 12.77%
Оба бесперспективны 5 10.64%
Оба "Тьюринговская трясина" (п. введён для Fulcrum_013) 4 8.51%
Свой вариант (желательно о нём рассказать) 6 12.77%
Голосовавшие: 47. Вы ещё не голосовали в этом опросе

 
 
Рейтинг 4.69/162: Рейтинг темы: голосов - 162, средняя оценка - 4.69
Модератор
 Аватар для Curry
5165 / 3527 / 536
Регистрация: 01.06.2013
Сообщений: 7,677
Записей в блоге: 9

C# vs Kotlin

30.11.2018, 18:26. Показов 38452. Ответов 384
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!

Java c C# уже сравнивали несколько раз. А как насчёт улучшенного (а может кто то считает "улучшенного") варианта java - языка Kotlin?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.11.2018, 18:26
Ответы с готовыми решениями:

Xamarin vs Kotlin?
Здравствуйте, возник такой вопрос, если откинуть на время ios, и разрабатывать android приложения, что из них будет лучше Xamarin или...

Kotlin vs Java
Добрый день, проконсультируйте плиииз! Больше года не садился за проги под андроид и решил "восстановить навык"... (вобще...

Язык программирования Kotlin
Достаточно интересный новый (2011г.) язык Kotlin, предлагающийся компанией JetBrains (как? вы не слышали про JetBrains?:p:rtfm:) на замену...

384
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
21.12.2018, 20:16
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Curry Посмотреть сообщение
Насчёт передачи данных сообщениями
Передаются не сами данные. Передается сигнал о готовности данных.

Добавлено через 13 минут
Цитата Сообщение от Curry Посмотреть сообщение
А ещё бывают языки с зелёными тредами
А это вообще сапоги в смятку которые к тому же бывают только в фантастике а не в реальности. Если нужно псевдосинхронное выполнение то его просто нужно делать псевдосинхронным а не городить огороды непонятно чего. Кстати тот же композит в плане псевдосинхронного выполнения по факту универсальное решение.
Цитата Сообщение от Curry Посмотреть сообщение
Есть распараллеливание, есть конкуренция.
Вообще то есть распараллеливание в режиме разделения ресурсов и в режиме разделения времени (доступа к ресурсам). Во втором случае есть такие понятия как кооперативный и конкурентный режим владения ресурсами (он же собственно и задает режим вытеснения потоков в ожидающее состояние). А в первом синхронизация доступа к ресурсам не нужна вообще, потому что каждый поток имеет доступ только к своим ресурсам. Но как бы само распараллеливание в режиме разделения времени - штука которую необходимо избегать всеми доступными способами. Лучший способ параллелить - параллелить то что параллелится без синхронизации доступа к ресурсам или в другом месте. И невозможно избежать режима разделения времени только при работе непосредственно с железом.

Добавлено через 12 минут
Цитата Сообщение от Curry Посмотреть сообщение
Да я не конретизировавал в примере что за модули связываются.
А когда дело доходит до конкретики то все крики "позволяет распараллеливать в отличии от" оказываются пшиком.
Потому что в этом месте где оно позволяет параллелить вообще противопоказано.
То же самое кстати касается зеленых потоков. Основные накладные затраты при свитчинге реальных тредов приходятся на инвалидацию кеша, а соответсвенно от природы потоков вообще не зависят.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
23.12.2018, 01:28
Цитата Сообщение от Curry Посмотреть сообщение
без GC пришлось бы освобождать память под сообщения ручками
С каких делов? Грохнет его автовызов когда надо да и все. А когда и как возвращать блок менеджеру памяти и как при этом синхронизироваться - это уже вопросы реализации оператора delete который тоже кастомизируем как угодно.
Но опять же доступ к самому объектом пришлось бы в любом случае как то синхронизировать. А иначе никакого смысла что то ему слать нету вообще. Так что даже синхронизация при возврате блока менеджеру памяти погоды тут не делает в принципе.
0
Эксперт .NET
 Аватар для Usaga
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
21.03.2019, 16:58
Fulcrum_013, автовызов грохнет? Это после того как мы пнём удаление вызовом delete, прикручиваением смарт-поинтеров или явным размещением в стеке? Это не ручная работа, да?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
04.04.2019, 01:12
Usaga, А нужность/ненужность объекта вам все равно вычислять по правилам предметной области при изменении его состояний. GC этих правил знать не может так что тут он не помощник а помешник. Если заметили то весь сыр бор всегда вокруг добавить "все остальное" в метод определяющий ненужность. Вот собственно автоматическим добавлением "всего остального" автоматика на деструкторах и занимается. Определить же тип взаимосвязи вы все равно обязаны на этапе анализе задачи. Потому что в ООП предусмотрено два типа взаимосвязей и любой набор автоматики будет иметь минимум два типа ссылок. Как я вам показывал в примере с коственной утечкой GC от этой обязанности никоим образом не освобождает. А насчет явно на стеке/статической композиции - ну если это размещение оснновное, мало того использования сырых указателей явного вызова new можно избежать везде кроме низкоуровневых библиотек (во всяком случае для наиболее ходового набора контейнеров и структур данных) - ну сами понимаете писать new на каждом шагу на каждый мелкий объект - это просто какой то анахронизм из лихих 90-х.
0
Эксперт .NET
 Аватар для Usaga
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
04.04.2019, 05:57
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А нужность/ненужность объекта вам все равно вычислять по правилам предметной области при изменении его состояний.
Да, это так. И GC тут ничему не мешает. Объект стал не нужен? Выкинули ссылку на него и всё. Или просто вышли из области видимости, где такая ссылка была. Тоже самое, что и в плюсах, с той лишь разницей, что не надо возиться со смартпоинтерами и выбирать, куда помещать объект - в кучу или в стеке.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
05.04.2019, 04:56
Цитата Сообщение от Usaga Посмотреть сообщение
Выкинули ссылку на него и всё.
Для этого нужно знать где эту ссылку искать.

Добавлено через 6 минут
Цитата Сообщение от Usaga Посмотреть сообщение
Или просто вышли из области видимости, где такая ссылка была.
Зачем для этого нужен оверхед в рантайме если это определяется в компайлтайме?
Цитата Сообщение от Usaga Посмотреть сообщение
Тоже самое, что и в плюсах, с той лишь разницей, что не надо возиться со смартпоинтерами и выбирать, куда помещать объект - в кучу или в стеке.
Совсем не тоже самое. Касательно простых объектов - сели их все на стек. Они сами разберутся кому из них нужен буфер в куче.
Цитата Сообщение от Usaga Посмотреть сообщение
с той лишь разницей, что не надо возиться со смартпоинтерами и выбирать
Дык течет же ваш GC если не определять где нужна слабая ссылка. Еще раз для самых одаренных быдлокодеров - определить типы взаимосвязей необходимо по правилам ООП, независимо от способа реализации взаимосвязей при помощи того или иного языка. И никакой алгоритм управления памятью от этого не избавит. Это правила ООП а не какого то конкректного языка или алгоритма управления памятью. А вот обеспечение корректного поведения взаимосвязей по правилам ООП GC исключает.

Добавлено через 6 минут
Цитата Сообщение от Usaga Посмотреть сообщение
Тоже самое, что и в плюсах, с той лишь разницей, что не надо возиться со смартпоинтерами и выбирать, куда помещать объект - в кучу или в стеке.
Совсем не то же самое. Необходимо подстраиваться под то что заложено GC, вместо того чтобы указать автомату что именно он должен должен делать для того или иного объекта/типа ссылки. Как вы к примеру будете решать при помощи GC задачу удаления объектов на которые ссылается менее 2 объектов заданного типа? А такая задача встречается очень часто.
0
Эксперт .NET
 Аватар для Usaga
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
06.04.2019, 05:02
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Для этого нужно знать где эту ссылку искать.
Если вы не знаете, где она, то вам объект УЖЕ не нужен.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Зачем для этого нужен оверхед в рантайме если это определяется в компайлтайме?
Оверхед минимальный. Профит - в почти полном отсутствии необходимости что-то делать в коде. GC сам разберётся. Второе сильно перевешивает первое.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Совсем не тоже самое. Касательно простых объектов - сели их все на стек. Они сами разберутся кому из них нужен буфер в куче.
Ну. Заводите структуры, а не объекты. Тоже поселятся на стеке.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Дык течет же ваш GC если не определять где нужна слабая ссылка. Еще раз для самых одаренных быдлокодеров - определить типы взаимосвязей необходимо по правилам ООП, независимо от способа реализации взаимосвязей при помощи того или иного языка. И никакой алгоритм управления памятью от этого не избавит. Это правила ООП а не какого то конкректного языка или алгоритма управления памятью. А вот обеспечение корректного поведения взаимосвязей по правилам ООП GC исключает.
Он не течёт. Код вы видели. Никакие слабые ссылки не нужны. А в тех редких случаях, где нужны, ну ок. Таких ситуаций минимум. Пример, который вы показывали (где всё решилось WeakReference) - искусственный и некорректный.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Совсем не то же самое. Необходимо подстраиваться под то что заложено GC, вместо того чтобы указать автомату что именно он должен должен делать для того или иного объекта/типа ссылки. Как вы к примеру будете решать при помощи GC задачу удаления объектов на которые ссылается менее 2 объектов заданного типа? А такая задача встречается очень часто.
Нет никакой необходимости подстраиваться. Всё просто работает. Само. А в плюсах вам надо сидеть и выбирать, на стек вы объект положите или в кучу, в смартпоинтер завернёте или владельца создадите. Есть разница, а?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
06.04.2019, 06:56
Цитата Сообщение от Usaga Посмотреть сообщение
Если вы не знаете, где она, то вам объект УЖЕ не нужен.
Пример. По правилам предметной области то что объект не нужен вычислилось в методе объекта. Где искать ссылки?

Добавлено через 3 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
GC сам разберётся.
Пруф в студию. Кучу примеров где GC нихрена не разбирается вам уже приведено. Анализ алгоритма который показывает что GC для задач ООП не предназначен тоже.
Еще раз. Или пример в студию с автоматическим решением вопроса с удалением взаимосвязи при удалении одного из связываемых ею объектов или прикройте хлеборезку по поводу того что GC сам разберется.

Добавлено через 3 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
Таких ситуаций минимум.
В ООП неслабых ссылок вообще нет. Либо слабые (агрегация), либо слабо-владеющие (композиция). В ООП ссылка не препятствует удалению. Вместо этого есть ответственные за удаление (те в кого объект композирован) и характерна обратная задача - разрыв связей удаляемых. Эта задача решаема исключительно инстантным просмотром мусора.

Добавлено через 7 минут
Цитата Сообщение от Usaga Посмотреть сообщение
Нет никакой необходимости подстраиваться. Всё просто работает. Само.
Ну покажите как он сам не течет или с зомбаками справляется или ресурсы сам отпускает вовремя. Для того чтобы это было само GC.Collect должен вызываться после каждого изменения какой либо ссылки. Очевидно что просмотр мусора при таких раскладах гораздо дешевле.
Цитата Сообщение от Usaga Посмотреть сообщение
А в плюсах вам надо сидеть и выбирать, на стек вы объект положите или в кучу, в смартпоинтер
завернёте или владельца создадите. Есть разница, а?
Конечно есть . С GC без вариантов и куча головняка по поводу как разрывать взаимосвязи. А в плюсах есть возможность выбирать как себя вести объектам. Причем из бесконечного множества вариантов, а не только тех которые есть искоропки.
Если честно искоробочные смарты сам не пользую. У них в корне та же проблема что у GC - концепция владения при которой не подходящая для ООП, хотя и поведение слабых и обработка ресурсов корректные. Ну их спецом сделали для тех кому в школе мозг явой изнасиловали.

Добавлено через 2 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
Тоже поселятся на стеке.
вы строку как селите?
string a;
а массив как селите?
List<T> b= new List<b>();
а в плюсах
точно так же селится
string a;
vector b;
так где надо а где не надо думать куда его селить?
0
Эксперт .NET
 Аватар для Usaga
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
06.04.2019, 09:23
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Пример. По правилам предметной области то что объект не нужен вычислилось в методе объекта. Где искать ссылки?
У владельца объекта. Если ссылки находятся на руках других частей системы, то объект нужен. Всё тоже самое справедливо и в С++.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Пруф в студию. Кучу примеров где GC нихрена не разбирается вам уже приведено. Анализ алгоритма который показывает что GC для задач ООП не предназначен тоже.
Еще раз. Или пример в студию с автоматическим решением вопроса с удалением взаимосвязи при удалении одного из связываемых ею объектов или прикройте хлеборезку по поводу того что GC сам разберется.
Вы нихрена не привели. Ваши примеры показали, что это вы ни в чём не разбираетесь. Я вам проказал пример приложения с байндингами. Там всё корректно работает. Но вы его даже запустить не смогли, что многое говорит о вашей нулевой компетенции и тупости головного мозга.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ну покажите как он сам не течет или с зомбаками справляется или ресурсы сам отпускает вовремя. Для того чтобы это было само GC.Collect должен вызываться после каждого изменения какой либо ссылки. Очевидно что просмотр мусора при таких раскладах гораздо дешевле.
Я вам уже показывал реальный пример. Слабо его запустить?

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Конечно есть . С GC без вариантов и куча головняка по поводу как разрывать взаимосвязи.
Это тупая ложь. Такого головняка нет. Я это вам уже показывал. А вы мне такой головняк показать не смогли.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
вы строку как селите?
string a;
а массив как селите?
List<T> b= new List<b>();
а в плюсах
точно так же селится
string a;
vector b;
так где надо а где не надо думать куда его селить?
О чём этот кусок бреда? В шарпе не нужно об этом думать. Хотите на стёке объект локально держать? Сделайте его структурой, а не классом.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
06.04.2019, 10:59
Цитата Сообщение от Usaga Посмотреть сообщение
У владельца объекта.
Т.е. объект должен сообщить владельцу о том что он больше не нужен для чего должен иметь на него обратную ссылку. А остальные взаимосвязи о которых владельцу знать сто лет не надо где искать?

Добавлено через 41 секунду
Цитата Сообщение от Usaga Посмотреть сообщение
А вы мне такой головняк показать не смогли.
Утечки и зомбаки это не головняк?

Добавлено через 1 минуту
Цитата Сообщение от Usaga Посмотреть сообщение
Я вам уже показывал реальный пример. Слабо его запустить?
В этом реальном примере всю корректность поведения обеспечивают средства делающие GC ненужным. Слабо пример корректной работы именно GC без этих средств привести?

Добавлено через 43 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
Сделайте его структурой, а не классом.
Вот и какого ляда при создании класса/структуры мне нужно парится о том где ее потом будут размещать?

Добавлено через 3 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
Там всё корректно работает.
C#
1
2
3
4
while (true){
   var Form=new Form();
   Form.Show();
}
Вы это называете корректно? А необходимость в using или ручном вызове Hide или Dispose для обеспечения корректного поведения как раз и делает GC ненужным от слова совсем.
0
Эксперт .NET
 Аватар для Usaga
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
09.04.2019, 09:09
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Т.е. объект должен сообщить владельцу о том что он больше не нужен для чего должен иметь на него обратную ссылку. А остальные взаимосвязи о которых владельцу знать сто лет не надо где искать?
Объект не обязан такое делать. Это дело владельца определять, нужен объект или нет.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Утечки и зомбаки это не головняк?
Вы не показали утечник и зомбаков. Я вам показал реальный код, который не имеет таких проблем.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
В этом реальном примере всю корректность поведения обеспечивают средства делающие GC ненужным. Слабо пример корректной работы именно GC без этих средств привести?
Давайте-ка вы не будете передёргивать, а? Ручное управление памятью вы в том примере заметили где? Вот то-то же.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Вот и какого ляда при создании класса/структуры мне нужно парится о том где ее потом будут размещать?
Но сейчас же вы паритесь приподнося это как лютый плюс языка.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Вы это называете корректно? А необходимость в using или ручном вызове Hide или Dispose для обеспечения корректного поведения как раз и делает GC ненужным от слова совсем.
Да, корректно. Using не является обязательным, я вам уже об этом сказал. Вы специально игнорируете слова? Ручной вызов Hide() так же не является проблемой, ибо явный императивный механизм закрытия. Не хотите? Заверните в using ограничив скоуп. Вы в плюсах ровно тоже самое делаете. Наличию сборщика мусора это никак не противоречит.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
09.04.2019, 11:18
Цитата Сообщение от Usaga Посмотреть сообщение
Using не является обязательным, я вам уже об этом сказал.
Да набалаболили вы много. А вот документация от разрабов GC По этому поводу абсолютно другого мнения.
Цитата Сообщение от Usaga Посмотреть сообщение
Ручной вызов Hide() так же не является проблемой, ибо явный императивный механизм закрытия. Не хотите? Заверните в using ограничив скоуп. Вы в плюсах ровно тоже самое делаете. Наличию сборщика мусора это никак не противоречит.
Оно просто делает сборщик ненужным.

Добавлено через 6 минут
Цитата Сообщение от Usaga Посмотреть сообщение
Давайте-ка вы не будете передёргивать, а? Ручное управление памятью вы в том примере заметили где? Вот то-то же.
Не путайте понятия управления памятью, управление временем жизни и управление взаимосвязями. Как уже показывалось автоматическое управление памятью эффективным не может быть в принципе, принцип заложенный в GC управление временем жизни корректно для ООП осуществлять не в состоянии, а автоматическое управление взаимосвязями для GC вообще недоступно, потому что как корректное управление временем жизни так и автоматическое управление взаимосвязями требует произведения инстантных действий при выходе из скопа, на что GC не способен в принципе.

Добавлено через 1 минуту
Цитата Сообщение от Usaga Посмотреть сообщение
Вы в плюсах ровно тоже самое делаете.
Только автоматически, в отличии от языков с GC в которых это делается точно так же как в языках с полным отсутствием автоматики.

Добавлено через 1 минуту
Цитата Сообщение от Usaga Посмотреть сообщение
Давайте-ка вы не будете передёргивать, а? Ручное управление памятью вы в том примере заметили где? Вот то-то же.
Тут ручное управление взаимосвяями. Т.е. ручной вызов разрыва взаимосвязей или ручное включение его автовызова. И на автоматическое GC не способен в принципе. БЕз ручного как видили или зомби при использовании костыльных средств не относящихся к GC как к таковому, или утечки при использовании средств только GC.
0
Эксперт .NET
 Аватар для Usaga
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
09.04.2019, 11:25
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Да набалаболили вы много. А вот документация от разрабов GC По этому поводу абсолютно другого мнения.
Балабол тут только один персонаж. Который даже пример запустить не может, который я ему привёл. Или запустил, понял, что обосрался и теперь порит чушь.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Оно просто делает сборщик ненужным.
Момент закрытия формы и её уборка сборщиком - разные вещи.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Только автоматически, в отличии от языков с GC в которых это делается точно так же как в языках с полным отсутствием автоматики.
Я заметил насколько автоматически. Что аж деструктор нужно описывать.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Тут ручное управление взаимосвяями. Т.е. ручной вызов разрыва взаимосвязей или ручное включение его автовызова. И на автоматическое GC не способен в принципе.
Тут закрытие формы. Потому, что это не GC должен решать, когда форме закрываться. Он и не решает. А убирает труп формы, когда она становится не нужна. Что и происходит. И без деструкторов и смартпоинтеров.
1
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
09.04.2019, 11:26
Usaga, И этого персонажа зовут Usaga.
0
Эксперт .NET
 Аватар для Usaga
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
09.04.2019, 11:28
Fulcrum_013, слишком много ошибок вы в своём нике допустили.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
09.04.2019, 11:28
Цитата Сообщение от Usaga Посмотреть сообщение
Балабол тут только один персонаж. Который даже пример запустить не может, который я ему привёл.
И этого персонажа зовут Usaga. Который даже не в состоянии привести пример работы GC а не других средств, делающих GC ненужным от слова совсем.
0
Эксперт .NET
 Аватар для Usaga
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
09.04.2019, 11:29
Где же ваша хвалёная профессиональность? Или самописцы STL'я ошибок своих никогда не признают?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
09.04.2019, 11:29
Цитата Сообщение от Usaga Посмотреть сообщение
А убирает труп формы, когда она становится не нужна.
А не нужна она становится при выходе из скопа ссылки на нее. Где вынос трупа с экрана? Его не будет. Потому что форма держится в списке отображения менеджера форм и никаких средств автоматически это разрулить GC не имеетб даже если ссылка в менеджере слабая, и препятствует созданию автоматики которая способна это разрулить. Та же ситуевина с утечкой или зомбаками которую я вам показывал. Потому что для того чтобы это разрулить нужно отслеживание появления мусора и его инстантный просмотр, что делает GC ненужным от слова совсем.
0
Эксперт .NET
 Аватар для Usaga
14733 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,869
09.04.2019, 11:31
Fulcrum_013, пример вам был дан. И не один. И все корректные. Вы же обратного примера не смогли привести. Всё, что вы тут выкладывали я исправлял парой строк кода и всё начинало работать как надо.

Вы не можете обосновать свою хейтерскую позицию, ибо у вас тупо нет на это компетенции. Только эмоции и ЧСВ.

Добавлено через 50 секунд
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А не нужна она становится при выходе из скопа ссылки на нее. Где вынос трупа с экрана?
Не нужна она становится, когда скажет программист. Вы про немодальные окна не слышали, да?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
09.04.2019, 11:39
Цитата Сообщение от Usaga Посмотреть сообщение
Вы про немодальные окна не слышали, да?
Слышал. Но оно точно так же стало ненужным. Т.е. если вы перепишите ссылку на окно, то с GC вы его вообще никогда закрыть не сможете, если не генерить другой мусор. С современными же средствами автоматики оно закроется сразу при перезаписи ссылки.
Цитата Сообщение от Usaga Посмотреть сообщение
И не один. И все корректные.
И ни одного где корректность поведения обеспечивал бы GC.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.04.2019, 11:39

Kotlin для Android
Здравствуйте, знаю Java SE на приличном уровне, но решил, что для разработки Android приложения лучше подойдет Kotlin, подскажите...

[Kotlin] ACM ICPC
Котлин уже попал в список языков чемпионата мира по программированию (ACM ICPC). Думаю, очень хорошие перспективы у этого языка.

Kotlin lateinit переменная
синтаксис на Kotlin. есть переменная lateinit , но когда при getApiServisce() я проверяю на null происходит фатальная ошибка lateint...

Простая задача по Kotlin
Дана непустая последовательность ненулевых целых чисел. Используя функцию, определить, сколько раз в этой последовательности меняется знак....

Как учить Kotlin и стоит ли?
Добрый день, вообще я фрилансер пишу сайты на таких технологиях HTML, CSS, jQuery, WordPress, сейчас для практики делаю для себя блог на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
260
Ответ Создать тему
Новые блоги и статьи
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru