ventajas programación programacion objective lenguaje entre diferencias desventajas c++ objective-c programming-languages

programacion - ventajas y desventajas de programación c++



¿Cuáles son las ventajas de usar Objective-C sobre C++ (11)

He oído mencionar Objective-C, pero nunca lo he usado. Tenía curiosidad por saber cuál era la opinión de todos en general y también en relación con C ++. ¿Hay algún tipo de proyectos donde sería más útil o menos útil?


Como muchos otros, acabo de empezar a buscar Obj-C debido a iPhone. He hecho muchos C ++ y C # y, por lo que puedo ver, Obj-C tiene un enfoque básicamente diferente al de OO, ya que agrega mensajes de 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 los 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ías 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.


De "Algunas características agradables del lenguaje Objective-C" :

  • Las clases son objetos
  • Tipeo dinámico y tipado estático opcional
  • Categorías
  • Envío de mensajes
  • Sintaxis de mensaje expresivo
  • Introspección
  • Tiempo de ejecución dinámico
  • Recolección de basura automática
  • C dentro
  • C ++ con fluidez
  • Sencillez
  • Acceso a las tecnologías de Apple

Mi opinión es que la sintaxis de Objective-C es un poco "rara" al principio, especialmente si vienes 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.


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 ++.


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


Parte de lo que hace que Objective-C sea tan bueno no es el lenguaje (aunque eso es una gran parte), es el marco Cocoa (o CocoaTouch) el que lo acompaña (al menos para el 99% de los usuarios 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.


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).


Encuentro que la sintaxis de Object-c es un poco más limpia que la de C ++, aunque sé que soy una minoría aquí


Las características OO de Objective C usan tipado dinámico en lugar de tipeo 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.


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.


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