domingo, 15 de agosto de 2010

OBJECTIVE-C

Lenguajes de Programación – Semana 3 - Tarea 2

“Objective-C es un lenguaje de programación orientado a objetos creado como un superconjunto de C pero que implementase un modelo de objetos parecido al de Smalltalk. Originalmente fue creado por Brad Cox y la corporación StepStone en 1980. En 1988 fue adoptado como lenguaje de programación de NEXTSTEP y en 1992 fue liberado bajo licencia GPL para el compilador GCC. Actualmente se usa como lenguaje principal de programación en Mac OS X y GNUstep.” (1) (2)

El lenguaje de programación Objective-C fue el primer intento por integrar un ambiente de programación orientado a objetos al lenguaje C, es por eso que en su definición nos encontramos con que Objective-C es un superconjunto de C (3), es decir, todas las funciones de C, también forman parte de Objective-C.
Durante mucho tiempo estuvo en desuso siendo menos popular que C++, que fue la variante más difundida y aceptada para proporcionar programación orientada a objetos en C; pero, en la actualidad Objective-C ha recibido un empujón tremendo por parte de Apple convirtiéndose en el lenguaje de programación oficial de aplicaciones para MAC OS y iPhone. (4)

Les puedo platicar que aprender Objective- C es como el siguiente paso para los que ya hemos programado en C, la sintaxis es la misma tomando en cuenta que hablamos de un paradigma imperativo y estructurado, pero pasar al paradigma orientado a objetos nos debe ser tan familiar como aprender nuevas funciones de C.

Les puedo decir también que si quieren aprender a programar en este hermoso lenguaje lean el manual que Apple ha proporcionado (4) y a la vez observen los tutoriales en Youtube que les proporciono también (liga al primer video (5), los demás aparecen listados a la derecha del cuadro de reproducción de Youtube)

A mí se me hizo tan familiar como C, pero como les platico, al verlo por el lado de la programación orientada a objetos es algo completamente nuevo pero además con mucho potencial y camino por delante. Objective-C es uno de los lenguajes que mayor crecimiento han tenido en estos últimos años, lamentablemente no está muy difundido fuera del mundo de Apple (6), lo que le resta algo de alcance.

En Mac OS X se incluye un IDE llamado XCODE (7) suministrado gratuitamente por Apple Inc. El compilador GNU GCC (8) incluye la posibilidad de compilar archivos escritos en Objective-C (*.m), pero también se puede utilizar EMACS como lo hemos estado utilizando hasta ahora e instalar GCC en Ubuntu. (La ventaja del IDE es que contiene opciones de autocompletado de funciones por lo que es más fácil, EMACS no lo incluye lo que nos obliga a aprendernos los nombres de las numerosas funciones).

Mi recomendación es que si tienen la posibilidad se avienten a aprender este lenguaje, como les platico, tiene mucho potencial y un muy amplio campo de desarrollo, en la actualidad las aplicaciones para iPad – iPhone están muy de moda así que tenemos mucha tela de donde cortar.

EJEMPLO EN OBJECTIVE C
#import 

//creamos un objeto llamada Person, con las variables age y weight
@interface Person: NSObject {
 int age;
 int weight;
}
-(void) print;
-(void) setAge: (int) a;
-(void) setWeight: (int) w;
@end

//Aqui iniciamos la implementacion de los metodos
@implementation Person
-(void) print {
 NSLog(@"I am %i years old and weight %i pounds", age, weight);
}
-(void) setAge: (int) a {
 age = a;
}
-(void) setWeight: (int) w {
 weight = w;
}@end

// Funcion principal, iniciamos el objeto Person
// Le damos un nombre, separamos un poco de memoria en sistema,
// asignamos valores de edad y peso, despues llamamos a Print
// para mostrar en pantalla los datos, retiramos el objeto de
// memoria, vaciamos la memoria, cerramos la aplicacion.

int main (int argc, char *agrV[]) {
 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
 Person *bucky;
 bucky = [Person alloc];
 bucky = [bucky init];
 [bucky setAge: 23];
 [bucky setWeight: 350];
 [bucky print];
 [bucky release];
 [pool drain];
 return 0;
}

El codigo lo que hace es generar un objeto persona, que tiene las variables edad y peso. Por medio de la implementacion de metodos llegaremos a la impresion de una linea de informacion que nos proporciona la edad y el peso que asignemos a las variables age y weight, aunque se ve un poco rudimentario nos ayuda a entender la estructura de Objective-C, por ello casi no inclui fuciones parecidas a C, porque de querer implementar este codigo cualquiera de nosotros lo pudiera hacer en C.

Muchas gracias por leer el artículo. ^_^

WIKI
(1) Objective C
(2) Smalltalk
(3) Superconjunto

(4) Manual Apple (Ingles)

(5) Tutorial en Video (Ingles)

(6) Documentacion

(7) IDE: XCODE
(8) Compilador GNU GCC

Manual Objective C Spanish [PDF]

Como instalar GCC en UBUNTU
Despues de instalar GCC correr en la terminal sudo apt-get install gobjc (libreria de Objective-C)

Otra forma de programar en Objective C en Ubuntu es con el IDE GNUStep, escribir en la terminal

sudo apt-get -y install build-essential
sudo apt-get -y install gnustep
sudo apt-get install gobjc
sudo apt-get install gnustep-make
sudo apt-get install libgnustep-base-dev

Y en GNUmakefile agregar: GNUSTEP_MAKEFILES=/usr/lib/GNUstep/System/Makefiles


Vinculo a GNUStep

2 comentarios:

  1. Muy bien. Lo que te faltó incluir es un pequeño ejemplo, donde dejas que tus lectores vean cómo se ve el lenguaje. Te pongo dos puntos por el segundo reporte.

    ResponderEliminar
  2. Bien. Te pongo dos extra por el ejemplo.

    ResponderEliminar