2010-05-20 16 views
6

Estoy desgarrado. Quiero comenzar a hacer aplicaciones para OS X. Hay un mercado específicamente desatendido al que me gustaría acceder, pero no sé si debería desarrollarlo solo para mac con Cocoa y Objective C o si debería desarrollarlo. con Java y JavaFX.¿Debo aprender un lenguaje específico de sistema operativo o algo así como Java?

Supongo que mi pregunta es, ¿es Java lo suficientemente robusto como para manejar las mismas cosas que Objective C en Mac y C# (.net) en Windows?

+1

Se agregó una etiqueta osx, ya que la pregunta parece ser específica de osx. Debería recibir una mejor atención de la comunidad OS X. –

+2

Probablemente no debería decir esto, ya que mi comentario puede considerarse muy subjetivo, pero ¿por qué quieres desarrollar en una plataforma cerrada donde los desarrolladores no son respetados. http://www.eff.org/deeplinks/2010/03/iphone-developer-program-license-agreement-all –

+1

Andrei, creo que Ben se refirió a Mac, no al iPhone/iPad. El desarrollo de Mac es tan abierto como el desarrollo de Windows. No tan abierto como el desarrollo de Linux, seguro. Como desarrollador de Sunday Cocoa desde hace mucho tiempo, no me gusta vilipendiarme solo porque el acuerdo de desarrollo de iPhone es una mierda. El horrible estado del acuerdo de desarrollo de iPhone no se traduce en la maldad de Cocoa. ¡De hecho, Cocoa es un marco decente y elegante! – Yuji

Respuesta

5

Si desea desarrollar (exclusivamente) para OSX (y/o iPhone, Ipad), su mejor apuesta para aplicaciones de apariencia nativa (y de comportamiento) que aprovechan el poder del sistema operativo todavía estaría aprendiendo Objective-C (y el marco de Cocoa).

Aprender la sintaxis de Objective-C no es difícil si tienes algo de experiencia en C simple. Explorar el marco y la funcionalidad proporcionada (Cocoa) es la parte que consume más tiempo (lo mismo se puede decir de otros lenguajes).

+0

No soy un experto en OS X, pero ¿no he visto algo en las noticias recientemente sobre el acuerdo de desarrollador para iPhone y iPad que requiere que el desarrollo se realice exclusivamente con API nativas? Puede que eso no sea válido para las aplicaciones de escritorio, supongo, pero una vez más, el mercado del iPhone apenas está "desabastecido", por lo que @Ben podría no estar hablando de eso. –

+0

Sí, Apple ahora desalienta/prohíbe activamente el uso de compiladores cruzados. Mucha discusión sobre ese tema en ciertos círculos (discusión entre Adobe vs. Apple, por ejemplo). – ChristopheD

+0

Gracias por respuestas EXTREMADAMENTE rápidas. Creo que iré con Objective C. – Ben

4

Los usuarios de Mac generalmente evitarán las aplicaciones que no se comporten como esperan. Si honestamente piensa que puede "aprovechar" ese mercado, entonces tendrá que estar preparado para esforzarse por comprender ese mercado, y las herramientas de desarrollo nativas facilitarán esa tarea.

+0

Triste pero cierto +1 –

2

Bueno, Java es robusto, pero aún así, hay algunas cosas que desea hacer en un sistema operativo específico ... Sobre todo UI, ya que puede acceder a bibliotecas Windows y OS X desde Java, hay complicaciones en el uso de tecnología específica, por ejemplo WPF crea GUIs muy atractivas para Windows, mientras que Java no es tan bueno como crearlas.

Por lo general, depende del tipo de aplicaciones que desea crear, son las de negocios, el uso empresarial donde la interfaz de usuario no es un gran problema, pero la portabilidad es? Ve con Java ¿Si desea crear herramientas visualmente atractivas o rápidas para un mercado específico? Ir con lenguajes específicos de OS.

2

Debe ver las cosas de manera diferente. Necesita aprender programación y la mayoría de los casos Java no es la respuesta para un principiante.

Lo que no necesita hacer es elegir un idioma porque "es mejor". Si desea desarrollar aplicaciones para OS X, debe aprender Objective C.

Luego, en algún momento en el futuro, se dará cuenta de que necesita hacer Java. No hay problema, ya eres un desarrollador, entonces será muy fácil aprender Java.

El punto es solo aprender a programar.

2

Si el mercado desabastecido es específico de OS X, me gustaría ir con algo que se dirija a esa plataforma de forma nativa. Si desea crear una aplicación general que use OS X como una plataforma, debe escribirla con Java u otro lenguaje de plataforma independiente. Realmente depende de qué tan portátil quieras que sea tu aplicación, qué características tendrá tu aplicación y el tipo de aplicación que tienes. Aconsejo examinar qué idiomas se adaptan mejor a sus necesidades en cuanto a una herramienta (características, bibliotecas, plataforma, etc.) antes de tomar la decisión

2

No importa que elija un idioma, solo que lo aprende . Variables, bucles, lógica de decisión, etc. Los principios estarán presentes en casi todos los idiomas. Todo lo que cambia, pasando del lenguaje al lenguaje, es la sintaxis y la potencia (IE: gestión de la memoria a mano en C/C++ frente a la memoria gestionada en Java & .NET).

No es para su situación, pero en general, es posible que desee elegir un idioma que previsiblemente es el más empleable. Hay más Java &.Trabajos de red que hay Pascal;)

2

Java es lo suficientemente robusto pero nunca ha despegado como una plataforma para desarrollar aplicaciones de escritorio. Sin embargo, es muy popular para desarrollar aplicaciones web debido a la llegada de Java Enterprise Edition.

Las razones de la falta de Java de penetración en el mercado de las aplicaciones de escritorio, probablemente a se remonta a la mala calidad de si el marco inicial de desarrollo GUI AWT. Swing mejorado en esto y ha seguido mejorando a lo largo de los años, pero todavía tiene algunos caprichos. Esto se debe principalmente a que Swing dibuja los componentes de la pantalla en lugar de utilizar la plataforma subyacente.

Si desea una aplicación que se ve y se siente nativa, entonces debe utilizar Cocoa. Si realmente tiene su corazón puesto en la programación en Java, entonces debería considerar usar el Eclipse RCP. Este es el marco de la GUI de Java que usa los widgets del sistema operativo nativo.

+0

IMO, la razón más probable por la falta de penetración en el escritorio es la falta de interés en las aplicaciones de escritorio. Webapps, cloud computing, HTML5 apuntan a la consolidación del mantenimiento ... –

+1

Dudé en iniciar una conversación sobre Java en el escritorio. Sin embargo, no estoy hablando de historia reciente, estoy hablando de hace más de una década cuando Java se estaba posicionando para aplicaciones de escritorio. Incluso hoy en día, las aplicaciones de escritorio comerciales y de código abierto aún prevalecen, pero pocas de ellas están escritas en Java. –

+0

@OMG Ponies, él habla de la falta de penetración de Java dada la cantidad de aplicaciones de escritorio que hay por ahí. La respuesta es correcta: Swing ha sido ampliamente odiado (y el amor, también) desde su creación. –

0

¿Debo aprender un lenguaje específico de sistema operativo o algo así como Java?

Sí, debería.

Lo que quiero decir es que los lenguajes de computadora son herramientas. Un buen trabajador tiene varias herramientas en su caja de herramientas. No encuentras personas en plumbingoverflow.com que pregunten "¿debo aprender a usar una llave de tubo o una soplete"?

+0

Esa es una gran analogía. Oh, lo siento, quise decir que no es una gran analogía. El OP desea comenzar a desarrollar en OSX, y quiere saber si las aplicaciones Java pueden verse/comportarse de forma nativa. Su respuesta, "obtenga todas las herramientas que pueda, amigo". Eso no ayuda en absoluto. –

+0

Lo remito al título de la pregunta. La respuesta correcta es "ambos". La mejor manera de decidir cuál es la mejor herramienta para el trabajo es probarlos. En mi experiencia, los programadores que se enfocan en un idioma en particular tienden a no ser tan buenos como aquellos con una amplia gama de idiomas y que desean aprender más. – JeremyP

+0

Eso es cierto, por supuesto, pero eso no es un consejo para alguien que está COMENZANDO. –

Cuestiones relacionadas