Live in your World. Die in Mine.

Re-Aprender a programar:Objective-C OOB.

por Neoyagami en Ene.18, 2010, en paranoia personal

warning: No planeo enseñar Objective C ni POO ya que mis capacidades de enseñar son malisimas y ademas pude haber entendido mal los conceptos. Corrijanme si me equivoco.

Dentro de lo que me a costado ultimamente es “reaprender” a programar. Si bien en mi educación media estudie en un colegio “técnico” (de los que te dejan con un titulo técnico al salir) no muy de los mejores, y aprendi de que se trataba solucionar problemas mediante una serie de instrucciones. Lo mas complicado era poder hacer la solucion lo mas optimizada posible, una operacion matematica aquí, otra por allá, y listo, un ciclo menos y la cosa anda mas rápida.

Luego era que los programas necesitaban tener un orden por subfunciones, (cosa que no me enseñaron, pero que aprendí yo solito mirando ejemplos por ahí)

Y luego de ahí aparecieron los “eventos” (si, pase por visual basic, shame on me, pero me enseño algo) y en ese momento me deje de meter en la programación hacer la practica y trabajar.

Ahora quería retomar el tema (eso fue como el año 2000 aprox.) y me encuentro que todo es ahora “OOP” o Object Oriented Programing, todo se basa en objetos ahí fue cuando yo dije: “WTF que demonios” bueno. lo interesante de todo esto es que el modelo no se ve tan mal

Uno declara objetos, los construye, los usa y los mata.

Si alguna persona se diera el trabajo de leer lo que escribo(cosa que dudo pero que le vamos a hacer) se preguntaria ¿OK y por que Objective C? Si existen varios lenguajes orientados a objetos.

Mi respuesta: “tengo un mac y viene con Xcode 3.2″ y eso ademas significa “Puedo hacer aplicaciones en Cocoa con un IDE y SDK integrados en mi sistema” y Cocoa significa Objective-C.

Lei Unos cuantos Manuales desde CocoaDev aunque de verdad lo principal los saque desde CocoaDevCentral (son bien parecidas las Urls y en una de esas sean del mismo dueño :P )

Bueno lo feo de todo esto es que las implementaciones para trabajar en el IDE a cambiado un poco desde Leopard hacia Snow Leopard (10.5 a 10.6) por ende los manuales en esas paginas contenidos no funcionan de la misma forma. si bien el codigo es casi el mismo no varia practicamente en nada, (salvo un par de indicaciones a la hora de indicar los objetos que obtienen informacion de su misma clase… ni yo me entendi eso. pero antes en 10.5 cuando uno necesitaba hacer un simple NSTableView

bastaba con decir en la implementacion

-(void)awakeFromNib

esto


[tabla1	setDataSource:self];

con eso el Objeto NSTableView sabia que el Objeto de control que llamo el SetDataSource es el que le entregara los datos.

Pero ahora hay que hacerlo así.

Cuando se define la interfaz uno debe declarar que sera source de datos de un NSTableView.


@interface ControlAPP : NSObject <NSTableViewDataSource>

Ahora lo mas complicado apesar de toda esta jerga es como uno tiene que pensar.

Cuando uno programaba a la antigua (sin importar el lenjuage) uno decia

variable1=123

variable2=variable1+123

muestra variable2

Y todo bien, pero ahora uno debe generar un grupo de Objetos los cuales tendran sus metodos (subrutinas como yo lo entiendo) los cuales iniciaran el objeto, trabajaran con el y luego lo destruiran segun como lo necesite el programador. de esta forma dinamicamente uno crea y crea objetos los cuales mantendran todo ordenado en tiempo de ejecucion y todo lo que uno aprendio antes debe usarse dentro de dichos metodos de forma desordenada ordenada y pulcra, metiendo pedazos de soluciones en modo de codigo.

Ahora todo es cosa de construir y decirle “anda haz eso” mientras a otro objeto le decimos “anda para este otro lado” y asegurarse de destruir todo lo sin uso para evitar memory leaks y terminamos teniendo una cantidad de archivos de clases e includes.

Y a todo esto lo unico que no se es ¿que tan optimizado anda esto?

Por que yo se que java funciona de sea forma y todos las aplicaciones que le conozco funcionan peor que un tanque a pedales. Por ende ya no me gusta mucho pero que le vamos a hacer, es lo que esta de moda.

Ahora miren esto.

Imaginemos que quiero en Objective-C hacer una clase (objeto simple) que sume unos numeros (total desperdicio de memoria pero pueden hacerlo mas complicado de quererlo) esto es simple en cualquier otro lenguaje pero en uno con OOP se complica bastante, pero cuando se trata de proyectos grandes, estos se ordenan bastantes y es bastante estructurada la forma de trabajar en ellos.

Eso es todo de momento. nos vemos.


1 Comment for this entry

Deja un comentario

¿Buscando algo?

Use el cuadro a continuación para buscar:

¿Aún no encuentras lo que buscas? ¡deja un comentario en algun post y vere!