Возможно ли перейти на цель-с на этих платформах и ситуации? - PullRequest
1 голос
/ 18 февраля 2011

Я написал большую часть игрового движка на C ++, который работает на OSX и iOS (Xcode 3.5, GCC), Linux (GCC) и Windows (Vis Studio 2010). Он использует вектор stl для коллекций объектов. Реализует передачу сообщений. Движок использует OpenGL на платформе iOS и в конечном итоге будет использовать OpenGL на всех платформах и, возможно, DirectX на Windows.

Мне действительно не нравится C ++, хотя я очень хорошо это понимаю. Я программист на Си и после знакомства с Objective-C год назад я понял, что он идеально подходит для моей работы и мышления. Так что для меня было бы огромным преимуществом перейти на Objective-C. К сожалению, прекрасный мир OSX / Cocoa не является реальностью Windows или Linux .. или это так?

Я уверен, что евангелист Какао / Apple / NeXT предоставит мне шедевр ответа здесь

Edit:

Похоже, Cocotron и GNUstep - это два варианта, причем GNUstep более зрелый, но, похоже, требует больше багажа, например требует времени выполнения.

Мне нужно решение, которое бы соответствовало следующим требованиям:

  • Возможность компилировать, запускать, отлаживать Objective-C на всех платформах
  • Возможность использовать вызовы API Какао на всех платформах (т. Е. NSString, NSNumber ..)
  • Конечные пользователи должны иметь возможность устанавливать и запускать мое приложение, не устанавливая ничего лишнего, или, как минимум, мой установщик должен иметь возможность легко и не повсеместно устанавливать что-либо (например, время выполнения) GNUstep требует времени выполнения Кокотрон не
  • Объясняет, какие проблемы я могу решить. Например, смогу ли я использовать предоставленный материал Какао для анализа XML? Как насчет CFSocket? Как насчет CG? Где заканчивается решение, и я вхожу в область специфичных для ОС библиотек, которые не портированы?

Ideal:

  • Может поддерживать замыкания (блоки) на всех платформах, так что я могу использовать GCD и libdispatch по мере их появления, даже если это сводится к менее эффективной ситуации на неродных платформах
  • API, позволяющий управлять данными типа Core Data (я мечтаю здесь), даже если он сводится к менее эффективной ситуации на неродных платформах
  • Перспективное решение, которое, возможно, будет использовать LLVM, поскольку похоже, что все движется

НЕ требуется:

  • Функции графического интерфейса, такие как рисование NSView и т. Д.
  • Функциональность IDE, кроме OSX
  • Objective-C 2.0
  • Objective-C ++
  • Сборка мусора
  • Простота моей настройки: то есть, все в порядке, если мне больно настраивать и настраивать на работу, если рабочее решение соответствует моим потребностям и позволяет мне писать код это будет легко (переносимо в соответствии с требованиями выше) и не причинит никакой боли моим пользователям.

Ответы [ 3 ]

2 голосов
/ 19 февраля 2011

Cocotron - абсолютно феноменальное программное обеспечение, которое удовлетворяет всем моим требованиям. Хотя документация скудная, ее трудно понять и начать работать, она чрезвычайно полезна и очень хороша.

LLVM / blocks / libdispatch пока не выглядит вполне реальностью, хотя, возможно, и так, но я думаю, что, безусловно, при переходе на Xcode 4 все это будет очень реально. Это действительно сводится к тому, что minGW работает с LLVM.

Существует даже реализация Core Data .. вау

0 голосов
/ 30 декабря 2013

блоки clang + (замыкания) теперь доступны в Linux с использованием libdispatch

sudo apt-get install libblocksruntime-dev

clang test.c -fblocks -lBlocksRuntime -o test

0 голосов
/ 18 февраля 2011

Objective-C доступен на любой платформе, на которой доступен GCC, при условии, что это не тот компилятор GCC Objective-C, который используется Apple.Какао и все, что с ним связано в OSX / iOS, - это не главная причина, по которой Objective-C не пользуется большим спросом на платформах, отличных от OSX, нет действительно надежной библиотеки, такой как Cocoa.-Платформа. GNUstep - это стандартная библиотека с открытым исходным кодом, похожая на Какао, но продолжающаяся более 10 лет и до сих пор не завершенная, и основанная на OpenStep, который настолько удален от Какао, что это не так.не актуально.Существует также нечто, называемое Cocotron , которое более новое, но все еще выглядит неполным.Xcode, пожалуй, единственная хорошая среда Objective-C.Я уверен, что где-то в Интернете есть какой-то неясный плагин Eclipse, но он никогда не будет конкурировать с XCode.Я сомневаюсь, что что-нибудь даст вам кроссплатформенные приложения, подобные GUI-приложениям, лучше всего было бы написать привязки Objective-C вокруг QT для кроссплатформенных графических интерфейсов, но это потребовало бы компилятора GCC для возможности компиляции Objective-C ++.

...