Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
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 />
✐