¿La aprobación del lenguaje por parte de diferentes plataformas (Android, iOS) perjudica el desarrollo de la aplicación?

7

El desarrollo de aplicaciones basadas en iOS o OSX generalmente requiere conocimientos de Objective C, ya que XCode está altamente adaptado a este idioma.

Android, por otro lado, ha elegido Java como su idioma preferido para el desarrollo de aplicaciones.

Ahora, sé que se pueden usar otros lenguajes de programación para desarrollar aplicaciones en cualquiera de las plataformas, pero seamos honestos, es mucho más fácil (y recomendable) desarrollar aplicaciones que utilicen estos "idiomas nativos".

Como nuevo desarrollador de aplicaciones, parece que sería mucho más fácil si existiera un lenguaje y un entorno de desarrollo comunes para desarrollar aplicaciones en todas las plataformas principales. Este pensamiento es probablemente demasiado idealista para una discusión de programación, y no me sorprendería si los buitres SE volaron para cerrar este tema. Pero, aquí está mi pregunta.

¿Crees que la aprobación del lenguaje crea barreras irracionales para la entrada de nuevos programadores, o crees que es beneficioso de alguna manera (si es así, por qué) que estas plataformas usen entornos de desarrollo e idiomas completamente diferentes para el desarrollo de aplicaciones?

    
pregunta MSe 05.05.2011 - 17:42

5 respuestas

4

No, no es un problema; cualquier programador que valga la pena pagarlo debe poder aprender nuevos idiomas y herramientas rápidamente. Es solo una barrera para las personas que son perezosas o poco capaces. El punto no es escribir Java u Obj-C; el punto es crear una aplicación con cualquier herramienta que tenga disponible. Si no puede diferenciar entre la solución y la implementación de esa solución, no debería estar en este negocio.

En cuanto a si ofrece algún beneficio, es una cuestión de compensaciones. Tener un conjunto de herramientas y una arquitectura comunes facilita el desarrollo de aplicaciones; no tiene que reinventar la rueda cada vez que quiera poner un menú desplegable en la pantalla. Brinda consistencia entre las aplicaciones y facilita la aplicación de las pautas de usabilidad. Significa que tienes que aprender un nuevo idioma y un conjunto de herramientas, pero eso es bueno para ti. Puede ahogar la "creatividad", pero cuando pienso en los días del DOS salvaje y el desarrollo temprano de Windows, eso no es una cosa mala . ¿Sería bueno si todos eligieran la misma plataforma? Sí, sin duda. ¿Eso va a suceder alguna vez?

No en mi vida, eso es seguro.

Y las plataformas siempre han tenido lenguajes de implementación preferidos; el kit de herramientas original de Macintosh se implementó en Pascal , para gritar en voz alta (sí proporcionaron enlaces C, lo que dio lugar a un código realmente feo).

    
respondido por el John Bode 05.05.2011 - 18:29
1

A su primera pregunta: No. No creo que cree una barrera de entrada irrazonable. Si puede aprender a programar en Java, en lugar de aprender Java , entonces ya sabe (en su mayor parte) cómo programar en Objective-C.

A tu segundo: No, no creo que tenga ningún beneficio real. Bueno, supongo que es beneficioso para Apple tener a todos los que quieren desarrollar para Mac comprar una Mac ... pero no, no hay un beneficio perceptible en la fragmentación de mercados similares por una diferencia.

    
respondido por el TZHX 05.05.2011 - 17:55
1

Hombre, nadie entre los grandes jugadores se preocupa por los programadores y sus extrañas nociones o equidad y eficiencia. Cada uno de ellos ha estado construyendo un jardín amurallado y ha hecho muchos trucos para hacer que los programadores se adhieran a ellos y solo a su plataforma.

Pero como una discusión puramente teórica, sí, se habría beneficiado si pudiéramos apuntar a todas las plataformas desde el mismo entorno de desarrollo.

  • Habría minimizado los esfuerzos de desarrollo y mantenimiento si hubiera un entorno de desarrollo unificado
  • Hubiera forzado indirectamente a las plataformas a admitir más o menos la misma funcionalidad accesible de manera unificada, lo que habría simplificado la vida de los desarrolladores
  • Habría creado una experiencia de usuario unificada si la aplicación de Windows Phone se viera y se comportara de forma idéntica a la aplicación de iOS

Pero entonces, también habría eliminado los límites entre las plataformas y reducido a quién es capaz de enviar el hardware más densamente empaquetado al menor costo posible. Y no quieren eso con seguridad.

    
respondido por el user8685 05.05.2011 - 17:51
0

Para su primera pregunta, ya sabe los conceptos necesarios para programar para iOS o Android o lo que sea, o no. Si no lo hace, es probable que no pueda crear una nueva aplicación. Si lo haces, aprender el idioma será fácil. Será más difícil aprender los marcos y las bibliotecas, pero puedes hacerlo.

Para su segunda pregunta, la multiplicidad de entornos se produjo por buenas razones. Las diferentes compañías comienzan con diferentes objetivos y comienzan en diferentes momentos. La programación de Mac, para Mac OSX o iOS, se originó con el cubo NeXT hace aproximadamente unos veinte años (¿has notado todos los prefijos NS para NeXT Step?). En ese momento, Objective-C era un competidor, y NeXT y Apple han trabajado mucho en el medio ambiente a lo largo del tiempo.

Google llegó mucho más tarde, con mucho menos equipaje y, probablemente, objetivos de diseño algo diferentes, y terminó con algo muy diferente para trabajar. No iban a usar Objective-C, porque pensaban que Java era una mejor opción.

La única forma en que iOS y Android habrían tenido el mismo idioma nativo habría sido si Apple hubiera convertido más de veinte años de trabajo en Java, sin ganancias reales, o si Google hubiera permanecido deliberadamente más compatible con iOS. Tampoco iba a pasar. Apple, en particular, no se convirtió en la empresa de computadoras y tecnología más rentable del mundo al tratar de hacer lo que todos los demás hicieron un poco mejor o un poco más barato.

Además, nadie es lo suficientemente inteligente como para configurar el mejor entorno de desarrollo posible para una aplicación determinada. Las personas son lo suficientemente inteligentes como para crear diferentes funciones, algunas de las cuales serán mejores, y para adaptar las funciones de otras personas a su propio sistema.

No vamos a lograr la convergencia de plataformas hasta que sepamos qué es lo mejor, y no creo que eso vaya a suceder en mi vida. ¿Es Java mejor que Objective-C? Posiblemente, aunque sean idiomas muy diferentes. ¿Es Java el mejor lenguaje posible para desarrollar aplicaciones móviles? Espero sinceramente que no. Si tuviéramos una plataforma común, alguien con una mejor idea obtendría una inmensa resistencia, mucho más que hoy, y el desarrollo de software se estancaría.

    
respondido por el David Thornley 05.05.2011 - 19:44
0

Estoy de acuerdo con la idea general de "No aprendas un idioma, aprende a programar. El lenguaje es solo una herramienta".

También sostendría que tener un ecosistema más amplio y diversificado hace que para mejores entornos de programación, herramientas de juguetes y productos finales en general. Obliga a todas las partes a crear, adaptarse e innovar en múltiples niveles.

También existe el problema de conseguir que estos pesos pesados de la industria estén en la misma sala y lograr que lleguen a un acuerdo sobre cualquier cosa sin submarinar el proceso.

    
respondido por el Wyatt Barnett 05.05.2011 - 20:08

Lea otras preguntas en las etiquetas