<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d9665506\x26blogName\x3dMi+blog!\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLUE\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://zirrus.blogspot.com/search\x26blogLocale\x3des_ES\x26v\x3d2\x26homepageUrl\x3dhttp://zirrus.blogspot.com/\x26vt\x3d-115589409851095307', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe", messageHandlersFilter: gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER, messageHandlers: { 'blogger-ping': function() {} } }); } }); </script>

martes, diciembre 21, 2004

La estructuración de la orientación a objetos

Definitivamente, es un peligro para todo programador conocer la orientación a objetos.

Cuando uno se inicia en la programación, estructura su cabeza para la programación estructurada (valga la redundancia). Aprende un lenguaje estructurado (como el maravilloso C) y desarrolla ahí todas sus ideas y programas. El programador se hace al uso del lenguaje y cómo debe construir los programas, conoce sus limitaciones y algunas veces a conseguido subsanarlas. Se convierte en un programación en el paradigma imperativo estructurado.

Sin embargo, llega el paradigma orientado a objetos, con todas sus virguerías y posibilidades (extensibilidad, modularidad, ocultación de la información). La OO revoluciona el campo de la programación y se implanta rápidamente porque se ve un buen camino a seguir para alcanzar un mayor grado de calidad y madurez en el software.

Bien, pero el programador estructurado que programa de maravilla ahora conoce la programación orientada a objetos y descubre que casi todas las limitaciones que antes tenía se han resuelto. Pero tiene un problema, ¿tiene que adaptarse y volver a aprender y usar un lenguaje orientado a objetos? Claramente tiene dos opciones:
  • Aprender el nuevo lenguaje, adaptándose a la nueva nomenclatura y forma de programación y por supuesto empapándose el paradigma orientado a objetos.
  • Seguir con su lenguaje estructura e intentar simular al paradigma orientado a objetos.
Y es la última opción la que llega a crear verdaderos quebraderos de cabeza. Adaptar ideas como la genericidad en un lenguaje estructurado (como en C) puede llegar a ser trabajo de chinos. Reconozco que no imposible, pero puede llegar a complicar bastante el código. Es como si intetáramos una estructuración de la orientación a objetos.

La verdad es que tiene su miga, y aunque para muchos resulte algo sin importancia, ayuda mucho al programador a conocer las diferencias entre los dos paradigmas y a cómo emular un paradigma en otro.

Pero ahí esta la cuestión: ¿Debería haber conocido el programador la orientación a objetos si ya era un profesional en el paradigma estructurado? Simplemente, hubiera sido más fácil no conocerlo, pero la curiosidad y ganas de aprender siempre rompen el saco.

La verdadera cuestión es: ¿Por qué debe adaptar el paradigma estructurado al orientado a objetos? Como programador que es, que aprenda estructurado y orientado a objetos. Y para determinados programas usar uno u otro. Pero eso ya es cuestión de cada uno y de su situación, pues si a uno le obligan a usar el paradigma estructurado no va a exigir más.

Nos vemos