2008-09-22 42 views

Respuesta

0

Para el desarrollo de Mac y iPhone, definitivamente es mejor. La última versión tiene un GC, así que si te gusta, probablemente te gustará más que C++.

+0

Los muy suelta la unión de invocaciones de métodos e interfaces separadas hacen que para el código bastante estable, y que ejecutan los objetos en zonas separadas (espacios de direcciones de memoria) hace que las aplicaciones sean muy estables, dado que básicamente es C. –

+0

"La última versión tiene un GC, así que si te gusta, probablemente te gustará más que C++". Tenga en cuenta que este es un argumento gratuito. Un GC no es necesariamente el Graal de un desarrollador C++ ... :-p ... – paercebal

+0

Estoy de acuerdo, es por eso que dije, "así que si te gusta eso" –

4

Mi opinión es que la sintaxis de Objective-C es un poco "rara" al principio, especialmente si proviene de un fondo de C/C++ (como yo lo hice). Si planea escribir aplicaciones para Mac o iPhone, el desarrollo de Cocoa es el camino a seguir. Tuve la oportunidad de hacer algo de desarrollo en Mac durante aproximadamente un mes esta primavera y opté por escribirlo en C++ utilizando las bibliotecas de Qt ya que estaba bastante familiarizado con ellas y el tiempo era esencial.

¡Si tienes una Mac, pruébala! Hay MUCHA información sobre esto y hay algunas buenas herramientas para el desarrollo.

+1

Para agregar a estas excelentes respuestas, quiero señalar que también hay Objective-C++ si se siente más cómodo con eso para empezar. –

3

Si está ejecutando Linux puede instalar GNUStep que proporciona una compatibilidad bastante buena con Cocoa. Esto puede ayudarlo a comenzar el desarrollo de Objective-C/Cocoa sin tener una Mac. Los mejores recursos para aprender Objective-C [en mi opinión] están con Apple.

http://developer.apple.com/referencelibrary/Cocoa/index.html

19

Al igual que muchos otros que acaba de comenzar mirando Obj-C debido a iPhone. He hecho un montón de C++ y C# y, por lo que puedo ver, Obj-C tiene un enfoque básicamente diferente al de OO, ya que agrega mensajes tipo Smalltalk a C. Al igual que C++, sigue siendo básicamente compatible con C, pero las extensiones de OO usted envía cualquier mensaje a cualquier objeto. En ese sentido, no está tipado estáticamente, como C++ y C#, donde las cosas que un objeto puede hacer están ligadas a la clase que es. En Obj-C puede enviar un mensaje a un objeto incluso si no lo admite. El objeto puede reenviarlo si no sabe qué hacer con él.

Lo realmente genial es que puede agregar interfaces (protocolos) en tiempo de ejecución y puede agregar sus propios controladores que interceptan y ocultan manejadores de mensajes para las clases existentes.

En general, hay mucha más flexibilidad en lo que respecta al manejo de mensajes, más parecido a lo que haría en Ruby o Smalltalk. Si es una buena idea tener este tipo de OO injertado en C o no, no puedo decir todavía, de alguna manera el enfoque de C++ se combina mejor con la idea original de C, pero por otro lado el enfoque Obj-C OO es más lo que les gusta a los puristas.

15

De "Some nice features of the Objective-C language":

  • clases son objetos
  • tipado dinámico y estático opcional escribir
  • Categorías
  • Envío de mensajes
  • sintaxis del mensaje expresivo
  • introspección
  • Run-dinámico tiempo
  • recolección de basura automática
  • C en el interior
  • C++ fluidez
  • Simplicidad
  • El acceso a las tecnologías de Apple
1

Es más dinámico que C++ y fuertemente influenciado de Smalltalk. No lo encuentro "mejor" que C++, por el contrario, pero algunas personas sí.

4

Parte de lo que hace Objective-C tan grande no es el idioma (aunque eso es un gran parte ot ella), que es el marco de cacao (o Cocoa Touch) que va junto con él (al menos para 99% de los usuarios de objc ;-)

En términos prácticos, solía ser un programador de C++ en los viejos días "clásicos" de Mac. Al cambiar a Objective-C, Cocoa y Mac OS X, descubrí que era mucho más productivo. Difícil decir exactamente cuánto más productivo, pero 50% a 100% se siente bien.

2

Bueno, si está codificando algunas plataformas como el iPhone, se requiere Objective-C. Objective-C también usa el tipeo dinámico (en tiempo de ejecución), que muchas personas prefieren sobre la estática (tiempo de compilación).

5

Las características OO del Objective C utilizan el tipado dinámico en lugar del tipado estático (en tiempo de compilación). Esa es la principal diferencia en los enfoques de los dos idiomas: si se trata de una ventaja o no depende de tu opinión sobre la tipificación estática frente a la dinámica.

1

WebKit fue originalmente un proyecto de C++ (khtml de KDE) que luego fue adaptado por Apple para ser más compatible con el entorno Cocoa y por lo tanto obtuvo su capa Objective-C.

12

puedo encontrar la sintaxis de Objective-C un poco más limpio que C++ 's aunque sé que estoy en la minoría aquí

+3

Sí, yo diría que es mucho más limpio. No solo un poco Al igual que en, en realidad se puede analizar. –

Cuestiones relacionadas