Mi opinión:
De las tres opciones que ha visualizado, su mejor apuesta inicial es probablemente C. Una vez que sabes C, tienen una manija en sus peculiaridades y son competentes en ella, el aprendizaje de C++ o Objetivo- C muy probablemente será bastante trivial. (Sus puntos más difíciles que habrá en el lado de la orientación a objetos del mundo.)
Por el momento, Objective-C se utiliza con mayor frecuencia en los Mac, pero hay algunos que se olvidan de que existen herramientas GNU para Objetivo- C, y eso también es compatible con GNUStep. (El actual Mac OS X se basa en gran medida en el antiguo NextSTEP, cuyo GNUStep es más o menos un clon). Lo que pasa con Objective-C, sin embargo, es que no se usa ampliamente fuera de esos dos entornos, por lo que es algo así como un ambiente estrecho. (Y con Obj-C, como casi cualquier otro lenguaje OO moderno, pasará mucho más tiempo aprendiendo las clases de marco que las reglas sintácticas/léxicas subyacentes).
Soy principalmente un desarrollador de C#. Eso paga mis cuentas, y lo hace muy bien. C# no estaba en su lista, y sospecho que sé por qué: parece que está buscando estar más cerca del metal, menos abstraído. Lo entiendo, y creo que es la opción correcta para el crecimiento profesional a largo plazo. Empecé con innumerables abstracciones entre mi código y la caja (primero profesionalmente con Java, luego VB6, luego .NET), y como resultado, ahora estoy trabajando duro en mi tiempo libre para jugar a "ponerme al día" con el resto del mundo - Actualmente estoy pasando por el K&R book.Es cierto que no tengo necesidad profesional de acercarme tanto al metal, pero siento la necesidad personal de comprender la máquina lo mejor que puedo.
(Además, irónicamente, estoy buscando volver al desarrollo de Cocoa a través de Objective-C. Solía jugar con él hace años, y creo que estoy en una mejor posición para "conseguirlo" ahora ... . Personalmente, creo que la presciencia de C hará que mudarme a Objective-C sea mucho más fácil, más suave y menos probable que introduzca errores desastrosos relacionados con la memoria en mi código!)
Al final del día, creo Tener el conocimiento preexistente de C (¡aunque no era, obviamente, necesario para mí!) es algo muy bueno, y probablemente hace que mudarse a otros idiomas a lo largo del tiempo (lo que hará hacer, a menos que lo haga OS, conductor o trabajo incorporado) más fácil y más suave. No estoy diciendo "no se puede vivir sin eso", estoy diciendo que según la forma en que se formuló su pregunta ... creo que es la respuesta correcta para ese escenario.
Aunque Mono es un número de versión detrás de Microsoft, en realidad están haciendo un muy buen trabajo. Es decir: C# también funciona muy bien en plataformas que no son de Windows. – Thomas
Depende de lo que esté haciendo en el sistema operativo Windows. Todavía hay aplicaciones donde C# no sería apropiado. –
No estoy seguro de por qué esto ha sido rechazado tan fuerte. Hay mucho que decir sobre un lenguaje basado en VM con recolección de basura. – pjc50