Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
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 35 — #73<br />
✐<br />
1.12. Estrategias de transición<br />
ra <strong>en</strong>t<strong>en</strong>der la nueva tecnología. A lo largo del proceso ellos cometerán más errores<br />
(esto es una v<strong>en</strong>taja, porque los errores reconocidos son el modo más rápido para<br />
apr<strong>en</strong>der) y ser m<strong>en</strong>os productivos. Incluso <strong>en</strong>tonces, con algunos tipos de problemas<br />
de programación, las clases correctas y el <strong>en</strong>torno de programación adecuado,<br />
es posible ser más productivo mi<strong>en</strong>tras se está apr<strong>en</strong>di<strong>en</strong>do <strong>C++</strong> (incluso considerando<br />
que está cometi<strong>en</strong>do más errores y escribi<strong>en</strong>do m<strong>en</strong>os líneas de código por<br />
día) que si estuviera usando C.<br />
Cuestiones de r<strong>en</strong>dimi<strong>en</strong>to<br />
Una pregunta común es, «¿La POO no hace automáticam<strong>en</strong>te mis programas<br />
mucho más grandes y l<strong>en</strong>tos» La respuesta es: «dep<strong>en</strong>de». Los l<strong>en</strong>guajes de POO<br />
más tradicionales se diseñaron con experim<strong>en</strong>tación y prototipado rápido más que<br />
p<strong>en</strong>sando <strong>en</strong> la efici<strong>en</strong>cia. De esta manera, prácticam<strong>en</strong>te garantiza un increm<strong>en</strong>to<br />
significativo <strong>en</strong> tamaño y una disminución <strong>en</strong> velocidad. <strong>C++</strong> sin ambargo, está diseñado<br />
t<strong>en</strong>i<strong>en</strong>do pres<strong>en</strong>te la producción de programación. Cuando su objetivo es<br />
un prototipado rápido, puede lanzar compon<strong>en</strong>tes juntos tan rápido como sea posible<br />
ignorando las cuestiones de efici<strong>en</strong>cia. Si está usando una librerías de otros,<br />
normalm<strong>en</strong>te ya están optimizadas por sus v<strong>en</strong>dedores; <strong>en</strong> cualquier caso no es un<br />
problema mi<strong>en</strong>tras está <strong>en</strong> un modo de desarrollo rápido. Cuando t<strong>en</strong>ga el sistema<br />
que quiere, si es bastante pequeño y rápido, <strong>en</strong>tonces ya está hecho. Si no, lo puede<br />
afinar con una herrami<strong>en</strong>ta de perfilado, mire primero las mejoras que puede conseguir<br />
aplicando las características que incorpora <strong>C++</strong>. Si esto no le ayuda, mire las<br />
modificaciones que se pued<strong>en</strong> hacer <strong>en</strong> la implem<strong>en</strong>tación subyac<strong>en</strong>te de modo que<br />
no sea necesario cambiar ningún código que utilice una clase particular. Únicam<strong>en</strong>te<br />
si ninguna otra cosa soluciona el problema necesitará cambiar el diseño. El hecho de<br />
que el r<strong>en</strong>dimi<strong>en</strong>to sea tan crítico <strong>en</strong> esta fase del diseño es un indicador de que debe<br />
ser parte del criterio del diseño principal. FIXME:Usar un desarrollo rápido ti<strong>en</strong>e la<br />
v<strong>en</strong>taja de darse cu<strong>en</strong>ta rápidam<strong>en</strong>te.<br />
Como se m<strong>en</strong>cionó anteriorm<strong>en</strong>te, el número dado con más frecu<strong>en</strong>cia para la<br />
difer<strong>en</strong>cia <strong>en</strong> tamaño y velocidad <strong>en</strong>tre C y <strong>C++</strong> es 10%, y a m<strong>en</strong>udo m<strong>en</strong>or. Incluso<br />
podría conseguir una mejora significativa <strong>en</strong> tamaño y velocidad cuando usa <strong>C++</strong><br />
más que con C porque el diseño que hace para <strong>C++</strong> puede ser bastante difer<strong>en</strong>te<br />
respecto al que hizo para C.<br />
La evid<strong>en</strong>cia <strong>en</strong>tre las comparaciones de tamaño y velocidad <strong>en</strong>tre C y <strong>C++</strong> ti<strong>en</strong>d<strong>en</strong><br />
a ser anecdóticas y es probable que permanezcan así. A pesar de la cantidad de<br />
personas que sugiere que una compañía int<strong>en</strong>ta el mismo proyecto usando C y <strong>C++</strong>,<br />
probablem<strong>en</strong>te ninguna compañía quiere perder dinero <strong>en</strong> el camino a no ser que sea<br />
muy grande y esté interesada <strong>en</strong> tales proyectos de investigación. Incluso <strong>en</strong>tonces,<br />
parece que el dinero se puede gastar mejor. Casi universalm<strong>en</strong>te, los programadores<br />
que se han cambiado de C (o cualquier otro l<strong>en</strong>guaje procedural) a <strong>C++</strong> (o cualquier<br />
otro l<strong>en</strong>guaje de POO) han t<strong>en</strong>ido la experi<strong>en</strong>cia personal de una gran mejora <strong>en</strong><br />
su productividad de programación, y es el argum<strong>en</strong>to más convinc<strong>en</strong>te que pueda<br />
<strong>en</strong>contrar.<br />
Errores comunes de diseño<br />
Cuando su equipo empieza con la POO y <strong>C++</strong>, típicam<strong>en</strong>te los programadores<br />
pasan por una serie de errores de diseño comunes. Esto ocurre a m<strong>en</strong>udo porque<br />
hay poca realim<strong>en</strong>tación de expertos durante el diseño e implem<strong>en</strong>tación de los proyectos<br />
iniciales, porque ningún experto ha sido desarrollador d<strong>en</strong>tro de la compañía<br />
y puede haber resist<strong>en</strong>cia a contratar consultores. Es fácil p<strong>en</strong>sar que se <strong>en</strong>ti<strong>en</strong>de la<br />
POO demasiado pronto <strong>en</strong> el ciclo y se va por el mal camino. Algo que es obvio para<br />
35<br />
✐<br />
✐<br />
✐<br />
✐