LINUX.ORG.RU

Objective-C в Linux

 


0

2

Накопил лишние n-рублей, зашел в книжный магазин обнаружил там книжку по сабжу, показалось вкусной к тому же вспомнил что в GCC есть поддержка данного языка. Дома меня ждало разочарование, как я понял эппловцы отказались от поддержки GCC и усилено пропиливают clang, ни одной вменяемой IDE для данного языка под линукс я не нашел, да и книга оказалась весьма уныла. В общем, тем кто знаком с сабжем, посоветуйте бумажный материал и вменяемое IDE если есть под Objective-C.

Перемещено mono из talks

★★★★★

нету. Да и вообще, без Кокоса он более чем уныл. Есть кокотрон, но по сайту чото не заметно, чтобы он был сильно живым.

stevejobs ★★★★☆
()

Во-первых, иде не нужны, особенно, если ты только начинаешь изучать язык. Редактора с подсветкой кода более, чем достаточно.

Во-вторых, зачем тебе именно бумажная книга? В айбуксторе полно бесплатных пдфок и по языку, и по библиотекам. Да и в Мак Девелопер Центре немало материалов для начинающих.

Apple-ch ★★
()

Objective-C и сам уныл, требует очень много текста вообще и приходится постоянно нарушать закон Деметра в частности. От безопасная посылки сообщений nil'у на практике мало толку. Категории - классная штука, но ради одной няши столько проблем огребать...

Его ценят за фреймворки, а фреймворки эти работают толком лишь в iOS/MacOSX, в конце концов у linux есть Python и Qt - гораздо более мощные потенциально.

quiet_readonly ★★★★
()
Ответ на: комментарий от quiet_readonly

в конце концов у linux есть Python и Qt

можно подумать их на макоси нет

lazyklimm ★★★★★
()
Ответ на: комментарий от Apple-ch

мне намного приятнее читать книгу, что то выделять там подчеркивать, как то лучше усваиваю.

splinter ★★★★★
() автор топика
Ответ на: комментарий от quiet_readonly

у linux есть Python и Qt

Одна из причин заинтерессованности именно Objective-C стало его наличие в buildroot, Python и Qt, в частности второе исполльзовать на встраиваемых устройствах затруднительно из-за ресурсоемкости.

splinter ★★★★★
() автор топика

А IRL книжный магазин, в котором помимо художественной литературы и вендовса для чайников есть еще тех. лит-ра, это хорошо. Даже завидую немножко. ☺

f1xmAn ★★★★★
()
Ответ на: комментарий от stevejobs

я вообще не понимаю почему на лоре кокотрон упоминают чаще, чем гнустеп, несмотря на то что первый - это клон второго в стиле дениса попова.

mono ★★★★★
()

показалось вкусной

Или ты гурман, или ключевое слово «показалось» :)

slackwarrior ★★★★★
()
Ответ на: комментарий от quiet_readonly

О, подтянулись знатоки Objective-C, ну давай разбираться.

Objective-C и сам уныл

Подробнее поджалуйста.

требует очень много текста

Это называется самокомментирование. Мне приятнее читать код, где пишут

[map setObject: value forKey: key]

чем где

map.put(v,k);

приходится постоянно нарушать закон Деметра в частности

Ты точно про Objective-C говоришь?

Его ценят за фреймворки, а фреймворки эти работают толком лишь в iOS/MacOSX

Язык изначально разрабатывался в комплекте с окружением из фреймворков. И никто никогда не пользовался Objective-C напрямую без Foundation и других основных фреймворков.

Не «язык плохой, а фреймворки хорошие», а язык и фреймворки, в этом случае, две части одного продукта, которые развиваются совместно.

mono ★★★★★
()
Ответ на: комментарий от mono

Ты точно про Objective-C говоришь?

NSLog(@"w: %f, h: %f", photoController.view.frame.size.width, photoController.view.frame.size.height);

И никто никогда не пользовался Objective-C напрямую без Foundation и других

ЧТД

quiet_readonly ★★★★
()
Ответ на: комментарий от splinter

исполльзовать на встраиваемых устройствах затруднительно из-за ресурсоемкости

Какого уровня устройства? Мы используем Qt на армах - все летает.

trex6 ★★★★★
()
Ответ на: комментарий от quiet_readonly

Если бы ты прежде чем делать выводы прочитал, например, Cocoa Programming Developer's Handbook, то все твои вопросы отпали бы сами собой.

Пока это выглядит как «не читал, но осуждаю».

mono ★★★★★
()
Ответ на: комментарий от splinter

каммент за загрязнение природы с этих самых бумажковых фабрик (три штуки в автобусной доступности)

hizel ★★★★★
()
Ответ на: комментарий от hizel

каммент за загрязнение природы

спасай бобра @ начинай с себя)

slackwarrior ★★★★★
()
Ответ на: комментарий от mono

Мне приятнее читать код, где пишут
[map setObject: value forKey: key]
чем где
map.put(v,k);

map[ key ] = value;

компактно, понятно и читабельно

wota ★★
()
Ответ на: комментарий от mono

Ага, а в добавок, переопределение операторов рождает кучу проблем.

не больше чем виртуальные методы, т.е. если мозги есть - проблем нет

wota ★★
()
Ответ на: комментарий от mono

ИМХО это из-за того, что была стать на Хабре о сборке этого «добра»(кокотрон) на русском языке. по ГНУстеп русские статьи - мохнатых годов.

hizel ★★★★★
()
Ответ на: комментарий от mono

А, ведь вы же ещё не знаете про фичи clang 3.2. Ничего, вот пройдёт два года и все фанаты ObjectiveC будут рассказывать как круто писать mydict[key] = value.

Продолжаем вечеринку:

CGRect frame = photoController.view.frame;
frame.size.width += 1;
photoController.view.frame = frame;

...

photoController.view.frame = CGRectMake(photoController.view.frame.origin.x, photoController.view.frame.origin.y + delta, photoController.view.frame.size.width, newHeight);

...

photoController.view.frame = CGRectMake([[[[photoController view] frame] origin] x], [[[[photoController view] frame] origin] y] + delta, [[[[photoController view] frame] size] width], newHeight);

...

NSString *text = fieldEmail.text;
if ([text isEqualToString:@"Kokoko"]) {
  return kChickenInTheThread;
} else if (text != nil && ([text rangeOfString:@"Kokoko"] != NSNotFound)) {
  return kLatentChickenInTheThread;
}

А вы пробовали в делегате UITextField извлекать полный текст при изменении каждого символа, причём без обращения к свойству text, которое ещё не изменилось?

Кстати, самодокументация в божественных языках выглядит вот так:

d->camera->translate(vec3(1.0, 1.0, 1.0));
d->rect->setXY(10, 5);
Причём использование кастомных типов что-то говорит не только программисту, но и компилятору. В ObjectiveC же код оценивают только после запуска, что прискорбно.

Apple старается как может, и от путаницы с параметрами отучивает (хотя ObjC позволяет писать по-пацански, то бишь [nsobj param1, param2, param3]), и анализатор запилила неслабый, и команду llvm из иллинойского университета наняла. Но при чём тут язык?

quiet_readonly ★★★★
()
Ответ на: комментарий от mono

Мне приятнее читать код, где пишут

[map setObject: value forKey: key]

чем где

map.put(v,k);

Это диагноз.

tailgunner ★★★★★
()
Ответ на: комментарий от quiet_readonly

Я вам и на божественных языках могу говнокода написать. Не вопрос.

Или этот код взят из официальной документации?

trex6 ★★★★★
()
Ответ на: комментарий от mono

Это называется самокомментирование. Мне приятнее читать код, где пишут

Паблик статик файнал Борщ борщ нью Борщ, пожалуйста.

aedeph_ ★★
()
Ответ на: комментарий от quiet_readonly
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *text = [textField.text stringByReplacingCharactersInRange:range withString:string];
}

[[[[photoController view] frame] origin] x]

А потом удивляются, что 60 фпс нету. Мобильные платформы, нужно экономить каждый вызов, особенно в языке, где они принудительно виртуальные.

// А что это за frame, который объект?

note173 ★★★★★
()
Последнее исправление: note173 (всего исправлений: 1)
Ответ на: комментарий от splinter

Как будто на emacs`е сошёлся свет клином. Под сишечку и сиподобные vim - вне конкуренции. emacs хорош для лиспа и кложуры.

Hertz ★★★★★
()
Ответ на: комментарий от buddhist

С++

В нём есть всё и ничего. Поэтому кодеры на cpp - специалисты во всём и ни в чём.

Hertz ★★★★★
()
Ответ на: комментарий от splinter

второе исполльзовать на встраиваемых устройствах затруднительно из-за ресурсоемкости

Сейчас поднял Qt 4.6.4 на arm9 - все вполне работает + отладку удобно вести прямо на хосте, а потом кросс-компилять.

4.8.1 еще не собирал...

solovey ★★
()
Ответ на: комментарий от splinter

нет, не им. У меня на арме emdebian стоит, поэтому кросс-компилятор брал отдельный.

Но никто не мешает взять компилятор из билдрута и собрать им.

Вот на этом форуме можно найти много чего интересного на эту тему. Компания как-раз занимается производством одноплатников на арме. Народ туда во всю Qt пилит, в том числе и через билдрут

solovey ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.