Переквалификация c#-> ??

User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Переквалификация c#-> ??

Post by Интеррапт »

Кстати, в Objective-C одно время garbage collector поддерживался, а сейчас все - deprecated. ARC оказался гораздо лучшим решением.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Переквалификация c#-> ??

Post by crypto5 »

Интеррапт wrote:
crypto5 wrote:
Интеррапт wrote: А если посмотреть на ARC в Objective-C, то все garbage collectors (по performance и predictability)
Есть бенчмарки? :smoke:
Бенчмарки сходу не дам. По части predictability - ну ты и сам знаешь, что GC может выстрелить когда не нужно. Особенно это касается клиентских приложений (всяких игр и т.п.). А вот в Objective-C с ARC такого в принципе вообще произойти не может, там на уровне компилятора идет обработка reference counting и autorelease pools, которое великолепно работает. Конечно, нужно чуть больше внимательности работая с Сишным функциями, что в iOS сплошь и рядом (всякие bridge и т.п.), но то, что для мобильных устройств ARC намного более беспроблемная и выигрышная технология - у меня лично вообще сомнений не вызывает.
В этом плане есть два кейса
- когда код плодит локальные обьекты, в этом случае и джава с escape analysis неплохо справляется размещая их на стеке.
- когда код плодит глобальные обьекты которые в другом месте будут юзаться. Как в таком случае обджектив поступает?
In vino Veritas!
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Переквалификация c#-> ??

Post by АццкоМото »

Komissar wrote:а я, помнится, во времена царствия Вижуал Бейсика серьезно увлекся венгерской нотацией.
старина йоганесс брамс! не признал в гримме!
Мат на форуме запрещен, блдж!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Переквалификация c#-> ??

Post by Интеррапт »

crypto5 wrote:- когда код плодит глобальные обьекты которые в другом месте будут юзаться. Как в таком случае обджектив поступает?
Если разговор идет насчет клиентского кода, то там как бы глобальных обьектов довольно мало плодится. Хотя давайте определимся, что вы понимаете под глобальными обьектами?
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Переквалификация c#-> ??

Post by crypto5 »

Интеррапт wrote:
crypto5 wrote:- когда код плодит глобальные обьекты которые в другом месте будут юзаться. Как в таком случае обджектив поступает?
Если разговор идет насчет клиентского кода, то там как бы глобальных обьектов довольно мало плодится. Хотя давайте определимся, что вы понимаете под глобальными обьектами?
Тот который за пределами метода в трех других методах используется.
In vino Veritas!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Переквалификация c#-> ??

Post by Интеррапт »

crypto5 wrote:
Интеррапт wrote:
crypto5 wrote:- когда код плодит глобальные обьекты которые в другом месте будут юзаться. Как в таком случае обджектив поступает?
Если разговор идет насчет клиентского кода, то там как бы глобальных обьектов довольно мало плодится. Хотя давайте определимся, что вы понимаете под глобальными обьектами?
Тот который за пределами метода в трех других методах используется.
Ну и чем это глобальная переменная? Это instance variable, никак не пойму, что вы глобальной переменной называете.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Переквалификация c#-> ??

Post by crypto5 »

Интеррапт wrote:
crypto5 wrote:
Интеррапт wrote:
crypto5 wrote:- когда код плодит глобальные обьекты которые в другом месте будут юзаться. Как в таком случае обджектив поступает?
Если разговор идет насчет клиентского кода, то там как бы глобальных обьектов довольно мало плодится. Хотя давайте определимся, что вы понимаете под глобальными обьектами?
Тот который за пределами метода в трех других методах используется.
Ну и чем это глобальная переменная? Это instance variable, никак не пойму, что вы глобальной переменной называете.
Ок, назовем ее instance variable, как вам угодно, мне без разницы, так что там objective с ней делает?
In vino Veritas!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Переквалификация c#-> ??

Post by Интеррапт »

crypto5 wrote: Ок, назовем ее instance variable, как вам угодно, мне без разницы, так что там objective с ней делает?
Хранит в heap memory. Но в зависимости от того, что сочтет оптимизатор компилятора, то весь обьект целиком может оказаться в стеке. А что?

Только я не совсем понимаю, вы отрицаете, что у джавы вызов GC может отнимать значительное время и собственно вообще non-deterministic?
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Переквалификация c#-> ??

Post by crypto5 »

Интеррапт wrote:
crypto5 wrote: Ок, назовем ее instance variable, как вам угодно, мне без разницы, так что там objective с ней делает?
Хранит в heap memory. Но в зависимости от того, что сочтет оптимизатор компилятора, то весь обьект целиком может оказаться в стеке. А что?

Только я не совсем понимаю, вы отрицаете, что у джавы вызов GC может отнимать значительное время и собственно вообще non-deterministic?
А как он удалится из Heap?
In vino Veritas!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Переквалификация c#-> ??

Post by Интеррапт »

crypto5 wrote:
Интеррапт wrote:
crypto5 wrote: Ок, назовем ее instance variable, как вам угодно, мне без разницы, так что там objective с ней делает?
Хранит в heap memory. Но в зависимости от того, что сочтет оптимизатор компилятора, то весь обьект целиком может оказаться в стеке. А что?

Только я не совсем понимаю, вы отрицаете, что у джавы вызов GC может отнимать значительное время и собственно вообще non-deterministic?
А как он удалится из Heap?
Компилятор вставляет код, который ведет подсчет ссылок на обьект и удаляет его из heap, когда счетчик == 0.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Переквалификация c#-> ??

Post by crypto5 »

Интеррапт wrote:
crypto5 wrote:
Интеррапт wrote:
crypto5 wrote: Ок, назовем ее instance variable, как вам угодно, мне без разницы, так что там objective с ней делает?
Хранит в heap memory. Но в зависимости от того, что сочтет оптимизатор компилятора, то весь обьект целиком может оказаться в стеке. А что?

Только я не совсем понимаю, вы отрицаете, что у джавы вызов GC может отнимать значительное время и собственно вообще non-deterministic?
А как он удалится из Heap?
Компилятор вставляет код, который ведет подсчет ссылок на обьект и удаляет его из heap, когда счетчик == 0.
Т.е. в отдельном участке кода вы не сильно знаете удалится обьект после выхода из области видимости или нет? Это к детерменизму.
А к производительности вроде в интернетах есть сравнения производительности сборщиков мусора и подсчетщиков ссылок, и по ряду причим последние очень сильно проигрывают.
In vino Veritas!
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

Re: Переквалификация c#-> ??

Post by dotcom »

crypto5 wrote: Т.е. в отдельном участке кода вы не сильно знаете удалится обьект после выхода из области видимости или нет? Это к детерменизму.
Программист все знает, на то он и программист.
crypto5 wrote:А к производительности вроде в интернетах есть сравнения производительности сборщиков мусора и подсчетщиков ссылок, и по ряду причим последние очень сильно проигрывают.
Oh, brother #2. :D
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

Re: Переквалификация c#-> ??

Post by dotcom »

Zhek wrote: Надо собраться с духом и себя пересилить :) а то очень уж сишарп нравиться...
Ну нам тут много чего тут нравится. Дай волю всем программировать на том, что нравится, все языки уже давно померли, кроме Basic'а. :D
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

Re: Переквалификация c#-> ??

Post by dotcom »

crypto5 wrote: Вполне возможно они оседают и не парсятся каждый раз.
Оно должно быть предсказуемым и контролируемым.
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Переквалификация c#-> ??

Post by Интеррапт »

crypto5 wrote: Т.е. в отдельном участке кода вы не сильно знаете удалится обьект после выхода из области видимости или нет? Это к детерменизму.
Я абсолютно точно знаю, когда и где удалится обьект в Objective-C.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Переквалификация c#-> ??

Post by crypto5 »

Интеррапт wrote:
crypto5 wrote: Т.е. в отдельном участке кода вы не сильно знаете удалится обьект после выхода из области видимости или нет? Это к детерменизму.
Я абсолютно точно знаю, когда и где удалится обьект в Objective-C.
Откуда?
In vino Veritas!
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

Re: Переквалификация c#-> ??

Post by crypto5 »

dotcom wrote:
smikesh1 wrote: Ну как ран тайм есть - хром ))
Кстати реальных конкурентов все меньше и меньше....
Ну да. Осталось только сделать то же самое для других браузеров. Или хотя бы уговорить тех, кого сами спонсируют (Mozilla). А то ж столько много слов про красоту Dart'а, а что там с поддержкой у других - никто не знает.
Я кстати думаю что они вкомпилят дарт вм в хром, перепишут на нем гмыло и какие то другие апы что бы все работало супербыстро, а в других браузерах тормозило, все перелезут на хром как это уже было, и наступит гуглокапец.
In vino Veritas!
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Переквалификация c#-> ??

Post by АццкоМото »

crypto5 wrote:
dotcom wrote:
smikesh1 wrote: Ну как ран тайм есть - хром ))
Кстати реальных конкурентов все меньше и меньше....
Ну да. Осталось только сделать то же самое для других браузеров. Или хотя бы уговорить тех, кого сами спонсируют (Mozilla). А то ж столько много слов про красоту Dart'а, а что там с поддержкой у других - никто не знает.
Я кстати думаю что они вкомпилят дарт вм в хром, перепишут на нем гмыло и какие то другие апы что бы все работало супербыстро, а в других браузерах тормозило, все перелезут на хром как это уже было, и наступит гуглокапец.
Мне кажется, они будут больше стремиться к поддержке тех фич, которые сейчас не реализуемы стандартными веб-технологиями. Тормоза вторичны
Мат на форуме запрещен, блдж!
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

Re: Переквалификация c#-> ??

Post by dotcom »

crypto5 wrote: Я кстати думаю что они вкомпилят дарт вм в хром, перепишут на нем гмыло и какие то другие апы что бы все работало супербыстро, а в других браузерах тормозило, все перелезут на хром как это уже было, и наступит гуглокапец.
Я примерно о то же думал. Я бы на месте гугла даже не гмыл переписал сначала, а что-то более интерактивное и красивое, разницу в чем пользователь может сразу понять и оценить. Скажем, google docs. Посмотрим. Я никаких телодвижений от гугла писать серезные проекты на языке, который они рекламируют почти два года, пока не видел.
smikesh1
Уже с Приветом
Posts: 162
Joined: 16 Aug 2012 16:35
Location: Frankfurt am Main

Re: Переквалификация c#-> ??

Post by smikesh1 »

dotcom wrote:
crypto5 wrote: Я кстати думаю что они вкомпилят дарт вм в хром, перепишут на нем гмыло и какие то другие апы что бы все работало супербыстро, а в других браузерах тормозило, все перелезут на хром как это уже было, и наступит гуглокапец.
Я примерно о то же думал. Я бы на месте гугла даже не гмыл переписал сначала, а что-то более интерактивное и красивое, разницу в чем пользователь может сразу понять и оценить. Скажем, google docs. Посмотрим. Я никаких телодвижений от гугла писать серезные проекты на языке, который они рекламируют почти два года, пока не видел.
а что есть в дарте такое, чего нет в яваскрипте?
тут как бы речь идет об АПИ браузера, то что они толкают в хтмл5, там локал сторедж, файлы, видео и все такое :)))
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Переквалификация c#-> ??

Post by Интеррапт »

crypto5 wrote:
Интеррапт wrote:
crypto5 wrote: Т.е. в отдельном участке кода вы не сильно знаете удалится обьект после выхода из области видимости или нет? Это к детерменизму.
Я абсолютно точно знаю, когда и где удалится обьект в Objective-C.
Откуда?
Что откуда? Потому что ARC упрощает подсчет ссылок, но это всегда можно сделать вручную. Можно вообще не пользоваться ARC и использовать retain/release для ручного менеджмента памяти. Можно использовать вообще гибридных подход. Но даже с ARC - программист всегда может точно сказать, когда его обьект удалится. Можно даже в любой посмотреть, вызвав метод retainCount, сколько активных references существует для данного обьекта.
Мне верить не обязательно, просто почитайте про memory management для Objective-C.
User avatar
adb
Уже с Приветом
Posts: 9258
Joined: 14 Dec 2001 10:01
Location: Российская Федерация

Re: Переквалификация c#-> ??

Post by adb »

Мягко скажем оверхед на размер счетчика, да на каждый объект...
Миру мир
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Переквалификация c#-> ??

Post by Интеррапт »

adb wrote:Мягко скажем оверхед на размер счетчика, да на каждый объект...
И что?
Если "оверхед" не устраивает, то никто никто не отменял обычные malloc/free и new/delete в Objective-C (или Objective-C++). Сам себе выбираешь, что подходит лучше для той или иной ситуации.
Да и обьекты можно создавать не наследуя от NSObject, если нужно иметь доступ к классам, но без reference counting.
User avatar
АццкоМото
Уже с Приветом
Posts: 15242
Joined: 01 Mar 2007 05:18
Location: VVO->ORD->DFW->SFO->DFW->PDX

Re: Переквалификация c#-> ??

Post by АццкоМото »

да, я тоже нервно отношусь к любому даже самому крошечному оверхеду, когда он навязан. но если есть выбор - это прекрасно
а подход objective c выглядит даже разумнее, чем С++11. а яблофаната во мне заподозрить трудно
Мат на форуме запрещен, блдж!
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

Re: Переквалификация c#-> ??

Post by dotcom »

smikesh1 wrote: а что есть в дарте такое, чего нет в яваскрипте?
Речь идет не только про язык, но и про run-time и интеграцию с браузером. То, что есть в языке, - это отдельный разгвоор. Для начала там есть классы и возможность делать компоненты. Сам язык синтаксически более легковесный и проще компилируется. Этого уже много. С помощью VM можно было расширять возможности браузера, в том числе и имплементируя local storage, инсталируемые компоненты в VM Dart'а.
smikesh1 wrote:тут как бы речь идет об АПИ браузера, то что они толкают в хтмл5, там локал сторедж, файлы, видео и все такое :)))
Ну то, что сам HTML - непотребный стандарт для rich apps, - это мы уже много раз тут перемывали. С ним приходится жить с разными растопырками. Dart - не самая плохая растопырка. Нужна ли она, как ее поддержат другие, и что с ней хочет сделать гугл - вот в чес вопрос.

Return to “Работа и Карьера в IT”