diesel писал(а): ↑30.03.2009 12:12
Ink-85 писал(а): ↑30.03.2009 11:22
Писать буду под Мак в XCode вроде он поддерживает C++. Но говорят что если писать под мак то будет разумней В Cocoa и Objective-C т.к. они специально под мак разрабатываются
При использовании Cocoa вам прийдется забыть о кроссплатформенности, как уже сказали выше, либо же для других ОС использовать какой-нить другой фреймворк - те же QT/GTK/WxWidgets. Objective-C насколько я понимаю поддерживается gcc, правда есть нюансы.
Cocoa — это реализация спецификации OpenSTEP. Не единственная, причём. Под Windows есть Cocotron, только для разработки на Cocotron нужен XCode, а, значит, и Мак ОС. Кроме того, есть GNUStep и его различные форки: mySTEP, QuantumSTEP. Самый продвинутый форк, насколько я понимаю, входит в состав Etoile.
Примером переносимой программы является GNUMail.
Писать на C++ для Cocoa не получится. Для таких языков, как Паскаль и Ада, были сделаны обёртки, предоставляющие родной интерфейс. А для C++ — нет. Вместо этого был сделан гибридный компилятор Objective-C++. Интеграция двух объектных моделей слабая, они живут как бы параллельно. Нельзя скрещивать фичи из разных языков. То есть, писать на Objective C всё равно придётся. Если нет плюсового груза, лучше и не начинать.
Objective C всё же стоящая вещь. С одной стороны, это по–прежнему компилятор C. С другой стороны, в нём можно творить много разных фишек. Компилятор Objective C оставляет довольно много метаинформации про Objective C классы. Используя эту информацию, можно легко сделать RPC. Причём, это ещё и работает относительно быстро. Если объект является прокси, то при вызове метода на основе информации в стеке и метаинформации об аргуметах метода создаётся NSInvokation (action turned into data). Этот NSInvokation можно передать по сети, и запустить его на объекте, для которого был сделан прокси. Как можно было заметить, очень много программ на Маке могут управляться удалённо. Правда, только с Мака. На Windows вроде как есть DCOM, но что–то он не так свирепо задействован, как Distributed Objects на Mac OS X.
Кроме того, объекты класса NSInvokation можно создавать из скриптов, а, значит, из скриптов юзать свои классы.
Много, правда и спорных моментов. Например, не очень понятно, почему в сишный язык был привнесён странный синтаксис SmallTalk.
diesel писал(а): ↑30.03.2009 12:12
QT/GTK/WxWidgets
Как человек, прочувствовавший дух Макинтоша, я располагаю тулкиты в таком порядке предпочтения:
Gecko (почему никто не советует?), wxWidgets, QT, GTK