| Artículos | 01 OCT 1995

Compiladores C++

Tags: Histórico
Borland C++ 4.5, Microsoft Visual C++ 2.2, Symantec C++ 7.0 y Watcom C++ 10.0
Jaime Peña.

Los entornos de desarrollo en C/C++ son sin duda las herramientas de programación más importantes de la actualidad. Conozca en este artículo cuáles son las ventajas e inconvenientes de los cuatro principales sistemas de desarrollo C/C++.

Mucho ha cambiado el mercado de los compiladores C++ en desde el último análisis en PC World (nº 102, Septiembre 1994). Hay nuevas versiones de Borland, actualmente se vende su versión 4.5/4.5 and Database Tools (y la 4.52, como una revisión menor). Microsoft presentó sus versiones 2.1 y 2.2 (y las 1.51 y 1.52 para desarrollo exclusivo en Win16). Symantec renovó su compilador y actualmente vende la versión 7.0. Por último, hay una agradable novedad, PowerSoft ha comenzado a comercializar de forma regular su prestigioso compilador Watcom, actualmente en su versión 10.0.

A la par, siguen anunciándose nuevas versiones, que trataremos en su momento. Las más significativas e inmediatas parecen ser la versión 5.0 de Borland (a la cual hemos tenido un acceso confidencial y no con fines de evaluación), la versión 10.5 de Watcom (que se anuncia como inminente) y el nuevo compilador de Microsoft, cuyo número definitivo de versión aun desconocemos de forma oficial (aunque más que probablemente sea la 4.0). Symantec, nos consta, también prepara nuevas releases, pero para algo más adelante.

La implementación del lenguaje

El lenguaje C++ se encuentra en plena efervescencia. Si bien es cierto que sus características tradicionales y las novedades más llamativas tienen ya un cierto tiempo, su implementación comercial se encuentra de plena actualidad.

En el pasado fueron novedad el manejo de excepciones (Exception handling) y el uso de plantillas (templates). Ahora es el turno de la identificación de tipos en tiempo de ejecución (Run-time Type Identification, RTTI) y la posibilidad de utilizar nombres de funciones iguales en diferentes librerías, sin que surjan conflictos (Namespaces).

Tradicionalmente, Borland siempre se ha situado a la cabeza en este ámbito. Fue el primero en utilizar plantillas; también ha sido el pionero en el uso del manejo extendido de excepciones y de RTTI (incluyéndolas en la propia cabecera de arranque de los programas y en toda la estructura de sus librerías ObjectWindows). Sin embargo, la utilización de Namespaces aun no tiene repercusión en el ámbito comercial.

Hoy en día, de una forma o de otra, todos tienden a dar lo último tecnológicamente disponible y, así, Microsoft Visual C++ 2.x ya implementa un sistema mucho más consistente de manejo de plantillas y excepciones, aunque no de RTTI (la versión 1.52 no da soluciones avanzadas al respecto, siendo la implementación de excepciones un parche a la estructura general del lenguaje base); Symantec, también siempre un pionero en la tecnología de C++, se ha preocupado de implementar las plantillas y excepciones; otro tanto le sucede a Watcom.

Los entornos de desarrollo integrados (IDEs)

Borland dispone de un excelente entorno de desarrollo integrado (IDE), siguiendo su tradicional buen trabajo en este campo. El IDE de Borland se basa en ventanas MDI (Multiple Document Interface) y desde él se puede acceder al conocido generador y compilador de recursos Resource Workshop; llevar a cabo una depuración integrada (o llamar a los más potentes depuradores externos de los que dispone); generar maquetas de aplicaciones (por medio de su AppExpert); acceder a la documentación electrónica en CD-ROM, etc.

Sin embargo, lo más poderoso del entorno de desarrollo integrado de Borland es su extensibilidad, pudiendo adjuntarse nuevas herramientas y siendo capaz de gestionar múltiples proyectos (incluyendo diversos tipos de ejecutables Win16, Win32/GUI, Win32/consola, etc., en un mismo árbol jerárquico). Hoy por hoy no tiene par a la hora de definir macros y de mimetizar el comportamiento de editores de programación de reconocido prestigio y ampliamente utilizados (verbigracia, Brief, cuya tecnología implementa, ya que fue adquirido por Borland).

Symantec dispone de un llamativo IDE, al que denominan IDDE (entorno de desarrollo y depuración integrado). Se basa en la filosofía de ventanas separadas (no MDI), muy a semejanza de Visual Basic o Delphi. En este sentido, es el más revolucionario, aunque personalmente no vemos grandes ventajas al respecto. Sí es excepcionalmente ágil y, a semejanza del de Borland, nos permite realizar todo tipo de operaciones desde él, aunque es menos configurable y no dispone del potencial de personalización y mimetización de macros.

En definitiva, Symantec proporciona una solución altamente llamativa, en la que destaca la completa integración de su potente depurador, que implementa la tecnología MultiScope. Otra baza para proyectos de gran entidad es su NetBuild, que permite integrar módulos de desarrollos de un proyecto a través de un sistema de red local. La idea es excelente, pero parece prematuro valorarla, ya que no se puede prever en qué situaciones se puede sacar una ventaja real de tal capacidad.

Como últimos apuntes, Symantec es el único que permite repasar las clases de una aplicación C++ no compilada; por contra, nos ha dado serios problemas de instalación y puesta a punto, fundamentalmente en lo referente a la localización de archivos incluidos y librerías, que hemos tenido que hacerlo manualmente.

El entorno de desarrollo de Microsoft Visual C++ es también digno de mención. Al igual que Borland o Symantec, nos permite acceder a todas sus poderosas herramientas de desarrollo, depuración, creación de recursos y demás. La única crítica (para muchos puede ser importante) es que se trata de un sistema nativo de 32 bits y que precisaremos de disponer de dos IDEs (el de MSVC++ 2.x y el de MSVC 1.5x) para desarrollar aplicaciones de Win16 y Win32.

Destaca su plena integración de utilidades, el depurador integrado, y editor de recursos. El entorno de Microsoft ha sido excelentemente mejorado en aspectos claves, así deja lugar a personalizaciones numerosas y definición de macros avanzados, implementación de arrastrar y soltar, etc. Nos ha parecido molesto no poder definir rutas de generación de ejecutables, lo que no permite mantener un directorio especial para todos los archivos .RES, .OBJ y .EXE que se generan, lo que facilitaría las labores de limpieza y mantenimiento de nuestro disco duro.

Finalmente, Watcom estrena entorno de desarrollo integrado en formato gráfico bajo Windows. El entorno integrado permite manejar varios proyectos simultáneamente y es muy completo en selección de opciones. Desafortunadamente, no todo está lo suficientemente bien engrasado. Las ayudas de lenguaje no son accesibles desde el editor, que funciona como una utilidad separada; para muchos, esto último puede tener algún interés, pero no estaría nada mal una perfecta integración con el IDE.

Dispone de funciones avanzadas como resaltado sintáctico y cambios de fuentes (además, es el único que implementa la técnica "arrastrar y soltar" para ello, conforme a una novedosa tecnología), pero no acceso directo al editor de recursos. Por otra parte, suena algo descoordinado en sus cajas de diálogo, no siempre bien estructuradas y con sistemas de listas desplegables, en vez de pestañas de fichas múltiples. También suena algo aislado en el uso de otras utilidades, como el perfilador (profiler) y el depurador (debugger).

Mucho más grave nos ha parecido que no reconozca los caracteres del teclado castellano, lo que hace que ciertos caracteres habituales en programación (/, {, }, [, ], &,...) se tengan que teclear introduciendo directamente su código ASCII o con trucos similares. Para ser una primera versión, son de agradecer sus aceptables prestaciones.

Bibliotecas y extensiones del lenguaje

El estado actual de la programación bajo Windows presenta unas tendencias bastante definidas

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información