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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

✐<br />

✐<br />

✐<br />

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

✐<br />

1.11. Porqué triunfa <strong>C++</strong><br />

va sintaxis completa y un modelo de programación. Le permite continuar creando<br />

código útil, usando las características gradualm<strong>en</strong>te según las va apr<strong>en</strong>di<strong>en</strong>do y <strong>en</strong>t<strong>en</strong>di<strong>en</strong>do.<br />

Puede que ésta sea una de las razones más importantes del éxito de <strong>C++</strong>.<br />

Además, todo su código C es todavía viable <strong>en</strong> <strong>C++</strong>, pero como el compilador de<br />

<strong>C++</strong> es más delicado, a m<strong>en</strong>udo <strong>en</strong>contrará errores ocultos de C cuando recompile<br />

su código con <strong>C++</strong>.<br />

1.11.3. Efici<strong>en</strong>cia<br />

A veces es apropiado intercambiar velocidad de ejecución por productividad de<br />

programación. Un modelo económico, por ejemplo, puede ser útil sólo por un periodo<br />

corto de tiempo, pero es más importante crear el modelo rápidam<strong>en</strong>te. No<br />

obstante, la mayoría de las aplicaciones requier<strong>en</strong> algún grado de efici<strong>en</strong>cia, de modo<br />

que <strong>C++</strong> siempre yerra <strong>en</strong> la parte de mayor efici<strong>en</strong>cia. Como los programadores<br />

de C ti<strong>en</strong>d<strong>en</strong> a ser muy conci<strong>en</strong>zudos con la efici<strong>en</strong>cia, ésta es también una forma de<br />

asegurar que no podrán argum<strong>en</strong>tar que el l<strong>en</strong>guaje es demasiado pesado y l<strong>en</strong>to.<br />

Algunas características <strong>en</strong> <strong>C++</strong> int<strong>en</strong>tan facilitar el afinado del r<strong>en</strong>dimi<strong>en</strong>to cuando<br />

el código g<strong>en</strong>erado no es lo sufici<strong>en</strong>tem<strong>en</strong>te efici<strong>en</strong>te.<br />

No sólo se puede conseguir el mismo bajo nivel de C (y la capacidad de escribir<br />

directam<strong>en</strong>te l<strong>en</strong>guaje <strong>en</strong>samblador d<strong>en</strong>tro de un programa <strong>C++</strong>), además la experi<strong>en</strong>cia<br />

práctica sugiere que la velocidad para un programa <strong>C++</strong> ori<strong>en</strong>tado a objetos<br />

ti<strong>en</strong>de a ser ±10% de un programa escrito <strong>en</strong> C, y a m<strong>en</strong>udo mucho m<strong>en</strong>os 20 . El<br />

diseño producido por un programa POO puede ser realm<strong>en</strong>te más efici<strong>en</strong>te que el<br />

homólogo <strong>en</strong> C.<br />

1.11.4. Los sistemas son más fáciles de expresar y <strong>en</strong>t<strong>en</strong>der<br />

Las clases diseñadas para <strong>en</strong>cajar <strong>en</strong> el problema ti<strong>en</strong>d<strong>en</strong> a expresarlo mejor. Esto<br />

significa que cuando escribe el código, está describi<strong>en</strong>do su solución <strong>en</strong> los términos<br />

del espacio del problema («ponga el FIXME:plástico <strong>en</strong> el cubo») mejor que <strong>en</strong> los<br />

términos de la computadora, que están <strong>en</strong> el espacio de la solución («active el bit<br />

para cerrar el relé »). Usted maneja conceptos de alto nivel y puede hacer mucho<br />

más con una única línea de código.<br />

El otro b<strong>en</strong>eficio de esta facilidad de expresión es el mant<strong>en</strong>imi<strong>en</strong>to, que (si informa<br />

se puede creer) implica una <strong>en</strong>orme parte del coste del tiempo de vida del<br />

programa. Si un programa es más fácil de <strong>en</strong>t<strong>en</strong>der, <strong>en</strong>tonces es más fácil de mant<strong>en</strong>er.<br />

También puede reducir el coste de crear y mant<strong>en</strong>er la docum<strong>en</strong>tación.<br />

1.11.5. Aprovechami<strong>en</strong>to máximo con librerías<br />

El camino más rápido para crear un programa es usar código que ya está escrito:<br />

una librería. Un objetivo primordial de <strong>C++</strong> es hacer más s<strong>en</strong>cillo el uso de las<br />

librerías. Esto se consigue vi<strong>en</strong>do las librerías como nuevos tipos de datos (clases),<br />

así que crear librerías significa añadir nuevos tipos al l<strong>en</strong>guaje. Como el compilador<br />

<strong>C++</strong> se preocupa del modo <strong>en</strong> que se usa la librería - garantizando una inicialización<br />

y limpieza apropiadas, y asegurando que las funciones se llam<strong>en</strong> apropiadam<strong>en</strong>te -<br />

puede c<strong>en</strong>trarse <strong>en</strong> lo que hace la librería, no <strong>en</strong> cómo ti<strong>en</strong>e que hacerlo.<br />

20 Sin embargo, mire <strong>en</strong> las columnas de Dan Saks <strong>en</strong> C/<strong>C++</strong> User’s Journal sobre algunas investigaciones<br />

importantes sobre el r<strong>en</strong>dimi<strong>en</strong>to de librerías <strong>C++</strong>.<br />

31<br />

✐<br />

✐<br />

✐<br />

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

Saved successfully!

Ooh no, something went wrong!