Цель-C: Язык высокого уровня? - PullRequest
3 голосов
/ 06 октября 2009

Мне удалось избежать C и C ++ до сих пор (за исключением нескольких HelloWorlds), и вместо этого я работал на языках более высокого уровня. Я работал и жил в VB6, затем на Java, затем на C #, затем на ActionScript и теперь на Ruby.

Недавно я заинтересовался программированием для IPod Touch / IPhone. Хотя я видел некоторые возможности избежать ObjectiveC (например, Mono для IPhone ), мне любопытно, что такое Objective C. В основном: требует от разработчика обработки мусора и управления им? указатели и тому подобное?

Редактировать: Я полностью открыт к возможности того, что моя концепция языков более высокого и более низкого уровня неверна или вводит в заблуждение.

Ответы [ 4 ]

10 голосов
/ 06 октября 2009

Сборка мусора: да, но не так плохо, как C или C ++. Как только вы поймете, что сборщик мусора в Objective-C - это действительно просто. Это не займет много времени, чтобы учиться или освоить либо.

Что касается указателей - вы будете использовать указатели гораздо реже, чем в C или C ++. Да, немного знаний об указателях полезно (зная разницу между объявлением NSString * и NSString), но это также не так сложно.

Лично я бы избегал всех «высокоуровневых» языков, которые появляются для разработки iPhone. Они действительно только избавляют вас от необходимости изучать Objective-C, но все же вынуждают вас использовать нативный фреймворк (Cocoa Touch). Они добавляют сложности ради лени. Objective-C может быть изучен за неделю, отладка нюансов фреймворка занимает намного больше времени. Но опять же, это только мое мнение.

редактирование:

Управление памятью в C # также может быть проблематичным, если все сделано неправильно. Да, есть сборщик мусора, который работает во многих случаях. Однако есть также предметы, которые необходимо утилизировать, и неправильная их утилизация может привести к утечке памяти. Создание собственных объектов IDisposable также может быть сложным, если вы не уверены на 100%, каков порядок последовательности удаления. Я видел много проектов, в которых разработчики делают это ужасно неправильно. По сути, я говорю, что управление памятью в Objective-C не является более сложным или технически сложным, чем цепочка утилизации в C # /. NET

4 голосов
/ 06 октября 2009

Существует сборка мусора для Objective-C, но не для iPhone, т.е. е. если вы пишете программное обеспечение для iPhone, вам придется самостоятельно обрабатывать память, но это не является общей проблемой Objective-C.

1 голос
/ 06 октября 2009

Он не такой «высокоуровневый», как C # и Java, IMO, но он все еще считается языком высокого уровня, как C ++ и, да, C.

Objective C имеет сборку мусора, но iPhone Object C не имеет.

1 голос
/ 06 октября 2009

"В основном: требует разработчика, который будет заниматься сборкой мусора и управлением указателями и тому подобным?" - на айфоне да.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...