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

User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

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

Post by crypto5 »

Интеррапт wrote: А если посмотреть на ARC в Objective-C, то все garbage collectors (по performance и predictability)
Есть бенчмарки? :smoke:
In vino Veritas!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

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

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

dotcom wrote:
Интеррапт wrote: Менее лаконичным язык выглядит только из-за того, что нужно указывать имена параметров (что-то вроде как в Питоне, только в Питоне это не обязательно). Ну т.е. чтобы добавить обьект в user settings, нужно явно это описывать, что-то вроде:
Если быть занудным, то конструкция сообщений пришла из Smalltalk'а. Мы тут года 4 тому назад даже мелкий флейм по этому поводу имели. :D
Ну как бы это я знаю. Но мы же не SmallTalk ща обсуждаем.
Zhek
Уже с Приветом
Posts: 1582
Joined: 29 May 2004 21:16
Location: UA -> US

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

Post by Zhek »

dotcom wrote:
Komissar wrote:я чуток посмотрел на обж-си и прифигел от длинного синтакса. Даже "Войну и мир" в оригинале было легче читать!
Перепутали только язык с Какавой. Какава действительно многословная.
А как же всякие @syntesize, @implementation, @property... нагромождения квадратных скобок...?

вот пример разгуглил (с сайта монотача :) ) тут правда не базовый 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);
C#/monotouch/xamarin

Code: Select all

var attrs = new CFStringAttributes {
    Font = listLineCTFont,
    ForegroundColor = UIColor.Black.CGColor
};

var astr = new NSAttributedString ("Hello World", attrs);
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

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

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

Zhek 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);
Только то что вы написали, имеет слабое отношение к Objective-C. Это именно вызов Сишных функций из Сишного кода, который находится в Objective-C программе.
Zhek
Уже с Приветом
Posts: 1582
Joined: 29 May 2004 21:16
Location: UA -> US

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

Post by Zhek »

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

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

Post by dotcom »

crypto5 wrote: А сколько ваш hello world с прицепленным jquery занимает?
Три строчки, если не считать самого jquery. :D С jquery никто не прячем сам JS по крайней мере. Собственно, в том и проблема, что все эти надстройки над JS по сути макроязыки, затыкающие недостатки языка и фрагментацию браузеров. Ничего хорошего в этом нет. Кросс-компиляция задолбала!
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

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

Post by dotcom »

Zhek wrote:Ну я про функционал objective-c и не спорю, конечно он мощный. Но вот почему бы им было не взять обычный c/c++ синтаксис ... Зачем выдумывать новый синтаксис постоянно :pain1: лучше бы расширяли билиотеки компонентов полезных
Objective C был рожден еще когда C++ не было, если что.
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

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

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

Zhek wrote: А как же всякие @syntesize, @implementation, @property... нагромождения квадратных скобок...?
@synthesize уже deprecated, его можно не использовать. Насчет, @implementation - это имплементация класса, т.к. в Objective-C (как и в C++) есть декларация класса, а есть имплементация.

Что же может быть непонятного?

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
И все. Есть готовый класс MyClass, у которого non thread-safe getter/setter под названием name.
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

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

Post by dotcom »

Zhek wrote:
dotcom wrote:
Komissar wrote:я чуток посмотрел на обж-си и прифигел от длинного синтакса. Даже "Войну и мир" в оригинале было легче читать!
Перепутали только язык с Какавой. Какава действительно многословная.
А как же всякие @syntesize, @implementation, @property... нагромождения квадратных скобок...?
Чем плохи @synthesize и @property? Простой синтаксис, семантика тоже понятна с первого раза. Не все сразу понимают разницу между сообщениями в ObjC vs методами в C++, но это тоже не rocket science.
User avatar
Komissar
Уже с Приветом
Posts: 64661
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

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

Post by Komissar »

а я, помнится, во времена царствия Вижуал Бейсика серьезно увлекся венгерской нотацией. А к временам Явы я еще и подсел на использование 2-3 буквенной аббревиатурой в начале имени класса/пакета, так, чтобы имя проекта было закодировано в аббревиатуре, типа ABC_Employee для AnotherBullshitCode project.

Потом, правда, забросил, стал пользовать явовские нотации.
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

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

Post by dotcom »

Интеррапт wrote: Ну как бы это я знаю. Но мы же не SmallTalk ща обсуждаем.
Я про твои аналогии ObjC с Питоном. Занудствую. Стоит вспомнить, что все пришло от Smalltalk'а.
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

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

Post by dotcom »

crypto5 wrote:
Интеррапт wrote: А если посмотреть на ARC в Objective-C, то все garbage collectors (по performance и predictability)
Есть бенчмарки? :smoke:
Oh brother. Нам тут только не хватало flame'а про memory management... опять. :D
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

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

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

Zhek wrote:Ну я про функционал objective-c и не спорю, конечно он мощный. Но вот почему бы им было не взять обычный c/c++ синтаксис ... Зачем выдумывать новый синтаксис постоянно :pain1: лучше бы расширяли билиотеки компонентов полезных
Не понял, что значить взять обычный С синтаксис. Там и так есть обычный С синтаксис, вы обычную С программу можете засунуть в Objective-C и она запустится. Мало того, вы и С++ можете засунуть в Objective-C++ и оно запустится. Другое дело, что собственно по синтаксису - Objective-C намного проще, чем тот же C++.
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

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

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

dotcom wrote:
Интеррапт wrote: Ну как бы это я знаю. Но мы же не SmallTalk ща обсуждаем.
Я про твои аналогии ObjC с Питоном. Занудствую. Стоит вспомнить, что все пришло от Smalltalk'а.
А... ну это да. Но мало кто тут на SmallTalk работал (я тоже не работал, так, историю немного почитал), вот и привел аналогию с Питоном.
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

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

Post by dotcom »

crypto5 wrote: Ну jqeury это сейчас lingva latina, откуда вообще такая тяга сильно минимизировать js код, он же в один сетевой пакет помещается.
Сколько пакетов требуется на код гмыла? Сколько надо ждать пользователю, чтобы загрузить js апп... опять? Сколько надо тратить лепестричесвта, чтобы интерпретировать все это каждый раз после того как юзер нажал refresh? Может, все-таки, сдеать по-человечески, чтобы компоненты оседали в persistent storage, а не в кэше браузера? Тоже не rocket science.
Zhek
Уже с Приветом
Posts: 1582
Joined: 29 May 2004 21:16
Location: UA -> US

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

Post by Zhek »

Интеррапт wrote: @synthesize уже deprecated, его можно не использовать. Насчет, @implementation - это имплементация класса, т.к. в Objective-C (как и в C++) есть декларация класса, а есть имплементация.

Что же может быть непонятного?
Да нет, все понятно. Просто имхо по сравнению с сишарпом кажеться что много лишних букв. (и опять же разделение на хедеры и исплементацию тоже имхо не нужно (да я знаю что в Си также)...в сишарпе и без этого обходяться ведь)

но может надо мне и revisit это...а то я посмотрел 5-6 лекция Stanford'ских по IPhone Development и чтото как то не пошло, поэтому на Xamarin и начал делать аппу.
User avatar
dotcom
Уже с Приветом
Posts: 9035
Joined: 25 Oct 2011 19:02
Location: SVO->ORD->SFO

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

Post by dotcom »

Zhek wrote: но может надо мне и revisit это...а то я посмотрел 5-6 лекция Stanford'ских по IPhone Development и чтото как то не пошло, поэтому на Xamarin и начал делать аппу.
Пара недель усиленных тренеровок с ObjC/Cocoa и неделя ломок, а потом уже пойдет само собой. :D
Zhek
Уже с Приветом
Posts: 1582
Joined: 29 May 2004 21:16
Location: UA -> US

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

Post by Zhek »

Интеррапт wrote: Не понял, что значить взять обычный С синтаксис. Там и так есть обычный С синтаксис, вы обычную С программу можете засунуть в Objective-C и она запустится. Мало того, вы и С++ можете засунуть в Objective-C++ и оно запустится. Другое дело, что собственно по синтаксису - Objective-C намного проще, чем тот же C++.
Ну я в основном жалуюсь на квадратные скобки и имена парамов :)
Zhek
Уже с Приветом
Posts: 1582
Joined: 29 May 2004 21:16
Location: UA -> US

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

Post by Zhek »

dotcom wrote:
Zhek wrote: но может надо мне и revisit это...а то я посмотрел 5-6 лекция Stanford'ских по IPhone Development и чтото как то не пошло, поэтому на Xamarin и начал делать аппу.
Пара недель усиленных тренеровок с ObjC/Cocoa и неделя ломок, а потом уже пойдет само собой. :D
Надо собраться с духом и себя пересилить :) а то очень уж сишарп нравиться... Cocoa само пошло нормально (через Xamarin) , по идее должно помочь вгзлянуть свежим взглядом на обжективс
Zhek
Уже с Приветом
Posts: 1582
Joined: 29 May 2004 21:16
Location: UA -> US

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

Post by Zhek »

dotcom wrote:
Zhek wrote:Ну я про функционал objective-c и не спорю, конечно он мощный. Но вот почему бы им было не взять обычный c/c++ синтаксис ... Зачем выдумывать новый синтаксис постоянно :pain1: лучше бы расширяли билиотеки компонентов полезных
Objective C был рожден еще когда C++ не было, если что.
Не знал, спасибо. Думал что позже
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

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

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

crypto5 wrote:
Интеррапт wrote: А если посмотреть на ARC в Objective-C, то все garbage collectors (по performance и predictability)
Есть бенчмарки? :smoke:
Бенчмарки сходу не дам. По части predictability - ну ты и сам знаешь, что GC может выстрелить когда не нужно. Особенно это касается клиентских приложений (всяких игр и т.п.). А вот в Objective-C с ARC такого в принципе вообще произойти не может, там на уровне компилятора идет обработка reference counting и autorelease pools, которое великолепно работает. Конечно, нужно чуть больше внимательности работая с Сишным функциями, что в iOS сплошь и рядом (всякие bridge и т.п.), но то, что для мобильных устройств ARC намного более беспроблемная и выигрышная технология - у меня лично вообще сомнений не вызывает.
User avatar
crypto5
Уже с Приветом
Posts: 4637
Joined: 24 Oct 2009 01:38
Location: Chicago ;-) -> SFBA!

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

Post by crypto5 »

dotcom wrote:
crypto5 wrote: Ну jqeury это сейчас lingva latina, откуда вообще такая тяга сильно минимизировать js код, он же в один сетевой пакет помещается.
Сколько пакетов требуется на код гмыла? Сколько надо ждать пользователю, чтобы загрузить js апп... опять? Сколько надо тратить лепестричесвта, чтобы интерпретировать все это каждый раз после того как юзер нажал refresh? Может, все-таки, сдеать по-человечески, чтобы компоненты оседали в persistent storage, а не в кэше браузера? Тоже не rocket science.
Вполне возможно они оседают и не парсятся каждый раз.
In vino Veritas!
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

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

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

Zhek wrote:
dotcom wrote:
Zhek wrote:Ну я про функционал objective-c и не спорю, конечно он мощный. Но вот почему бы им было не взять обычный c/c++ синтаксис ... Зачем выдумывать новый синтаксис постоянно :pain1: лучше бы расширяли билиотеки компонентов полезных
Objective C был рожден еще когда C++ не было, если что.
Не знал, спасибо. Думал что позже
Они почти одновременно появились.
User avatar
Komissar
Уже с Приветом
Posts: 64661
Joined: 12 Jul 2002 16:38
Location: г.Москва, ул. Б. Лубянка, д.2

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

Post by Komissar »

я помню, на самой-самой первой работе в индустрии в США нас, девелоперов, позвали на какой-то семинар с чипсами и печенюшками (mind you, it was very early 90-s), и на семинаре мужик со стороны стал заливать про SmallTalk, так его наши "деды" (тогда это были пожилые белые VAX/VMS программеры) почти что тухлыми помидорами закидали, хотя мне казалось, мужик интересно рассказывал...
User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

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

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

Komissar wrote:я помню, на самой-самой первой работе в индустрии в США нас, девелоперов, позвали на какой-то семинар с чипсами и печенюшками (mind you, it was very early 90-s), и на семинаре мужик со стороны стал заливать про SmallTalk, так его наши "деды" (тогда это были пожилые белые VAX/VMS программеры) почти что тухлыми помидорами закидали, хотя мне казалось, мужик интересно рассказывал...
Ну так Objective-C это и не есть SmallTalk. Унаследовал кой-какие характеристики Smalltalk, но при этом намного более прагматичный.

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