13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

✐<br />

✐<br />

✐<br />

“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 141 — #179<br />

✐<br />

4: Abstracción de Datos<br />

<strong>C++</strong> es una herrami<strong>en</strong>ta de mejora de la productividad. ¿Por qué<br />

si no haría el esfuerzo (y es un esfuerzo, a pesar de lo fácil que intetemos<br />

hacer la transición)<br />

de cambiar de algún l<strong>en</strong>guaje que ya conoce y con el cual ya es productivo a<br />

un nuevo l<strong>en</strong>guaje con el que será m<strong>en</strong>os productivo durante un tiempo, hasta que<br />

se haga con él Se debe a que está conv<strong>en</strong>cido de que conseguirá grandes v<strong>en</strong>tajas<br />

usando esta nueva herrami<strong>en</strong>ta.<br />

En términos de programación, productividad significa que m<strong>en</strong>os personas, <strong>en</strong><br />

m<strong>en</strong>os tiempo, puedan realizar programas más complejos y significativos. Desde<br />

luego, hay otras cuestiones que nos deb<strong>en</strong> importar a la hora de escoger un l<strong>en</strong>guaje<br />

de programación. Aspectos a t<strong>en</strong>er <strong>en</strong> cu<strong>en</strong>ta son la efici<strong>en</strong>cia (¿la naturaleza del l<strong>en</strong>guaje<br />

hace que nuestros programas sean l<strong>en</strong>tos o demasiado grandes), la seguridad<br />

(¿nos ayuda el l<strong>en</strong>guaje a asegurarnos de que nuestros programas hagan siempre lo<br />

que queremos ¿maneja el l<strong>en</strong>guaje los errores apropiadam<strong>en</strong>te) y el mant<strong>en</strong>imi<strong>en</strong>to<br />

(¿el l<strong>en</strong>guaje ayuda a crear código fácil de <strong>en</strong>t<strong>en</strong>der, modificar y ext<strong>en</strong>der). Estos<br />

son, con certeza, factores importantes que se examinarán <strong>en</strong> este libro.<br />

Pero la productividad real significa que un programa que para ser escrito, antes<br />

requería de tres personas trabajando una semana, ahora le lleve sólo un día o dos<br />

a una sola persona. Esto afecta a varios niveles de la esfera económica. A usted le<br />

agrada ver que es capaz de construir algo <strong>en</strong> m<strong>en</strong>os tiempo, sus cli<strong>en</strong>tes (o jefe)<br />

están cont<strong>en</strong>tos porque los productos les llegan más rápido y utilizando m<strong>en</strong>os mano<br />

de obra y finalm<strong>en</strong>te los compradores se alegran porque pued<strong>en</strong> obt<strong>en</strong>er productos<br />

más baratos. La única manera de obt<strong>en</strong>er increm<strong>en</strong>tos masivos <strong>en</strong> productividad es<br />

apoyándose <strong>en</strong> el código de otras personas; o sea, usando librerías.<br />

Una librería es simplem<strong>en</strong>te un montón de código que algui<strong>en</strong> ha escrito y empaquetado<br />

todo junto. Muchas veces, el paquete mínimo es tan sólo un archivo con<br />

una ext<strong>en</strong>sión especial como lib y uno o más archivos de cabecera que le dic<strong>en</strong> al<br />

compilador qué conti<strong>en</strong>e la librería. El <strong>en</strong>lazador sabrá cómo buscar el archivo de la<br />

librería y extraer el código compilado correcto. Sin embargo, ésta es sólo una forma<br />

de <strong>en</strong>tregar una librería. En plataformas que abarcan muchas arquitecturas, como<br />

GNU o Unix, el único modo s<strong>en</strong>sato de <strong>en</strong>tregar una libraría es con código fu<strong>en</strong>te<br />

para que así pueda ser reconfigurado y reconstruido <strong>en</strong> el nuevo objetivo.<br />

De esta forma, las librerías probablem<strong>en</strong>te sean la forma más importante de progresar<br />

<strong>en</strong> términos de productividad y uno de los principales objetivos del diseño de<br />

<strong>C++</strong> es hacer más fácil el uso de librerías. Esto implica <strong>en</strong>tonces, que hay algo difícil<br />

al usar librerías <strong>en</strong> C. Ent<strong>en</strong>der este factor le dará una primera idea sobre el diseño<br />

de <strong>C++</strong>, y por lo tanto, de cómo usarlo.<br />

141<br />

✐<br />

✐<br />

✐<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!