2010-02-19 14 views
6

Parece que Cocoa parece ser la plataforma principal para Objective-C. GCC (que utiliza Xcode) es compatible con Objective-C, por lo que debe estar disponible en una amplia gama de plataformas.¿Objective-C se usa sin cacao?

¿Hay algún proyecto notable multiplataforma que use Objective-C pero no Cocoa (o su primo de código abierto GNUStep)? ¿Realmente se usa fuera del ecosistema de Apple?

+0

No puedo asegurarlo con su fraseología, pero para mayor claridad, se da cuenta de que GNUStep es multiplataforma, ¿verdad? "GNUstep actualmente es compatible con Unix (GNU/Linux y GNU/HURD, Solaris, NetBSD, OpenBSD, FreeBSD, Darwin) y Windows" citado de http://www.gnustep.org/ –

+0

Sí, lo entendí. Lo aclararé Estoy tratando de preguntar si Obj-C se utiliza como un lenguaje de propósito general (en el mismo tipo de contextos, como por ejemplo, C o C++) en lugar de solo para interactuar con bibliotecas/frameworks como Cocoa o GNUStep. – Joe

Respuesta

11

Objective-C también ha sido popular en las comunidades de servicios científicos y financieros. Todavía hay muchas aplicaciones basadas en Objective-C desplegadas en la banca, principalmente en el frente de análisis de operaciones. Un amigo trabaja en casi un millón de líneas de código Objective-C basado en el análisis y el motor de negociación para el que han escrito su propia jerarquía de clases desde cero.

En un momento dado, uno de los gestores de ventanas Linux más populares se escribió en Objective-C. Eso fue hace unos años y puede que ya no sea el caso.

El LLVM compiler también compila Objective-C, incluido el soporte total para Blocks. Es bastante portátil, también.

También está el Portable Object Compiler de David Stes. Compila Objective-C to C y utiliza una jerarquía de clases que se basa bastante directamente en la jerarquía de clases ICPak original de StepStone.

0

Sí, seguro que sí. El que puedo pensar desde lo alto de mi cabeza es Cocotron. Un esfuerzo para conectar AppKit a Windows.

http://www.cocotron.org/

Aparte de eso, Objective-C se puede utilizar en cualquier plataforma que se ejecutará en gcc. No tendrá la gran cantidad de marcos disponibles en Cocoa para OS X o iPhone, aunque como mencionó, GNUStep hace un gran esfuerzo.

+0

¡Gracias, eso parece interesante! Sin embargo, sigue siendo una API de Apple centrada ... – Joe

+0

GNUStep (que incluye el administrador de ventanas wmaker y su propio desarrollador de aplicaciones gráficas) es definitivamente cualquier cosa menos Apple API centrada: se derivan del mismo objetivo NeXTStepC en el que se basa Cocoa. –

+0

Depende si crees que Steve se llevó el espíritu de Apple con él en 1985 ... :) Quise decir NeXT y sus sucesores (incluida Apple). – Joe

4

Parece que lo que estás preguntando es si Objective-C alguna vez se usa sin Cocoa, o GNUstep, o Cocotron, o cualquier API como ellos.

La respuesta es básicamente no. Sin una API como Cocoa (o GNUstep, etc.), Objective-C no es muy útil. Por ejemplo, sin NSObject, retain y release ni siquiera existirían. Un montón de características muy importantes están integradas en estas API, por lo que es inútil utilizar Obj-C sin una de ellas.

+0

Ok. ¡Esa es la respuesta que estaba buscando! Gracias. Olvidé que el importantísimo 'NSObject' está definido en la API, no en el lenguaje (hubieras pensado que el' NS' lo delataría ...) Para tu información, la razón por la que estaba preguntando es porque estaba pensando en poner en orden un proyecto directo de C con algo de Obj-C y eso me llevó a la pregunta. – Joe

+2

El tiempo de ejecución de Objective-C (el anterior en Mac OS X y el tiempo de ejecución de GNU) define un objeto llamado 'Objeto' que tiene muchos métodos en común con' NSObject', aunque algunos tienen nombres diferentes. No contiene liberar/retener, pero es suficiente para iniciar su propio marco de trabajo independiente de Cocoa. – dreamlax