Si estoy pensando en crear un servicio genial, ¿qué debo aprender? JavaScript u Objective-C (programación web versus programación de aplicaciones móviles), ¿y por qué?

Wow, pregunta difícil.

Estás hablando de dos entornos que son opuestos casi polares entre sí. Por un lado, tiene una plataforma cuidadosamente diseñada, herméticamente sellada, hermosa y controlada. Por otro lado, tiene un circo que gira libremente y está “controlado” por múltiples partes que desconfían mutuamente y que solo puede considerarse realmente una plataforma en el sentido más laxo de la palabra.

Las cosas probablemente serán algo más fáciles si te apegas a los senderos con Objective-C / Cocoa. Pero si quiere salir de las líneas, las cosas se pondrán difíciles rápidamente.

Por otro lado, la web es un poco más difícil de comenzar y tiene algunos bordes afilados. No hay nadie cuyo trabajo sea hacer buenos documentos y tomar tu mano, pero hay una comunidad gigantesca de personas que intentan ayudar y con una búsqueda rápida o dos, puedes encontrar a alguien que escribió sobre casi cualquier cosa que quieras hacer .

Creo que, en última instancia, se reduce a alcanzar Puede llegar a todos en la web, pero será una experiencia subóptima en iPhone en comparación con ser nativo. Puede hacer algo realmente bueno para los usuarios de iPhone con Cocoa, pero solo llegará a aquellos en iPhone / iPod touch.

Sí, creo que el núcleo de esta pregunta es cuál es su servicio y cómo desea que se use. Si bien podría ser una aplicación móvil o una aplicación web, ¿cuál crees que le queda mejor?

He estado aprendiendo constantemente ambos idiomas (además de los otros idiomas que generalmente necesita para una programación web decente) durante los últimos meses. Si tuviera que elegir uno sin tener idea de lo que realmente haría, supongo que usaría Javascript (+ una biblioteca como jQuery o MooTools) ya que creo que es más versátil.

De hecho, diría (con mi experiencia limitada) que aprender los conceptos básicos de Javascript inicialmente fue bastante más fácil que los conceptos básicos de Objective-C (la sintaxis es más estándar). Dicho esto, como dijo Aaron Boodman, la programación de iPhone tiene la ventaja de trabajar en una sola plataforma; si quieres tomarte en serio la web, deberías considerar todo tipo de casos difíciles.

Depende de lo que tengas en mente. Existen herramientas como Appcelerator Titanium que le permiten agrupar HTML5 / JS en aplicaciones para que el usuario no tenga que abrir el navegador y encontrar su sitio. De lo contrario, es una inconsistencia de usabilidad, se supone que las aplicaciones de iOS están en la tienda de aplicaciones, se supone que aparecen en la lista de aplicaciones, no dentro de Safari.

Para ciertas aplicaciones, JS y Obj C serán indistinguibles. Estas son aplicaciones simples como clientes de Facebook o Twitter. Si la aplicación requiere una interfaz de usuario elegante, gráficos pesados, entonces debes usar Obj C.

Sin embargo, JS es apropiado para la mayoría de las aplicaciones. Tampoco debe depender de Apple para que se encargue de la capacidad de detección de su aplicación y le haga ganar dinero, probablemente ahora sea más difícil en la tienda de aplicaciones de Apple que en los androides. JS te da más opciones allí.

En cuanto al idioma, JS será más fácil de aprender, probablemente construya su aplicación más rápido, pero depende de la interfaz de usuario de la aplicación y de qué tan bien los marcos JS Touch como Sencha o SproutCore satisfagan sus necesidades.