2009-08-18 13 views
6

Actualmente soy desarrollador de C# (un año de experiencia laboral con licenciatura en china), ahora hay otra oportunidad de trabajo como ingeniero objetivo c y estoy interesado en ese puesto. pero lo que me molesta es el futuro del objetivo c, ¿es un lenguaje moribundo que vive a la sombra de C++, java y C#? o es un buen lenguaje para mantener? gracias.el futuro del objetivo c?

+1

Objective-C es, en mi opinión, un lenguaje muy frustrante. Creo que se ha mantenido mayormente vivo debido a que Apple lo usa para Cocoa y el iPhone. Comparado con C#, hacer Obj-C se sentirá como dar dos pasos hacia atrás. Honestamente, me mantendría alejado. –

+2

Vine al objetivo c de Java y Python, y realmente me gusta. No creo que se esté muriendo, Apple lo mantiene vivo, usándolo para el desarrollo de iPhone y Mac OS X ... no es como si de repente decidieran cambiar el idioma en el que están escritas casi todas las aplicaciones en Mac. – mk12

+4

@Matt, tu comentario no es realmente útil a menos que demuestres por qué. En mi experiencia, las personas con un fondo Java/C# encuentran que Objective-C es frustrante, principalmente porque se sienten cómodos con los lenguajes seguros que intentan detectar tantos errores como sea posible en tiempo de compilación, en lugar de hacerlo en tiempo de ejecución. Objective-C no está diseñado para maximizar la seguridad del tipo, incluso el tipado estático es completamente opt-in. (Otra razón es la sintaxis del paréntesis, por supuesto.) Sin embargo, juzgar Objective-C únicamente por lo que espera de otros idiomas no es justo ni sensato. Tiene muchas virtudes que compensan sus limitaciones muy bien. –

Respuesta

12

En Mac definitivamente está vivo y coleando. También el iPhone. Entonces, si te gusta trabajar en esos entornos y sistemas, entonces hazlo.

Por lo que respecta a todos los demás lugares, no me he dado cuenta de mucho de lo que estoy enterado. No quiere decir que no podría sin embargo. Muchos lenguajes buenos aparecen relativamente tarde, como erlang, por ejemplo, así que no contaría Objective-C.

Sin mencionar el valor de aprender un nuevo idioma y estirarse.

Entonces, si me preguntan ¿esto ayudará a avanzar en mi carrera? entonces una respuesta es sí, aprender algo nuevo puede ser beneficioso para un programador principiante.

Si está preguntando, ¿la experiencia con Objective-C será comercializable? entonces la respuesta es sí, si quieres trabajar en el software World of Apple.

+4

gracias por * el valor de aprender un nuevo idioma y estirarse a sí mismo * –

11

Objective-C es ampliamente utilizado en Mac OS X y iPhone OS, por lo que no es probable que desaparezca pronto. Forma la base de OS X. La mayoría de las aplicaciones de Apple y de terceros están escritas en Objective-C, y Apple incluso está reescribiendo el OS X Finder en Objective-C, por lo que parece que se mantendrá por un tiempo.

Definitivamente no es vivir a la sombra de C++, Java y C#, especialmente en OS X. (Personalmente creo que Objective-C es un lenguaje mucho mejor que C++, Java y C#, pero esa es solo mi opinión.) Tiene una sensación diferente a esos idiomas (debido, al menos en parte, a su naturaleza dinámica, en lugar de estática), pero en realidad no está viviendo a la sombra de ellos.

Vale la pena aprender si quieres desarrollar para Mac o iPhone, pero no se usa ampliamente fuera de esas plataformas, así que si no estás interesado en esa línea de desarrollo, supongo que no vale la pena aprender.

+2

+1 - "Definitivamente no está viviendo a la sombra de C++, Java y C#" -correed. –

2

FWIW, el objetivo C tiene aproximadamente la misma edad que C++ y ambos son anteriores a Java y C# por algunos años. Honestamente, creo que las comunidades de C++ y Java podrían aprender mucho de Objective C. En mi humilde opinión, la API NeXTSTEP es mucho más limpia que la biblioteca de Java. Realmente escribir código en Objective C con Foundation y AppKit (et.al.) le da una buena apreciación de las arquitecturas MVC y cuán limpiamente pueden implementarse.

De todos modos, creo que vale la pena el esfuerzo aprender un lenguaje como Objective C. Si no es por otra razón que para obtener una mayor comprensión de lo que shaped languages like Java.

3

Como han dicho otros, Objective-C está vivo y bien en las plataformas de Apple (es decir, OS X y el iPhone).

Además, parece que Objective-C le mostrará un nuevo enfoque completamente diferente de hacer el trabajo OO. Teniendo en cuenta la fuerte tipificación de C++, Java y C#, Objective-C es muy diferente, ya que está basado en un verdadero dinamismo. Personalmente encuentro divertido trabajar con él, mucho más que Java o incluso C++. Particularmente me gusta cómo funciona el sistema de delegados, así como la sintaxis de Smalltalk prestada.

Además, al ser un superconjunto de C simple, es realmente fácil aprender Objective-C.Solo debería tomar un par de horas como máximo para bajar la sintaxis, y a partir de ahí, todo se reduce a aprender sobre la biblioteca (que tiene buena documentación). Al aprenderlo, debe intentar no entrar en los patrones que normalmente hace con los otros idiomas que enumeró, ya que no obtendrá el máximo beneficio de su tipado dinámico.

2

Realmente depende de la dirección de su carrera. Como dicen los otros carteles, si cambias al Objetivo C creo que aprenderás mucho y probablemente te divertirás un poco (y algo de dolor) a lo largo del camino.

Dado que el objetivo c es mucho más cercano a C y en cierta medida a C++, terminará siendo más útil no solo en el objetivo c, sino también en c y C++.

C se utiliza principalmente para la programación de nivel inferior, como para dispositivos de hardware. Por lo tanto, si tiene un interés especial en los dispositivos de hardware, puede ir al Objetivo C -> Controladores de dispositivos Apple kernel (que son c) y luego a cualquier trabajo de programación de hardware.

Si solo desea crear sitios web y aplicaciones de escritorio básicas para Windows, siga con C#.

+0

¿Quiere decir que aprender Objective C todavía nos permitirá trabajar en C++ si queremos revertir? –

0

No creo que Objective-C muera en mucho tiempo, porque es el núcleo de Mac OS X. Si Apple viene con idiomas más modernos, estoy seguro de que sería un lenguaje dinámico basado en el tiempo de ejecución de Objective-C para permitir una fácil reutilización del software y los componentes existentes. Eso significa que probablemente uno continuaría usando Objective-C para partes críticas de rendimiento. Al igual que los desarrolladores de Python aún escriben partes de su código en C.

Y como Apple controla el idioma, creo que es más probable con mejoras rápidas en el lenguaje para mantenerlo relevante que decir C++.

Objective-C podría utilizarse más en otras plataformas en el futuro. Estaba de regreso en los días de OpenStep. Pero cuando Apple compró NeXT dejaron de poner Cocoa y Objective-C disponibles en otras plataformas. El compilador todavía está disponible en todas partes, pero no en los marcos ni en el tiempo de ejecución. El nuevo CEO podría tener una mentalidad más abierta que Steve Jobs sobre la disponibilidad de ObjC en otros lugares.

+0

Cuatro años demasiado tarde, ¿verdad? –