lunes, 11 de febrero de 2013

No estás solo.

Estos últimos meses he aprendido mucho. Hace poco menos de año que me metí de lleno al mundo de la programación y me he dado cuenta lo basto que es y lo mucho que hay por aprender en este campo. Sin embargo, y sobre todo cuando comienzo con una nueva tecnología, me siento abrumado por la cantidad de información que hay, de la forma en como se relacionan con otros temas que también es necesario comprender.

Leyendo un post en tutsplus, me pareció gracioso que resaltaran este sentimiento como algo normal entre los programadores, pues todos seguimos siendo estudiantes y de la importancia de aceptar que no podremos saberlo todo, pero que si nos gusta lo suficiente, esto no importará.

Y es cierto, cada vez que me encuentro ante el panorama de temas nuevos, aunque en un principio me abruma, también me emociona y me impulsa a seguir aprendiendo, no hay de otra, cada día esta industria mejora, crece y es excitante saber que siempre habrá algo nuevo que ver.

Modulos VS Herencia en Ruby

Como parte de mi iniciación en Ruby y viendo los conceptos básicos del lenguaje, llegué a la parte en el que se explica la herencia y otras alternativas como son los módulos.

La herencia en Ruby es simple, es decir, solo se puede heredar de una sola clase padre. Aquí no existen las interfaces y una manera de simular la herencia múltiple es a través de módulos.

Los módulos a demás de definir un name space (el alcance de la clases y métodos  , definen métodos y clases que pueden ser utilizados por otros módulos o clases para aumentar la funcionalidad ya sea a nivel de clase o a nivel de instancia. 


Otra vez, los módulos son para compartir comportamiento o agregar una característica genérica, mientras que la herencia es para crear relaciones entre objetos. 

Entonces la diferencia y la ventaja de utilizar módulos es que, se puede utilizar más de un módulo al mismo tiempo y en clases que no estén directamente relacionadas pero que si necesiten tener la misma funcionalidad.

A la facilidad de incluir un módulo y todos sus métodos dentro de una clase se le llama mixin.