Что проще новичкам: RubyCocoa или ObjC / Cocoa

В прошлом я слышал несколько споров о том, что является более зрелым: RubyCocoa или Obj-C / Cocoa ... но я чувствовал, что ответы бьют прямо над «новичком», который действительно оценил бы ответ.

Итак, вопрос в следующем: для абсолютного новичка, практически не имеющего опыта программирования, легче ли изучить Ruby и исследовать Cocoa через мост (затем, возможно, заняться Obj-C) или сразу перейти к Objective-C и Какао.

Оба сообщества сильны и обладают множеством ресурсов, но, как многие отмечали, синтаксис Obj-C просто устрашающий. Может быть, для настоящего новичка будет легче изучить Ruby, чем взяться за Objective-C?

Обновление: я прошу прощения, но когда я сказал «изучите Ruby и исследуйте Cocoa», я не имел в виду изучать программирование через RubyCocoa, а скорее хотел изучить Ruby (и когда вы почувствуете себя достаточно уверенно), начните изучать Cocoa. с возможностью использовать свой растущий набор навыков для решения Obj-C.


person DarthNerdus    schedule 04.02.2009    source источник


Ответы (9)


Я бы не рекомендовал учиться программировать на RubyCocoa.

Я люблю Ruby и считаю, что это отличный язык для изучения программирования, но мост RubyCocoa недостаточно хорошо документирован, поэтому я бы рекомендовал его в качестве среды обучения. Вы будете изучать общие концепции программирования, фреймворки Cocoa и особенности RubyCocoa одновременно. Это много чего вбить в голову.

Если вы связаны и полны решимости начать с Какао, начните с изучения Objective-C. В противном случае вы могли бы сначала изучить Ruby, а затем перейти на Objective-C, когда почувствуете себя немного более комфортным программистом. И как только вы это сделаете, вы можете использовать RubyCocoa, но тогда вы будете знать достаточно, чтобы это не свело вас с ума.

person Chuck    schedule 04.02.2009
comment
Я согласился. У каждого языка программирования есть свои сильные и слабые стороны, особенно если вы включите весь набор инструментов, соответствующих этому языку (фреймворки, IDE, операционные системы и т. Д.). Сильные стороны Objective-C, безусловно, заключаются в Cocoa для программирования платформ Apple GUI. Я не программист на Ruby, но мне кажется, что Ruby лучше подходит для серверного веб-программирования. Да, вы можете писать серверные веб-приложения с помощью Objective-C и Какао, и вы можете писать приложения с графическим интерфейсом пользователя Mac OS X с помощью Ruby и RubyCocoa (или даже с помощью одного из наборов инструментов графического интерфейса пользователя X11 Unix), но это не лучший инструмент для работы . - person adib; 04.05.2010

Я бы начал с того, что проповедует Apple: Objective-C / Cocoa.

person IEnumerator    schedule 04.02.2009

Написание кода - легкая часть

На самом деле нет смысла в:

  1. Попытайтесь понять, что из себя представляет, если вы выбираете легкий путь, вы всегда ошибаетесь ... Не бойтесь того, что сложно, потому что трудно не бояться.

  2. Пытаясь сравнить языки / подходы таким образом, согласно добавленному мною сообщению, думая, что в этом случае легко / приятно / сложно, является вопрос синтаксиса, который в конечном итоге сводится к интерпретации, красота в глазах смотрящего.

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

  4. Имеет значение только один вопрос: что нужно знать до того, как познакомиться с любым из двух подходов? -- вы сказали:

    для абсолютного новичка с минимальным опытом программирования

Мой ответ:

Часто недалеко от того места, где я живу, туристы спрашивают:

Как мне добраться отсюда до топонима X?

Здесь обычно отвечают:

Если бы я был на вашем месте и пытался добраться до топонима X, я бы не начал отсюда ..

Итак .. ответ на ваш вопрос:

Ни то, ни другое

Новички всегда должны изучать основы программирования в соответствии с тем, что сказал @Tafkas ... (не обязательно изучать языки ООП ... но программировать ...), прежде чем принимать какое-либо решение о том, что изучать и / или внедрять. (Это + сбор требований)

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

person Ric Tokyo    schedule 04.02.2009

Проблема с началом использования RubyCocoa заключается в том, что вы в конечном итоге изучаете и рубин, и какао, а также взаимодействие между ними одновременно. Я бы сказал, изучите Ruby или Objective-C / Cocoa. Прыжок прямо в RubyCocoa сбивает вас с толку.

person Logan Capaldo    schedule 04.02.2009
comment
Мне очень жаль, но это тот подход, который я пытался передать. Изучите Ruby, а затем (когда вы будете уверены) изучите Cocoa. - person DarthNerdus; 04.02.2009

Похоже, ваша цель - научиться программировать на Какао, используя Ruby или Objective-C в качестве языка.

Хотя я никогда не использовал Ruby (или RubyCocoa, если на то пошло), я понимаю, что Cocoa написан с использованием Objective-C в качестве основного языка, а мосты (Python и Ruby) идут на втором месте. Хотя в целом они работают хорошо, есть некоторые шероховатости, которых нет при использовании Какао из Objective-C.

Я бы сказал, что вам следует пойти по пути Objective-C / Cocoa. Возможно, неплохо было бы сначала начать с другого языка - C, если вы хотите его изучить (что было бы полезно, поскольку Objective-C является надмножеством C) или что-то вроде Java, если вы хотите пойти по маршруту OO.

Это не означает, что RubyCocoa не работает или бесполезен. Он отлично подходит для того, что он делает, но я не думаю, что с него следует начинать программирование на Какао.

person Andy    schedule 04.02.2009

Я бы посоветовал, если вы собираетесь серьезно относиться к написанию приложений для OSX и / или iPhone, я настоятельно рекомендую вам попробовать Objective-C и Какао.

Причина проста:

  • Документация Apple по Objective-C отличная.
  • Вы получите больше помощи от сообщества здесь, в Stack Overflow, потому что разработчиков Objective-C / Cocoa больше, чем RubyCocoa. (из того, что я видел до сих пор).
  • Разработчики Objective-C очень хорошо помогают друг другу, и я не мог найти лучшую группу разработчиков с распростертыми объятиями для новых людей, изучающих язык.
  • Доступны книги отличных разработчиков, а также есть возможность дополнительного обучения, если вы этого хотите.
  • Главное, что я вижу, это то, что вы НЕ МОЖЕТЕ разрабатывать для iPhone с помощью RubyCocoa. Но если вы изучите Objective-C / Cocoa, вы сможете сразу погрузиться в Cocoa Touch.

Нет никакой гарантии, что Apple будет обновлять RubyCocoa так же часто, как они это делают с Cocoa.

Не поймите меня неправильно, изучение Ruby - отличный язык, и я не думаю, что вы можете ошибиться, изучая его. Однако прямо сейчас, если у вас есть возможность изучить либо, либо, перейдите к Objective-C / Cocoa.

person Niels Hansen    schedule 04.02.2009

Я думаю, что вам предстоит более сложный путь, выбрав RubyCocoa, если вы хотите создавать серьезные приложения для OS X или, особенно, более поздних версий для iPhone.

Основная причина - просто возможность найти ответы на общие вопросы по программированию, которые могут у вас возникнуть. Вокруг Objective-C / Cocoa растет сообщество с большой поддержкой форумов, фрагментами кода, образцами и т. Д. Вам будет бесконечно легче быстро научиться использовать Cocoa, если вы понимаете Objective-C. Вашим коллегам также будет проще устранять неполадки в вашем коде и помогать вам, когда вы застрянете. Objective-C действительно не так сложно изучить, особенно если у вас есть некоторый опыт в концепциях объектно-ориентированного программирования.

person Ish    schedule 04.02.2009

Я бы посоветовал начать с oo-языка, такого как c ++ или java. После понимания основных принципов oo выучить object-c не составит большого труда.

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

person Christian Stade-Schuldt    schedule 04.02.2009
comment
RubyCocoa изначально не поддерживался Apple (это проект с открытым исходным кодом), поэтому я не знаю, что отказ Apple от его поддержки обязательно должен вызывать беспокойство. - person Logan Capaldo; 04.02.2009
comment
Зачем начинать с C ++ или Java? Он уже назвал два объектно-ориентированных языка (и более простые, чем C ++ или Java для загрузки), так зачем рекомендовать еще два? - person Chuck; 04.02.2009

Я думаю, это зависит от того, что новичок уже знает. Если вы уже знакомы с объектно-ориентированным программированием, вам обязательно стоит изучить objective-c. Использование таких парадигм, как обмен сообщениями, делегирование и категории, очень поможет понять систему Какао. Если у вас за плечами несколько языков, но нет объектно-ориентированного программирования, то вы, вероятно, также имеете достаточно опыта, чтобы изучать ООП через Какао, но понимаете, что он обрабатывает вещи иначе, чем языки, подобные C ++. Если у вас очень мало опыта программирования, то в краткосрочной перспективе рубин может стать лучше.

Еще одно преимущество objective-c, о котором следует помнить, - это парадигма управления памятью с ручным подсчетом ссылок. С ним может быть намного проще справиться, чем с malloc / free, но он не допускает лени, порождаемой Java и языками сценариев.

person user57368    schedule 04.02.2009