Есть бенчмарки?Интеррапт wrote: А если посмотреть на ARC в Objective-C, то все garbage collectors (по performance и predictability)
Переквалификация c#-> ??
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Переквалификация c#-> ??
In vino Veritas!
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Переквалификация c#-> ??
Ну как бы это я знаю. Но мы же не SmallTalk ща обсуждаем.dotcom wrote:Если быть занудным, то конструкция сообщений пришла из Smalltalk'а. Мы тут года 4 тому назад даже мелкий флейм по этому поводу имели.Интеррапт wrote: Менее лаконичным язык выглядит только из-за того, что нужно указывать имена параметров (что-то вроде как в Питоне, только в Питоне это не обязательно). Ну т.е. чтобы добавить обьект в user settings, нужно явно это описывать, что-то вроде:
-
- Уже с Приветом
- Posts: 1582
- Joined: 29 May 2004 21:16
- Location: UA -> US
Re: Переквалификация c#-> ??
А как же всякие @syntesize, @implementation, @property... нагромождения квадратных скобок...?dotcom wrote:Перепутали только язык с Какавой. Какава действительно многословная.Komissar wrote:я чуток посмотрел на обж-си и прифигел от длинного синтакса. Даже "Войну и мир" в оригинале было легче читать!
вот пример разгуглил (с сайта монотача ) тут правда не базовый objective-c а какая-то либа но тем не менее
objective-c
Code: Select all
CFStringRef keys[] = {
kCTFontAttributeName,
kCTForegroundColorAttributeName
};
CFTypeRef bval[] = {
cfListLineCTFontRef,
CGColorGetConstantColor(kCGColorBlack)
};
attr = CFDictionaryCreate (kCFAllocatorDefault,
(const void **) &keys, (const void **) &bval,
sizeof(keys) / sizeof(keys[0]), &kCFTypeDictionaryKeyCallBacks,
&kCFTypeDictionaryValueCallBacks);
astr = CFAttributedStringCreate(kCFAllocatorDefault, CFSTR("Hello World"), attr);
Code: Select all
var attrs = new CFStringAttributes {
Font = listLineCTFont,
ForegroundColor = UIColor.Black.CGColor
};
var astr = new NSAttributedString ("Hello World", attrs);
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Переквалификация c#-> ??
Только то что вы написали, имеет слабое отношение к Objective-C. Это именно вызов Сишных функций из Сишного кода, который находится в Objective-C программе.Zhek wrote: вот пример разгуглил (с сайта монотача ) тут правда не базовый objective-c а какая-то либа но тем не менее
objective-cCode: Select all
CFStringRef keys[] = { kCTFontAttributeName, kCTForegroundColorAttributeName }; CFTypeRef bval[] = { cfListLineCTFontRef, CGColorGetConstantColor(kCGColorBlack) }; attr = CFDictionaryCreate (kCFAllocatorDefault, (const void **) &keys, (const void **) &bval, sizeof(keys) / sizeof(keys[0]), &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); astr = CFAttributedStringCreate(kCFAllocatorDefault, CFSTR("Hello World"), attr);
-
- Уже с Приветом
- Posts: 1582
- Joined: 29 May 2004 21:16
- Location: UA -> US
Re: Переквалификация c#-> ??
Ну я про функционал objective-c и не спорю, конечно он мощный. Но вот почему бы им было не взять обычный c/c++ синтаксис ... Зачем выдумывать новый синтаксис постоянно лучше бы расширяли билиотеки компонентов полезных
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Переквалификация c#-> ??
Три строчки, если не считать самого jquery. С jquery никто не прячем сам JS по крайней мере. Собственно, в том и проблема, что все эти надстройки над JS по сути макроязыки, затыкающие недостатки языка и фрагментацию браузеров. Ничего хорошего в этом нет. Кросс-компиляция задолбала!crypto5 wrote: А сколько ваш hello world с прицепленным jquery занимает?
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Переквалификация c#-> ??
Objective C был рожден еще когда C++ не было, если что.Zhek wrote:Ну я про функционал objective-c и не спорю, конечно он мощный. Но вот почему бы им было не взять обычный c/c++ синтаксис ... Зачем выдумывать новый синтаксис постоянно лучше бы расширяли билиотеки компонентов полезных
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Переквалификация c#-> ??
@synthesize уже deprecated, его можно не использовать. Насчет, @implementation - это имплементация класса, т.к. в Objective-C (как и в C++) есть декларация класса, а есть имплементация.Zhek wrote: А как же всякие @syntesize, @implementation, @property... нагромождения квадратных скобок...?
Что же может быть непонятного?
Code: Select all
// Declaration
@interface MyClass
@property (nonatomic, retain) NSString* name;
@end
// Implementation
@implementation MyClass
- (id)init {
self = [super init];
if (self) {
self.name = @"Some default name";
}
return self;
}
@end
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Переквалификация c#-> ??
Чем плохи @synthesize и @property? Простой синтаксис, семантика тоже понятна с первого раза. Не все сразу понимают разницу между сообщениями в ObjC vs методами в C++, но это тоже не rocket science.Zhek wrote:А как же всякие @syntesize, @implementation, @property... нагромождения квадратных скобок...?dotcom wrote:Перепутали только язык с Какавой. Какава действительно многословная.Komissar wrote:я чуток посмотрел на обж-си и прифигел от длинного синтакса. Даже "Войну и мир" в оригинале было легче читать!
-
- Уже с Приветом
- Posts: 64661
- Joined: 12 Jul 2002 16:38
- Location: г.Москва, ул. Б. Лубянка, д.2
Re: Переквалификация c#-> ??
а я, помнится, во времена царствия Вижуал Бейсика серьезно увлекся венгерской нотацией. А к временам Явы я еще и подсел на использование 2-3 буквенной аббревиатурой в начале имени класса/пакета, так, чтобы имя проекта было закодировано в аббревиатуре, типа ABC_Employee для AnotherBullshitCode project.
Потом, правда, забросил, стал пользовать явовские нотации.
Потом, правда, забросил, стал пользовать явовские нотации.
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Переквалификация c#-> ??
Я про твои аналогии ObjC с Питоном. Занудствую. Стоит вспомнить, что все пришло от Smalltalk'а.Интеррапт wrote: Ну как бы это я знаю. Но мы же не SmallTalk ща обсуждаем.
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Переквалификация c#-> ??
Oh brother. Нам тут только не хватало flame'а про memory management... опять.crypto5 wrote:Есть бенчмарки?Интеррапт wrote: А если посмотреть на ARC в Objective-C, то все garbage collectors (по performance и predictability)
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Переквалификация c#-> ??
Не понял, что значить взять обычный С синтаксис. Там и так есть обычный С синтаксис, вы обычную С программу можете засунуть в Objective-C и она запустится. Мало того, вы и С++ можете засунуть в Objective-C++ и оно запустится. Другое дело, что собственно по синтаксису - Objective-C намного проще, чем тот же C++.Zhek wrote:Ну я про функционал objective-c и не спорю, конечно он мощный. Но вот почему бы им было не взять обычный c/c++ синтаксис ... Зачем выдумывать новый синтаксис постоянно лучше бы расширяли билиотеки компонентов полезных
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Переквалификация c#-> ??
А... ну это да. Но мало кто тут на SmallTalk работал (я тоже не работал, так, историю немного почитал), вот и привел аналогию с Питоном.dotcom wrote:Я про твои аналогии ObjC с Питоном. Занудствую. Стоит вспомнить, что все пришло от Smalltalk'а.Интеррапт wrote: Ну как бы это я знаю. Но мы же не SmallTalk ща обсуждаем.
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Переквалификация c#-> ??
Сколько пакетов требуется на код гмыла? Сколько надо ждать пользователю, чтобы загрузить js апп... опять? Сколько надо тратить лепестричесвта, чтобы интерпретировать все это каждый раз после того как юзер нажал refresh? Может, все-таки, сдеать по-человечески, чтобы компоненты оседали в persistent storage, а не в кэше браузера? Тоже не rocket science.crypto5 wrote: Ну jqeury это сейчас lingva latina, откуда вообще такая тяга сильно минимизировать js код, он же в один сетевой пакет помещается.
-
- Уже с Приветом
- Posts: 1582
- Joined: 29 May 2004 21:16
- Location: UA -> US
Re: Переквалификация c#-> ??
Да нет, все понятно. Просто имхо по сравнению с сишарпом кажеться что много лишних букв. (и опять же разделение на хедеры и исплементацию тоже имхо не нужно (да я знаю что в Си также)...в сишарпе и без этого обходяться ведь)Интеррапт wrote: @synthesize уже deprecated, его можно не использовать. Насчет, @implementation - это имплементация класса, т.к. в Objective-C (как и в C++) есть декларация класса, а есть имплементация.
Что же может быть непонятного?
но может надо мне и revisit это...а то я посмотрел 5-6 лекция Stanford'ских по IPhone Development и чтото как то не пошло, поэтому на Xamarin и начал делать аппу.
-
- Уже с Приветом
- Posts: 9035
- Joined: 25 Oct 2011 19:02
- Location: SVO->ORD->SFO
Re: Переквалификация c#-> ??
Пара недель усиленных тренеровок с ObjC/Cocoa и неделя ломок, а потом уже пойдет само собой.Zhek wrote: но может надо мне и revisit это...а то я посмотрел 5-6 лекция Stanford'ских по IPhone Development и чтото как то не пошло, поэтому на Xamarin и начал делать аппу.
-
- Уже с Приветом
- Posts: 1582
- Joined: 29 May 2004 21:16
- Location: UA -> US
Re: Переквалификация c#-> ??
Ну я в основном жалуюсь на квадратные скобки и имена парамовИнтеррапт wrote: Не понял, что значить взять обычный С синтаксис. Там и так есть обычный С синтаксис, вы обычную С программу можете засунуть в Objective-C и она запустится. Мало того, вы и С++ можете засунуть в Objective-C++ и оно запустится. Другое дело, что собственно по синтаксису - Objective-C намного проще, чем тот же C++.
-
- Уже с Приветом
- Posts: 1582
- Joined: 29 May 2004 21:16
- Location: UA -> US
Re: Переквалификация c#-> ??
Надо собраться с духом и себя пересилить а то очень уж сишарп нравиться... Cocoa само пошло нормально (через Xamarin) , по идее должно помочь вгзлянуть свежим взглядом на обжективсdotcom wrote:Пара недель усиленных тренеровок с ObjC/Cocoa и неделя ломок, а потом уже пойдет само собой.Zhek wrote: но может надо мне и revisit это...а то я посмотрел 5-6 лекция Stanford'ских по IPhone Development и чтото как то не пошло, поэтому на Xamarin и начал делать аппу.
-
- Уже с Приветом
- Posts: 1582
- Joined: 29 May 2004 21:16
- Location: UA -> US
Re: Переквалификация c#-> ??
Не знал, спасибо. Думал что позжеdotcom wrote:Objective C был рожден еще когда C++ не было, если что.Zhek wrote:Ну я про функционал objective-c и не спорю, конечно он мощный. Но вот почему бы им было не взять обычный c/c++ синтаксис ... Зачем выдумывать новый синтаксис постоянно лучше бы расширяли билиотеки компонентов полезных
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Переквалификация c#-> ??
Бенчмарки сходу не дам. По части predictability - ну ты и сам знаешь, что GC может выстрелить когда не нужно. Особенно это касается клиентских приложений (всяких игр и т.п.). А вот в Objective-C с ARC такого в принципе вообще произойти не может, там на уровне компилятора идет обработка reference counting и autorelease pools, которое великолепно работает. Конечно, нужно чуть больше внимательности работая с Сишным функциями, что в iOS сплошь и рядом (всякие bridge и т.п.), но то, что для мобильных устройств ARC намного более беспроблемная и выигрышная технология - у меня лично вообще сомнений не вызывает.crypto5 wrote:Есть бенчмарки?Интеррапт wrote: А если посмотреть на ARC в Objective-C, то все garbage collectors (по performance и predictability)
-
- Уже с Приветом
- Posts: 4637
- Joined: 24 Oct 2009 01:38
- Location: Chicago ;-) -> SFBA!
Re: Переквалификация c#-> ??
Вполне возможно они оседают и не парсятся каждый раз.dotcom wrote:Сколько пакетов требуется на код гмыла? Сколько надо ждать пользователю, чтобы загрузить js апп... опять? Сколько надо тратить лепестричесвта, чтобы интерпретировать все это каждый раз после того как юзер нажал refresh? Может, все-таки, сдеать по-человечески, чтобы компоненты оседали в persistent storage, а не в кэше браузера? Тоже не rocket science.crypto5 wrote: Ну jqeury это сейчас lingva latina, откуда вообще такая тяга сильно минимизировать js код, он же в один сетевой пакет помещается.
In vino Veritas!
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Переквалификация c#-> ??
Они почти одновременно появились.Zhek wrote:Не знал, спасибо. Думал что позжеdotcom wrote:Objective C был рожден еще когда C++ не было, если что.Zhek wrote:Ну я про функционал objective-c и не спорю, конечно он мощный. Но вот почему бы им было не взять обычный c/c++ синтаксис ... Зачем выдумывать новый синтаксис постоянно лучше бы расширяли билиотеки компонентов полезных
-
- Уже с Приветом
- Posts: 64661
- Joined: 12 Jul 2002 16:38
- Location: г.Москва, ул. Б. Лубянка, д.2
Re: Переквалификация c#-> ??
я помню, на самой-самой первой работе в индустрии в США нас, девелоперов, позвали на какой-то семинар с чипсами и печенюшками (mind you, it was very early 90-s), и на семинаре мужик со стороны стал заливать про SmallTalk, так его наши "деды" (тогда это были пожилые белые VAX/VMS программеры) почти что тухлыми помидорами закидали, хотя мне казалось, мужик интересно рассказывал...
-
- Уже с Приветом
- Posts: 17281
- Joined: 07 Sep 2011 10:05
- Location: Seattle, WA
Re: Переквалификация c#-> ??
Ну так Objective-C это и не есть SmallTalk. Унаследовал кой-какие характеристики Smalltalk, но при этом намного более прагматичный.Komissar wrote:я помню, на самой-самой первой работе в индустрии в США нас, девелоперов, позвали на какой-то семинар с чипсами и печенюшками (mind you, it was very early 90-s), и на семинаре мужик со стороны стал заливать про SmallTalk, так его наши "деды" (тогда это были пожилые белые VAX/VMS программеры) почти что тухлыми помидорами закидали, хотя мне казалось, мужик интересно рассказывал...