LINUX.ORG.RU

ObjC ???


0

0

Сишнег. Посмотрел на ObjC, понравилось, вроде удачная реализация ООП.
Но возникли вопросы практического использования:

1. Что нужно установить для использования ObjC ?
2. Могу ли я просто вставить куски кода на ObjC в С'ишный код и наоборот и откомпилить gcc ?
3. Какие плюсы (кроме нормального ООП, так на первый взгляд
показалось) можно получить, например, в виде сторонних библиотек (работы со строками, парсинга, например, и т.д.) ?
4. Ну и еще какие плюсы/минусы есть ?

anonymous

>1. Что нужно установить для использования ObjC ?

USE="objc objc++ objc-gc" emerge gcc

:)

KRoN73 ★★★★★
()

Objective C, True ООП.... эх.. А на практике все равно используют в форме диалекта "Objective-C++", ибо STL сильно облегчает обжективную жизнь

quarck
()

1. Купить компьютер с MacOS ;) Про Gentoo выше KRoN73 написал. Под другие дистрибутивы - добавить из репозитория все, что касается ObjC.

2. Что вы понимаете под "вставить код ObjC в С-шный код"? Если вызов метода, то да можно, к обьекту тоже можно добраться. Но все же, это будет код на ObjC. "Код C в ObjC" как бы и будет кодом на C все что не касается классов. Компилируется ObjC компилятором, входящим в состав gcc.

3. Насчет сторонних библиотек много не расскажу. Для работы со строками пользуюсь тем что имеется в Cocoa, ибо MacOS. Парсинг кое-какой тоже там же есть. Ну и С-шные библиотеки в помощь.

4. Плюсы - под Мак основной язык программирования, фреймворки заточены под него. Под Linux - больше минусов. Фреймворки либо устарели, как NextStep, либо сырые, типа Etoile. Нет реализации ObjC 2.0.

Некоторым нравится ObjC++, но мешать в кучу классы ObjC и C++ мне не нравится. Впрочем, дело вкуса.

sleepflint ★★★
()

> 1. Что нужно установить для использования ObjC ?

MacOS X, XCode 3.1.

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

> Т.е. я понял, что ObjC в Linux не место ...?

gnustep, blackbox и прочие потомки NeXT Step очень даже имеют место быть в Linux, и в них в свою очередь ObjC

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

> gnustep, blackbox и прочие потомки...

Нет, я имею в виду практическое программирование. Кстати, а почему в общемто неплохая идея (ObjC), как я понял, развития не получила.

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

Ну почему же? На нём очень полезная штука Swarm написана.

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

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

Развитие то получила только в макоси.

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

> Развитие то получила только в макоси.

Но этож не значит, что в обычной С-проге для linux использование ObjC не эффективно ? Или просто в этом нет особого смысла ?

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

>Или просто в этом нет особого смысла ?

именно. Objective-C язык очень хороший, но в реальности кроме языка еще важны и библиотеки, которые есть к этому языку. А в полную силу Objective-C используют только в Apple, в линуксе есть только библиотеки от Некста(которые устарели очень) и поделие под названием Etoile(которое на данный момент юзабельно весьма условно).

Так что если хочешь в полную меру ощутить красоту Objective-C и что с ним можно делать, то это только под Макинтошем.

anonymous
()

В скриншотах я выкладывал Etoile показать...

А вообще да... лучше всего Apple.

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

> Так что если хочешь в полную меру ощутить красоту Objective-C и что с ним можно делать, то это только под Макинтошем.

А еще по инетам переодически ходят призраки CoreFoundation.dll и AppKit.dll ;) Вроде как само Obj-C окружение Apple-ами давно портировано на винду, и теоретически может быть выпущен продукт наподобии QT, основанный на всем этом.

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

>А еще по инетам переодически ходят призраки CoreFoundation.dll и AppKit.dll ;) Вроде как само Obj-C окружение Apple-ами давно портировано на винду, и теоретически может быть выпущен продукт наподобии QT, основанный на всем этом.

если мне не изменяет память, то или часть, или все CoreFoundation - опен-сорс, поэтому кому надо портировать - спортируют.

Насчет AppKit - возможно часть и портирована(например для Сафари), но сам понимаешь, что портировать полностью - ненужная затея.

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

Ну да есть CoreFoundation.dll и AppKit.dll ( некий ). Если установишь, например, iTunes под оффтопик, то их там и узреешь. Но толку с этого мало, под оффтопиком оно вроде как и не API, а так некие библиотеки для iTunes, Safari etc. Настоящих фреймворков для разработчиков, от Яблок, ни под Linux, ни под оффтопик нет.

Да вспомнил, есть еще некий, Cocotron: http://www.cocotron.org/

Если интересен ObjC присмотрись ко всяким Etoile или NeXTStep возроди. Фана в этом много, но конечный результат под Linux ты не скоро получишь.

Увы.

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

> если мне не изменяет память, то или часть, или все CoreFoundation - опен-сорс

ИМХО, нет. Но есть попытки сделать ОпесСорс CF. Ссылок не помню, погугли.

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

>Ну да есть CoreFoundation.dll и AppKit.dll ( некий ). Если установишь, например, iTunes под оффтопик, то их там и узреешь.

1. iTunes написан на Carbon 2. а в Carbon тоже свой AppKit?(а то я писал только на Cocoa)

anonymous
()
Ответ на: комментарий от sleepflint

>2mono И как продвигаешься с этим Etoile? Идея то у них, в принципе неплохая.

Пока все в зачатке. Ежедневно в svn обновления, как и в GNUstep собственно. Думаю в будущем мы увидим неплохую DE, имеенно DE.

может быть все получится с sda и он поможет создать репозиторий с Etoile в OBS, тогда попробовать на вкус будет немного проще =)

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

Да, тоже надеюсь, что подвижки будут. В Linux фреймворк для ObjC совсем не помешал бы, ну и DE на нем тоже. Через месяца полтора добью свою работу на маке, присоединюсь. Пока увы время жмет.:(

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