2009-10-01 19 views

Respuesta

1

Esto va a ser un poco de una pregunta de opinión, pero mi opinión es que es mejor quedarse con C#. Cambiar al objetivo C aumenta la cantidad de información nueva que debe aprender antes de poder ser productivo en su entorno.

Incluso manteniendo con C# que todavía tendrá que ...

  • Aprender la API iPhone
  • Aprender las peculiaridades de desarrollo con el propio iPhone

Hay algunos aspectos negativos de usando C# aunque

  • La mayoría de las muestras de iPhone estarán en Objective-C. Debido a que usted no sabe el idioma que será más difícil aplicarlas a su problema conjunto
  • No están obligados a ser pequeñas peculiaridades en el uso de la compilación estática en Mono que tendrá que acostumbrarse.

Mi intuición es que estos serán menores en comparación con el costo de aprender un nuevo idioma.

EDITAR

quería aclarar mis ideas sobre el aprendizaje de un nuevo idioma. Creo que aprender idiomas es divertido y una parte necesaria de la vida de un programador. Debería al menos experimentar con un nuevo idioma una vez al año. Este año estoy jugando con F #.

La única razón por la que recomendé en contra de esta pregunta fue la OP dijo que "la forma más fácil ...". Aprender un nuevo idioma requiere tiempo extra y requerirá un poco más de esfuerzo, por lo que califiqué que es más fácil cumplir con C#.

+2

Pero, por otro lado ... ¡siempre es divertido aprender cosas nuevas! Pero como la pregunta es "fácil", tienes razón. Es probable que MonoTouch sea el camino a seguir, aunque es más caro con una licencia de $ 400 y es probable que tenga menos apoyo de la comunidad con problemas. –

+0

Toma un tiempo acostumbrarse. He usado C, C++, Java y C#, pero tuve problemas para pensar en algunos de los conceptos (y aún así no me sentiría cómodo). Aunque tuve más problemas con XCode y algunos de los caprichos del diseñador que el lenguaje en sí. –

+0

He aprendido muchos idiomas en mi vida profesional. No tengo miedo a la nueva sintaxis. ¿Hay un nuevo paradigma detrás del objetivo-c? ¿O es un lenguaje orientado a objetos regular? – Nestor

9

Eche un vistazo a MonoTouch.

+0

Me pregunto qué tiene que decir Apple sobre MonoTouch. ¿Conoces algún posible problema en el futuro? –

+1

MonoTouch está bien porque no está utilizando un intérprete como algunos otros idiomas en el iPhone. Se compila con código Objective-C nativo, por lo que al final, los dos son indistinguibles. Sin embargo, está a merced del soporte de Novell de MonoTouch, en lugar del soporte directo de Apple. –

+0

Bueno saber. ¡Gracias! –

3

Si usted quiere ser capaz de utilizar todas las API del iPhone y tener acceso a la depuración de código nativo, probablemente van a querer aprender Objective C.

Hay, sin embargo, que por Mono-Touch un pequeño precio le permite desarrollar aplicaciones para iPhone usando C# pero carece actualmente de soporte para la depuración. También existen limitaciones en ciertos usos de los genéricos y otras características de alta gama. Here's a link to the limitations.

Asimismo, para utilizar Mono-Touch que aún necesita Xcode y un entorno Mac configurar para desarrollar para el iPhone. Y es evidente que debe unirse al programa de desarrollo de Apple iPhone si realmente desea implementar algo en un dispositivo real.

+0

Entendido. ¿Hay algún IDE que desarrollar en el Objetivo C para Windows por casualidad? (algo similar a Visual Studio) – Nestor

+0

Apple hace que XCode esté disponible libremente, pero solo se ejecuta en Mac. – LBushkin

+0

Ya veo ... gracias. – Nestor

24

Esto probablemente ofender a algunos, pero para ser honesto, si se va a hacer ningún desarrollo serio, usted debe aprender Objective-C. No saber Objective-C en el desarrollo de iPhone será un obstáculo. No podrás entender muchos ejemplos; tienes que lidiar con las peculiaridades de Mono, mientras que si tienes un conocimiento práctico de Objective-C, puedes obtener mucho más de la documentación de la plataforma.

Personalmente, no entiendo la posición que dice que aumenta la cantidad de información que necesita a favor de usar Mono en el idioma nativo de la plataforma. Me parece algo contraproducente. Creo que si esta es una propuesta muy costosa (aprender un nuevo idioma), entonces puede valer la pena dedicar algún tiempo a los conceptos fundamentales de programación para que el aprendizaje de nuevos lenguajes sea una propuesta bastante barata.

+0

Tu razonamiento tiene perfecto sentido para mí. Gracias – Nestor

+0

Y para colmo de males; MonoTouch ni siquiera tiene soporte de depuración adecuado. Por lo tanto, tendrá que aprender todas estas cosas nuevas con solo impresiones de registro para guiarlo. ¿Desde cuándo un principiante pasó más tiempo escribiendo un código nuevo que depurando? – PeyloW

7

Monotouch es más fácil para usted ahora. Pero más difícil más tarde.

Por ejemplo, ¿qué sucede cuando salen nuevas semillas que necesita para probar pero romper MonoTouch por alguna razón?

Al seguir con Mono, cada vez que busca recursos para marcos tiene que traducir mentalmente cómo va a usarlos con Mono. Los archivos binarios de la aplicación serán más grandes, su tiempo de desarrollo no será mucho más rápido después de algunos meses en Objective-C, y otros desarrolladores de aplicaciones tendrán una ventaja mucho mayor sobre usted porque están utilizando la plataforma nativa.

Otra consideración es que está buscando usar C# porque está más familiarizado con el lenguaje que Objective-C. Pero la gran mayoría de la curva de aprendizaje para el iPhone no es Objective-C, son los frameworks, a lo que tendrás que recurrir también con C#.

Para cualquier plataforma, debe usar la plataforma que expresa directamente la filosofía de diseño de esa plataforma: en el iPhone, es decir, Objective-C. Piense en esto desde el ángulo inverso, si un desarrollador de Linux acostumbrado a programar en GTK quisiera escribir aplicaciones de Windows, ¿seriamente recomendaría que no usen C# y se adhieran a GTK porque era "más fácil" para ellos hacerlo?

0

MonoTouch Creo que es el camino a seguir, pero tenga en cuenta que todavía está en su infancia. Pude instalar las herramientas de desarrollo Mono y poner en funcionamiento el IDE de MonoDevelop, pero el IDE en su estado actual es increíblemente lento y casi inutilizable; al menos ejecutándose en Snow Leopard para Mac OSX. Busqué en Google y parece que se trata de un problema conocido, pero está resuelto en los repositorios de última generación de MonoDevelop. Creo que Novell está trabajando en algo, pero también siento que estarás luchando con todo el framework mientras todavía está en las primeras etapas.

Por lo tanto, en resumen, si desea ir a la ruta C#/MonoTouch, prepárese para trabajar mucho y perseguir fantasmas debido a inestabilidades o falta de adecuación del marco. Creo que esto es cierto para cualquier nuevo marco.

Cuestiones relacionadas