C y su relación con Objective-C

C y su relación con Objective-C

Cuando se ejecuta un programa, un archivo es copiado del sistema de archivos a la memoría RAM, y las instrucciones de ese archivo son ejecutadas por la computadora. Esas instrucciones no son entendible para los humanos, por ello es que los humanos deben usar un lenguaje de programación, para poder escribir programas.

El lenguaje de programación de mayor bajo nivel (muy proximo al entendimiento de los computadores) se llama Assembler, en el cual se puede describir paso a paso lo que el CPU (el cerebro de la computadora) debe hacer. Este código es luego transformado a código maquina por un ensamblador.

Obviamente usar Assembler es tedioso y es muy dependiente del CPU, eso quiere decir que si deseas ejecutar el programa que has escrito en assembler en otro computador lo mas probable es que debas escribirlo nuevamente para el CPU adecuado.

Es así que para evitar estar escribiendo una y otra vez un mismo código se usa los lenguajes conocidos como de alto nivel, con ellos puedes expresar de manera genérica las instrucciones para que luego un programa llamado compilador los interprete a código maquina altamente optimizado para el CPU.

Uno de estos lenguajes de alto nivel es C. Los programadores C escriben código en lenguaje C, y un compilador de C convierte el código C en código maquina. Este lenguaje C fue creado en 1970 en AT&T por Dennis Ritchie.

Muchos programas que actualmente han hecho posible el avance tecnológico de la humanidad han sido gracias a C, y aún hoy a la actualidad sigue siendo uno de los lenguajes de programación mas usado, el sistema operativo UNIX el cual es la base de OS X y Linux, fue escrito también en C (incluso Windows en su gran parte esta escrito en C).

Objective-C esta basado en C, agrega al lenguaje base la capacidad de soportar la orientación a objetos, por ello su nombre.

¿Objective-C o Swift?

¿Objective-C o Swift?

Es un buen tema para iniciar el blog: ¿Qué lenguaje escoger, el viejo pero muy solido Objective-C o el nuevo e innovador Swift?.

Si se busca la respuesta en los diferentes blogs y foros, se encontrará de todo, hay algunos que prefieren Swift, porque es lo reciente y Apple va a darle mucha fuerza e interés a Swift, ademas la cantidad de material que ya se tiene sobre Swift en youtube y tutoriales es suficiente como para poder empezar con Swift.

Sin embargo encontraran otra gran parte que sugiere Objetive-C, no solo por sus años en el mercado y todo lo que ya se ha desarrollado para el lenguaje, sino que también lo sugieren como elemento pedagógico, Objective-C te hace fácil entender a fondo como estan construidas las aplicaciones para las plataformas de Apple.

Otra de las razones que es bueno resaltar es tener en claro para es cual es el objetivo de aprenderlos: desarrollar aplicaciones propias e independientes (indie developer) o trabajar para clientes o empresas de desarrollo. Para el primero lo mejor es Swift, mucho mas rápido de tener una aplicación en el corto tiempo, para lo segundo y si piensas como una carrera a seguir lo mejor es Objective-C.

Yo sugiero aprender los dos: Objetive-C para saber el porque de las cosas y Swift para aprovechar las ventajas que tiene sobre Objective-C, aprendiendo los dos se tiene mas opciones ya sea como indie developer o como miembro de un equipo. Y en definitiva primero debería ser Objective-C.