The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Компания Apple выпустила язык программирования Swift 4.1, opennews (??), 30-Мрт-18, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


7. "Компания Apple выпустила язык программирования Swift 4.1"  +3 +/
Сообщение от ДяДя (?), 30-Мрт-18, 09:43 
> Вместо сборщика мусора в Swift используются средства подсчёта ссылок на объекты.

Это оксюморон!!!
Формально с точки зрения теории сборки мусора подсчёта ссылок на объекты является сборкой мусора.

Ответить | Правка | Наверх | Cообщить модератору

8. "Компания Apple выпустила язык программирования Swift 4.1"  +1 +/
Сообщение от Аноним (-), 30-Мрт-18, 09:50 
Хер там, циклические зависимости подсчет ссылок не разрулит.
Ответить | Правка | Наверх | Cообщить модератору

16. "Компания Apple выпустила язык программирования Swift 4.1"  +5 +/
Сообщение от angra (ok), 30-Мрт-18, 09:59 
Погугли weak reference
У каждого сборщика мусора есть свои проблемы. Но наличие проблем не превращает их в другие сущности. Другое дело, что большинство технически безграмотно и считает трассирующие сборщики мусора их единственным вариантом.
Ответить | Правка | Наверх | Cообщить модератору

86. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним (-), 30-Мрт-18, 23:29 
>Погугли weak reference

Я прекрасно знаю что такое weak reference. И то что их ставить надо руками. В отличие от сборщика мусора где просто все работает само и ничего делать не надо.

Ответить | Правка | Наверх | Cообщить модератору

12. "Компания Apple выпустила язык программирования Swift 4.1"  –6 +/
Сообщение от Alexey (??), 30-Мрт-18, 09:55 
в Swift подсчет ссылок выполняется на этапе компиляции а не выполнения как в Java. На мобилках отсутствие GC визуально заметно.
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

17. "Компания Apple выпустила язык программирования Swift 4.1"  +5 +/
Сообщение от angra (ok), 30-Мрт-18, 10:04 
В java вообще не выполняется подсчет ссылок, там принципиально другой сборщик мусора. Ну и задача тебе на каникулы, напиши программу, которая примет от пользователя число, а потом создаст массив с количеством объектов, равным введенному числу, а потом по очереди их из массива уберет. Помедитируй над подсчетом ссылок во время компиляции в этом случае.


Ответить | Правка | Наверх | Cообщить модератору

28. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Alexey (??), 30-Мрт-18, 10:31 
А в чем проблема? Код arc не читал, но документация утверждает что после прекращения использования объекта он зарелизится (уменьшится количество ссылок на 1), если количество сылок будет равно 0 то объект удалится. Это раньше надо было делать руками в Objective-C, с появлением arc просто пропала необходимость писать [object release].

> В java вообще не выполняется подсчет ссылок, там принципиально другой сборщик мусора.

возможно я ошибся, на java не пишу

Ответить | Правка | Наверх | Cообщить модератору

41. "Компания Apple выпустила язык программирования Swift 4.1"  +3 +/
Сообщение от Очередной аноним (?), 30-Мрт-18, 11:59 
Что-то от Ваших слов в моих слабых ограниченных мозгах просто какой-то аццкий лютый диссонанс происходит.

> в Swift подсчет ссылок выполняется на этапе компиляции

Вам указали, что в общем случае компилятор не может знать сколько объектов будет создано в процессе работы программы, которая ещё только компилируется в данный момент, ибо как минимум (компилятор) не знает, какие данные придут извне для обработки (какой будет пользовательский ввод, или что придет с файловой системы или по сети). Но Вы тут же:

> Код arc не читал, но документация утверждает что после прекращения использования
> объекта он зарелизится (уменьшится количество ссылок на 1), если количество сылок
> будет равно 0 то объект удалится.

В Вашем Swift-мирке компилятор (то самое, что компилирует исходный код) в процессе своей работы ещё и выполняет компилируемую программу? И даже входные данные для обработки тут же откуда-то получает?

Ответить | Правка | Наверх | Cообщить модератору

46. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Crazy Alex (ok), 30-Мрт-18, 12:13 
Вы путаете автоматический подсчёт ссылок (который делается в рантайме, разумеется, но не требует явных указаний со стороны программиста) с "подсчётом на этапе компиляции" что, разумеется, невозможно кроме совсем уж частных случаев или введения очень жёстких правил доступа и контроля времени жизни, как в Rust.
Ответить | Правка | К родителю #28 | Наверх | Cообщить модератору

57. "Компания Apple выпустила язык программирования Swift 4.1"  –1 +/
Сообщение от Alexey (??), 30-Мрт-18, 13:51 
абсолютно верно, я был неаккуратен в формулировках
Ответить | Правка | Наверх | Cообщить модератору

25. "Компания Apple выпустила язык программирования Swift 4.1"  +1 +/
Сообщение от ДяДя (?), 30-Мрт-18, 10:27 
> в Swift подсчет ссылок выполняется на этапе компиляции

Это невозможно.

Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

26. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от ДяДя (?), 30-Мрт-18, 10:29 
>в Swift подсчет ссылок выполняется на этапе компиляци

Это невозможно в нашей Вселенной.

Ответить | Правка | К родителю #12 | Наверх | Cообщить модератору

30. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Alexey (??), 30-Мрт-18, 10:38 
имел ввиду добавление retain/release методов в код делает компилятор

https://developer.apple.com/library/content/releasenotes/Obj...

Ответить | Правка | Наверх | Cообщить модератору

27. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от _hide_ (ok), 30-Мрт-18, 10:31 
Не является. Потому что подсчет ссылок приводит к перманентному удалению объекта, а не к отложенной очистке.
Так что подсчет ссылок и сборка мусора является способами управления жизненным циклом объектов, просто частенько их используют вместе.
Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

42. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от ДяДя (?), 30-Мрт-18, 12:03 
См. первоисточники.
Чисто формально в OpenJDK вообще не сборка мусора, а поиск живых объектов.
Ответить | Правка | Наверх | Cообщить модератору

66. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Анонимусис (?), 30-Мрт-18, 14:58 
autorelease pool --- это не отложенная очистка?
Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

50. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним84701 (ok), 30-Мрт-18, 13:02 
>> Вместо сборщика мусора в Swift используются средства подсчёта ссылок на объекты.
> Это оксюморон!!! Формально с точки зрения теории сборки мусора подсчёта ссылок на объекты является
> сборкой мусора.

Это маркетология.
Да и вообще, ARC звучит круче и солидней, чем "банальный и медленный счетчик ссылок, как в том же CPython, но без разруливания циклических зависимостей".

Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

67. "Компания Apple выпустила язык программирования Swift 4.1"  –1 +/
Сообщение от Анонимусис (?), 30-Мрт-18, 15:00 
> Да и вообще, ARC звучит круче и солидней, чем "банальный и медленный счетчик ссылок, как в том же CPython, но без разруливания циклических зависимостей".

во-первых arc = automatic reference counting, перевод нужен?

во-вторых в питоне все же другой алгоритм

Ответить | Правка | Наверх | Cообщить модератору

69. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Andrey Mitrofanov (?), 30-Мрт-18, 15:08 
>> Да и вообще, ARC звучит круче и солидней, чем "банальный и медленный счетчик ссылок, как в том же CPython, но без разруливания циклических зависимостей".
> во-первых arc = automatic reference counting, перевод нужен?

Так вот вы про какой http://www.arclanguage.org/ "arc".

Что ж вы сразу-то молчали? :7

> во-вторых в питоне все же другой алгоритм

Ответить | Правка | Наверх | Cообщить модератору

70. "Компания Apple выпустила язык программирования Swift 4.1"  +1 +/
Сообщение от Аноним84701 (ok), 30-Мрт-18, 15:17 
>> Да и вообще, ARC звучит круче и солидней, чем "банальный и медленный счетчик ссылок, как в том же CPython, но без разруливания циклических зависимостей".
> во-первых arc = automatic reference counting, перевод нужен?

Ох уж эти фанаты.
С чего это вы взяли, что аббревиатура мне не знакома или требует перевода?

А фигурирует оно везде почему-то как "ARC", хотя вне ябла обычно ограничиваются "ref(erence) count(ing)", т.к. всем причастным ясно, что оно, в этом контексте, обычно таки всегда автоматическое. Потому что при неавтоматическом можно и сразу ручками проставлять free, вместо заботливого выписывания "inc(refX);dec(refY)" для тормозной обертки.

Ответить | Правка | К родителю #67 | Наверх | Cообщить модератору

78. "Компания Apple выпустила язык программирования Swift 4.1"  –1 +/
Сообщение от Анонимусис (?), 30-Мрт-18, 18:10 
>С чего это вы взяли, что аббревиатура мне не знакома или требует перевода?

а потому что вы так свои комменты формулируете

>Потому что при неавтоматическом можно и сразу ручками проставлять free, вместо заботливого выписывания "inc(refX);dec(refY)" для тормозной обертки.

молодой человек, вы таки хотите сказать, что kobject_put в этом вашем л-нуксе тормозной? (я надеюсь, вы сможете нагуглить что оно делает без сторонней помощи)

Ответить | Правка | Наверх | Cообщить модератору

81. "Компания Apple выпустила язык программирования Swift 4.1"  +1 +/
Сообщение от Аноним84701 (ok), 30-Мрт-18, 18:33 
>>С чего это вы взяли, что аббревиатура мне не знакома или требует перевода?
> а потому что вы так свои комменты формулируете

В общем, из серии "сам додумал, сам оспорил" …

>>Потому что при неавтоматическом можно и сразу ручками проставлять free, вместо заботливого выписывания "inc(refX);dec(refY)" для тормозной обертки.
> молодой человек, вы таки хотите сказать, что kobject_put в этом вашем л-нуксе

Дедуля, про контекст, см "оно, в этом контексте"  в предыдущем предложении было не ради красного словца написано. А то ведь ref. counting много где еще применяется - см. тот же гткшный gobject или ФС.

Ответить | Правка | Наверх | Cообщить модератору

82. "Компания Apple выпустила язык программирования Swift 4.1"  –1 +/
Сообщение от Анонимусис (?), 30-Мрт-18, 19:08 
>Дедуля, про контекст, см "оно, в этом контексте" (т.е. – ЯП) в предыдущем предложении было не ради красного словца написано.

внучек, контекст заключается в том, что "подсчет ссылок" и "использование malloc/free" --- это ни разу не антонимы, это во-первых.

во-вторых, можно ручками (как в л-нуксе) прописывать вызовы к манипуляторам рефкаунта, а можно сделать так, чтобы компилятор сам это делал. собственно ябл и сделал второе

Ответить | Правка | Наверх | Cообщить модератору

83. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Аноним84701 (ok), 30-Мрт-18, 19:37 
>>Дедуля, про контекст, см "оно, в этом контексте" (т.е. – ЯП) в предыдущем предложении было не ради красного словца написано.
> внучек, контекст заключается в том, что "подсчет ссылок" и "использование malloc/free"
> --- это ни разу не антонимы, это во-первых.

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

> во-вторых, можно ручками (как в л-нуксе) прописывать вызовы к манипуляторам рефкаунта,
> а можно сделать так, чтобы компилятор сам это делал. собственно ябл и сделал второе

Можно, разрешаю! Все лучше, чем сравнивать ядерное, сишное  API и концепт на уровне ЯП с автоматическим управлением памятью.

Разъясняю:
кроме (и задолго до) Ябла то же самое [ARC, "манипуляция" счетчика на уровне ЯП/компилятора] сделала еще куча разработчиков, в куче ЯП/ЯП-реализаций: начиная скриптухой вроде питона или перла, частично-опционально плюсы с их смартпоинтерами (тот же shared-pointer) и вплоть до такой "маргинальщины", как гнумовские vala или geany, реализованные буквально в одно-два лица, студентами (как минимум, в случае с vala).
Но громко орут, похваляются (и чуть что – оскорбляются), преподнося все как "великое достижение", каждый раз только надкушенные – _вот это_ и есть контекст "про ЯП" и вообще, этой ветки, дедуля ;)


Ответить | Правка | Наверх | Cообщить модератору

94. "Компания Apple выпустила язык программирования Swift 4.1"  –2 +/
Сообщение от Анонимусис (?), 31-Мрт-18, 15:07 
>Но громко орут, похваляются (и чуть что – оскорбляются), преподнося все как "великое достижение", каждый раз только надкушенные – _вот это_ и есть контекст "про ЯП" и вообще, этой ветки, дедуля ;)

внучек, ты же в курсе, что в старых версия gcc (там где еще был obj-c), нет ARC? потому что реализовать ARC в терминах gcc было нереальной задачей и именно поэтому ябл переехала на шланг.

а про достижение - во времена java/go/python/js/c#, использование ARC вместо тормозного gc можно и нужно считать достижением

Ответить | Правка | Наверх | Cообщить модератору

95. "Компания Apple выпустила язык программирования Swift 4.1"  +2 +/
Сообщение от Аноним84701 (ok), 31-Мрт-18, 17:41 
> внучек, ты же в курсе, что в старых версия gcc (там где
> еще был obj-c), нет ARC? потому что реализовать ARC в терминах gcc было нереальной задачей и именно поэтому ябл переехала на шланг.

О как? Причина, оказывается, уже не пробно-успешное коммерческое (закрытое) использование LLVM Яблом и одновременный переход GCC на GPLv3, а "неосиляние", тьху, "нереальность" решения задачи, с которой справились два студня (см. vala)
Ясно. Понятно . *ищет вилку, чтобы снять лапшу с ушей*

> а про достижение - во времена java/go/python/js/c#, использование ARC вместо тормозного gc можно и нужно считать достижением
> использование ARC вместо тормозного gc

Достижением маркетолугов Ябла – безусловно.  Именно об этом и речь - ARC оказывается уже  совсем не тормозит (повторять перед зеркалом каждое утро) и вообще,  не является одной из разновидностей GC.
В общем,
/0

Ответить | Правка | Наверх | Cообщить модератору

79. "Компания Apple выпустила язык программирования Swift 4.1"  +/
Сообщение от Crazy Alex (ok), 30-Мрт-18, 18:17 
Оно ARC потому что до 2013-го, кажется, года оно именно ручным и было (плюс костыль NSAutoreleasePool), а потом эппл таки сподобилась сделать автомат и обозвала это дело ARC.
Ответить | Правка | К родителю #70 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру