¿La programación en C es eficiente para crear aplicaciones para iOS?

¿Eficiente como en la velocidad de carrera? Seguro. Sin embargo, creo que no es prudente si planea escribir sus aplicaciones exclusivamente en C (supongo que desea escribir aplicaciones iOS / Mac). Hay clases de iOS que todavía usan C puro, como las clases de dibujo de iOS (también busca el concepto de puente gratuito).

Objective-C es una capa que se ajusta fuera de C para proporcionar programación orientada a objetos. El compilador CLang compilará tanto el código Objective-C como el código C de forma nativa. Por lo tanto, no hay duda de que los segmentos C funcionarán bien en sus aplicaciones. Sin embargo, Obj-C usa ARC, lo que significa que necesitaría envolver su código C dentro de una clase Obj-C para administrar adecuadamente sus instancias C (punteros).

Por el contrario, una buena aplicación debería ser atractiva y utilizable. Esto viene con un buen diseño GUI. Desafortunadamente, en mi opinión, esto solo se puede hacer de manera eficiente con los patrones de diseño de iOS (MVC y cosas similares). Lo bueno es que Obj-C es fácil, y pasar algún tiempo para comprender el concepto detrás del diseño de iOS, el marco de Foundation y otras mecánicas ciertamente mejorará su habilidad de programación.

Entonces, ¿cuándo es mejor usar C en el contexto? – Es cuando tienes algunos algoritmos específicos como científico, IA, dibujo; luego impleméntelos en C. Una vez que estén construidos correctamente, envuélvalos dentro de las clases Obj-C para que pueda incrustarlos en sus impresionantes aplicaciones de Apple.

No he escrito una línea de código C en más de 20 años. Por otro lado, he escrito cientos de líneas de HTML / CSS / Javascript en las últimas semanas, por lo que para mí sería muy ineficiente escribir una aplicación con C. Para mí, el lenguaje ideal es HTML / CSS / Javascript y luego compílelo usando PhoneGap en código nativo. Sin embargo, este puede no ser el caso para usted.

En realidad, déjame retroceder un poco aquí. Primero, ni siquiera sé si es posible escribir una aplicación para iPhone en C. ¿Estamos hablando del objetivo C aquí? o C ++? Bueno, suponiendo que sea lo que sea a lo que te refieres es incluso posible. Supongo que su eficiencia al escribir una aplicación dependerá en gran medida de su capacidad para escribir en C.

Sin embargo, si tuviera que adivinar, supongo que generalmente es más eficiente escribir en un lenguaje de nivel superior (como Javascript) y luego compilarlo. La razón de esto es que los lenguajes de nivel superior, por definición, abstraen gran parte de los detalles rudimentarios de las funciones comunes. Le permite escribir menos código para hacer lo mismo, sin embargo, a veces lo muerde en el trasero. A veces te encuentras con ganas de hacer algo diferente a cualquiera de las construcciones de lenguaje predefinidas y en esos casos puedes encontrar que es más fácil y rápido escribir en el lenguaje de nivel inferior que encontrar una solución.

Objective-C es originalmente solo un preprocesador que, por ejemplo, traduciría mensajes orientados a objetos que pasan a llamadas de función C. Entonces la siguiente línea Objective-C

[ventana setRootViewController: viewController];

sería traducido por el preprocesador Objective-C al siguiente código C:

objc_msgSend (self-> window, sel_getUid (“setRootViewController:”), viewController);

Es por eso que el código Objective-C tiene muchos símbolos @, porque se usa para indicar que la línea está destinada al preprocesador Objective-C al igual que # para el preprocesador.

Puede ver un ejemplo de cómo escribir la aplicación Cocoa en C puro aquí: Cómo escribir la aplicación iOS únicamente en C

Por lo tanto, escribir en C puro es bastante inútil, ya que no es más eficiente. Es solo más detallado. Objective-C ya es más o menos lo mismo que C pero con cosas adicionales para hacer pasar mensajes a objetos. Cuando las personas quieren un código Cocoa eficiente, generalmente reducen la transmisión de mensajes y usan funciones C más regulares, se adhieren a estructuras más que a clases, etc.

Tienes que usar Objective-C ++. Objective-C ++ puede sonar como un nuevo lenguaje de programación, pero no lo es. Es una combinación de dos lenguajes, Objective-C y C ++. Apple proporciona Objective-C ++ como un mecanismo conveniente para mezclar código Objective-C con código C ++.

Objective-C está cerca de C pero con características orientadas a objetos implementadas como una capa delgada encima de C. Es un superconjunto estricto de C que hace que cualquier código C sea un programa Objective-C válido.

Entonces, C será el mejor lenguaje para el desarrollo de aplicaciones iOS.

La mayoría de los desarrolladores de iOS ahora piensan que Swift es el lenguaje más eficiente para el desarrollo.

El objetivo C es el lenguaje original y único de primera clase para el desarrollo de iOS.

Otros lenguajes como C son teóricamente posibles pero no lenguajes de primera clase. En realidad, se ha usado otro lenguaje y es más que una teoría. Nunca he oído hablar de que C se use realmente.

Si no es un lenguaje de primera clase, no lo consideraría eficiente. Por varias razones, como la forma en que Apple administra la App Store, solo usaría idiomas de primera clase a menos que tenga una muy buena razón.