2009-02-15 8 views
7

Estoy trabajando en C++ desde hace 4-5 años. Recientemente compré iphone y macbook y quiero hacer algo de programación para iphone.Estudio Objetivo-C, Ruby O Python?

Así que he comenzado a leer un libro sobre Objective-C. También aprendí que podemos programar con Ruby y Python en MAC.

Entonces mi pregunta es ¿cuál estudiar? ¿Qué idioma ustedes ven el FUTURO?

¿Podemos programar con estos idiomas en otras plataformas? ¿O solo están limitados en MAC?

Soy solo un principiante en el objetivo-C.Necesito algunos pensamientos expertos sobre qué camino tomar.

AC

+5

Ningún idioma en particular es "el FUTURO", y ¿qué pasa con el exceso de signos de interrogación? – womble

+0

Bien, un signo de interrogación. Pero ¿por qué -2 votos? ¿Es esta pregunta inválida? – anand

+4

No es inválido.Probablemente debería etiquetarse como "subjetivo". Y su gramática y sintaxis hacen que la publicación sea bastante molesta de leer. Usar buena gramática en todo momento y evitar cosas como "tú" en lugar de "tú" te hace parecer más inteligente y hace que la gente esté más dispuesta a responder tus preguntas. –

Respuesta

8

Uso todos los lenguajes C++, Ruby, Python y Objective-C. Me gusta cada uno de diferentes maneras. Si desea obtener el desarrollo de Mac y iPhone como otros, recomiendo Objective-C.

Uno de los beneficios no mencionados es que Objective-C es un superconjunto adecuado de C (C++ es casi un superconjunto), lo que significa que puede sacar todo su conocimiento de programación C de la programación C++ a Objective-C. De hecho, también puede mezclar código C++ en código Objective-C.

No puede hacer eso de manera transparente en Python y Ruby. La razón por la que puede hacer esto es que Objective-C es en realidad un lenguaje muy simple.

Originalmente se acaba C con un preprocesador por encargo que se llevó a declaraciones como esta:

[rectangle setX: 10 y: 10 width: 20 height: 20]; 

y lo convirtió a este antes de compilar:

objc_msgSend(rectangle, "setX:y:width:height:", 10, 10, 20, 20); 

Aparte de que Ruby, Python y Objetivo -C son muy similares en su modelo de objeto al menos en comparación con C++. En C++ las clases se crean en tiempo de compilación. En Objective-C, las clases de Ruby y Python son cosas creadas en tiempo de ejecución.

escribí algunas cosas en why Obj-C is cool here

4

Como perlita, sólo voy a señalar que OS X tiene Perl, así como Python o Ruby.

En lo que respecta a Perl/Python/Ruby, los programas son casi completamente multiplataforma. Es bastante fácil ejecutar un programa Perl/Python/Ruby en cualquier plataforma y funciona más o menos igual. Puede haber algunas diferencias menores, pero no son importantes.

Objective-C, aunque no se limita estrictamente a OS X, solo se usa realmente en entornos basados ​​en OpenStep, lo que generalmente significa OS X y iPhone. El único compilador de Objective-C que conozco es gcc, y me imagino que puedes escribir Objective-C en Linux, pero no sé si el soporte de Windows es muy bueno (si existe).

En cuanto a cuál es el idioma del "futuro", los 3 (o 4) idiomas se utilizarán ampliamente en el futuro. Nadie puede predecir realmente este tipo de cosas, y ninguno de los idiomas realmente va a morir (a menos que Apple cambie a un nuevo idioma como un "estándar" para hacer programas Mac), así que estarás bastante seguro con cualquiera de ellos.

Mi consejo: pruébelos y vea cuál cree que se adapta mejor a su estilo, y aprenda eso.

+0

SO ¿Es posible desarrollar aplicaciones de escritorio con perl/ruby ​​/ python como lo hacemos en C++? ¿O solo hay idiomas web? – anand

+0

Es posible desarrollar aplicaciones de escritorio con Perl/Python/Ruby al igual que cualquier otro idioma. Al menos, Perl y Python lo sé. No estoy seguro de Ruby, pero es probable. Nada es "solo" un lenguaje web (bueno, tal vez PHP). –

+0

@Chris http://gtk.php.net/ = P –

10

Si desea programar para iphone, entonces debe usar objective-C. Toda la API de iPhone se basa en el objetivo C, y usted tiene las ventajas de usar el constructor de interfaces y el soporte IDE de Xcode.

2

Si programa con Objective-C, su objetivo principal debería ser escribir aplicaciones Cocoa en la Mac. Más allá de eso, tiene poco uso. Ruby y Python son lenguajes de scripting útiles, y también hay puentes para escribir aplicaciones de Cocoa.

Si quieres escribir aplicaciones en la Mac, comenzaría con Objective-C. Hay más apoyo disponible.

En términos del futuro, parece que mucha gente está subiendo al carro de Ruby en este momento. Buena suerte.

+0

parece que usted saltó al carro también –

7

Objective-C es la única forma de programar un iPhone si desea producir programas nativos que se puedan vender en la App Store.

Algunos de los conceptos más avanzados en Objective-C ahora se están agregando a lenguajes como C# (por ejemplo, métodos de extensión en C# v3.0). Aprender a pensar en Objective-C será útil, el modelo OO que aprende será aplicable a la mayoría de los otros lenguajes y entornos como una adición a su experiencia en C++.

El modelo de objetos de Ruby es más cercano al de Objective-C que Python, por lo que sugiero que también aprendas Ruby pero no hasta que tengas sólidas tus habilidades de Objective-C.

Tenga en cuenta que puede usar Objective-C++ y usar C++ para todos menos su código GUI teniendo sufijos .mm en sus archivos; esto funciona tanto en iPhone como en Mac. Dada tu experiencia en C++, eso te ayuda a ser productivo.

Si desea programar el iPhone, no se moleste en aprender la nueva administración de memoria Objective-C 2.0 pero aún puede usar el modelo Propiedades (iPhone tiene efectivamente un subconjunto del tiempo de ejecución de Objective-C 2.0).

2

Para programar en Mac OS X, realmente necesita una buena base en Objective-C. La gran mayoría de la documentación asumirá Objective-C. Incluso si elige programar algunas aplicaciones en otro idioma, será mejor que lo comprenda bien.

3

Como han señalado otros, si desea programar el iPhone, Objective-C es el camino a seguir.

Objective-C es bastante específico de Mac; por supuesto, el compilador Gnu Objective-C también está disponible para otras plataformas, y también existe GnuStep, pero creo que la principal aplicabilidad de Objective-C hoy en día es la programación de Mac y iPhone.

Python y Ruby, por otro lado, están disponibles en una gran cantidad de plataformas (incluidos Windows y muchos dialectos Unix). Personalmente, prefiero Python, pero diría que ambos idiomas son muy útiles y fáciles de abordar.

Tenga en cuenta también que Python y Ruby tienen puentes Objective-C disponibles, lo que le permite escribir aplicaciones Cococa bastante sofisticadas en cualquiera de esos idiomas.

7

¿Qué idioma ven el FUTURO?

¿Futuro de qué? desarrollo de iPhone? C objetivo.

Servicios web? Python/Ruby en paralelo por un tiempo. Al menos hasta que la gente comience a hacer tareas de mantenimiento en grandes aplicaciones de Ruby y se sienta frustrada con su opacidad.

Desarrollo del motor de juego en tiempo real? Aplicaciones integradas? ¿Futuro de qué?

"¿Podemos programar con estos idiomas en otras plataformas? ¿O solo están limitadas en MAC?"

Ruby and Python: Sí. Están diseñados para ejecutarse en cualquier plataforma que admita C.

Objetivo-C: Sí. Es de código abierto, está en el GCC, es si funciona en casi cualquier lugar.

Aprendiendo un nuevo idioma es no un juego de suma cero. Puedes aprender más de un idioma; aprender Objective-C ahora no le impide aprender Python o Ruby en el futuro.

+2

PHP funciona muy bien para servicios web, por lo que no puede decir que Python o Ruby solo para un servicio web. –

+0

La pregunta enumeró específicamente Python, Objective-C y Ruby. La pregunta no mencionó PHP. –

1

Objective-C es solo Mac/iPhone, y le recomiendo que aprenda si desea desarrollar aplicaciones para Mac/iPhone. Python es todo y es futuro, pero Python es más preferible para el desarrollo web. Python es Google :) Python es web, juegos, ciencia, gráficos, escritorio, etc. También es una muy buena opción si eres desarrollador de C/C++.

No estoy seguro de si puedo recomendarte aprender Ruby ...

2

Ruby. Con Ruby podrás hacer tanto el desarrollo web (Rails/Sinatra/etc.) Como el programa muy pronto en la plataforma MAC/Iphone con el proyecto Macruby. ¿Por qué no obtener lo mejor de ambos mundos?

Tommy

+0

No es que aprender Ruby no sea una buena cosa en sí mismo, pero no hay evidencia de que MacRuby sea compatible con el iPhone. La plataforma está estrictamente bloqueada, y Apple dicta lo que los desarrolladores pueden hacer en un grado inusual. No solo en términos de las tecnologías de desarrollo y las API que puede usar, sino incluso la funcionalidad que su aplicación puede implementar. Así que, aunque Apple * podría * algún día permitir que las aplicaciones MacRuby utilizaran la compilación anticipada (todos los idiomas interpretados actualmente están prohibidos), dejando de lado el jailbreaking, no hay razón para suponer que eso sucederá. (En realidad, parece poco probable) – Mason

2

Sólo mis dos centavos ... Como estoy seguro de que está al tanto, Apple y otros en las respectivas comunidades está haciendo mucho trabajo con Ruby y Python, tanto para el desarrollo Mac y iPhone . Objective-C te llevará a las arenas de Apple solo en estos días (aunque tal vez no sea algo malo;) Sin embargo, si solo vas a aprender un idioma en un futuro cercano, piensa dónde lo usarás, y Para qué. Ruby y Python te llevarán mucho más lejos si miras más allá del escritorio y el iPhone de Mac.

2

He escrito pequeños juegos, intérpretes y toneladas de cosas increíbles en Ruby. No lo recomendaría para escribir programas intensivos de IA, por ejemplo, pero es divertido de aprender y poderoso para la mayoría de las aplicaciones. Incluso cuando hago la mayor parte de mi trabajo en C++, Ruby es mi idioma favorito por razones subjetivas.

Objetivo C como la mayoría de la gente dice Es una necesidad en el desarrollo de iPhone, y divertido si le entusiasma aprender idiomas.

No he probado Python, pero solo escucho cosas buenas de él, y PyGames es bastante popular.

Aprendería las tres (bueno ... omitiría el objetivo C a menos que sienta curiosidad por ingresar al desarrollo de un iPhone), la mayoría de los idiomas que conoce, el mejor profesional lo será. Como siempre dijo un buen profesor mío ... No se trata de ser el maestro en un solo idioma, se trata de conocer los pros y los contras de cada uno para elegir el correcto de acuerdo con el problema particular que desea resolver.

¡Salud!

Cuestiones relacionadas