| Artículos | 01 FEB 1996

Delphi 32-bits 2.0; entorno atractivo y productivo

Tags: Histórico
Versión para Windows 95 y Windows NT
Jaime Peña.

A lo largo del último año, Borland Delphi ha representado la novedad más apasionante en el mundo de la programación. Ahora le ha llegado el momento de confirmar su potencial con la nueva versión de 32 bits para Windows 95 y Windows NT.

Casi por estas fechas, hace un año que se presentaba al mercado una nueva herramienta de programación. En su momento sorprendió y no todos captaron su verdadero enfoque. Unos lo consideraban una suerte de Visual Basic Killer, otros una herramienta cliente/servidor, más en la línea de PowerBuilder. Pero, con el devenir del tiempo, ha fraguado un poso de plataforma de desarrollo para, virtualmente, todos los ámbitos de la programación bajo Windows.

Catalogado como el producto más novedoso tecnológicamente en el COMDEX de finales de 1994, ha sido considerado como excelente en todas las áreas de programación. Su atractivo y altamente productivo diseño del entorno, el que se trate de un verdadero compilador (vertiginoso a la hora de generar ejecutables y de trabajar con ellos) y acompañado de excelentes herramientas complementarias (como el Borland Database Engine o ReportSmith), le dan un sentido propio. Así, no debemos buscar comparaciones fáciles. Delphi ha demostrado que puede ser una excelente alternativa para los programadores en general, desde los ocasionales, hasta los más profesionales.

El nuevo producto que evaluamos, se trata de la última Test Field (una beta ya muy avanzada y estable), está escrito en código nativo de 32-bits y se ha enfocado para el desarrollo de este tipo de aplicaciones. Por tanto, pensemos que no se refiere a una versión actualizada del anterior, sino una revisión total para adaptarla al mundo de Windows 32-bits (Windows 95 y Windows NT).

Sus novedades se centran mucho más en sus funcionalidades y mejoras en velocidad e implementación de su lenguaje base (Object Pascal), que en el aspecto externo, que prácticamente es idéntico (al margen de su adecuación a las líneas directrices de Windows 95). Atrás quedarán los controles VBX, soportados solamente en su versión 16-bits actual, pero se introducen los más potentes controles OCX (válidos para 32-bits). También se retiran (consecuentemente) algunas de las funciones tradicionales de Borland Pascal para accesos a memoria segmentada, se añaden nuevas funciones de tratamiento de cadenas, soporte OLE 2.0 y bastantes cosas más.

No dudamos que su acogida será excelente, dado el éxito de su versión precedente y, lo creemos firmemente, se encontrará en un estado de madurez que definirá, de una vez por todas, si las expectativas que ha creado lo mantendrán como una seria alternativa en el futuro inmediato. Por último, y antes de comenzar nuestro análisis, apuntar que están previstas tres versiones: normal, Developer (equivalente a la actual Desktop) y Client/Server Suite (equivalente a la actual Client/Server). Estás dos últimas serán las que previsiblemente se comercializarán en España.

Compilador y biblioteca Run-Time

Evidentemente, la novedad más destacable de Delphi 32-bits es ser una aplicación para Windows 32-bits (Windows 95 y Windows NT, no es ejecutable en Windows 3.11) y, sobre todo, el generar aplicaciones de Win32. Eso, de por sí, ya arrastra consecuencias importantes. Por ejemplo, no se soportan los controles VBX, que han sido sustituidos por el nuevo estándar de controles OLE OCX 32-bits. También, consecuentemente, se han retirado de su lenguaje ciertas funciones de manejo de memoria segmentada, en concreto: CSeg, DSeg, SSeg, PrefixSeg, PtrRec, SPtr, Seg, Ofs y Ptr; y del manejo de excepciones de los tipos: EBreakpoint, EFault, EGPFault, EInavlidOpCode, EPageFault, EProcessorException, ESingleStep y EStackFault.

Se han extendido los tipos de datos manejables por Delphi; fundamentalmente en lo referente a caracteres y cadenas de caracteres. El tipo Char se divide en dos: ANSIChar y WideChar, el primero de 1 byte para representar caracteres ANSI estándar, el segundo con 2 bytes, de manera que puede contener caracteres Unicode. Por otra parte, el tipo String ahora puede trabajar con diferentes formatos de cadenas cortas y largas: ShortString y WideString. La primera es equivalente a las cadenas de Delphi 16-bits (255 caracteres de largo, con el primer byte conteniendo su extensión). Las cadenas largas son una mejora muy destacable; se debe reservar memoria dinámicamente mediante funciones del tipo SetLength, son intercambiables directamente con el tipo ASCIIZ PChar (sin precisar e la función de conversión StrPCopy, etc.

Dos nuevos tipos de datos: Variant y Currency. El primero está enfocado a funciones de automatización OLE y ciertas aplicaciones de gestión de bases de datos, en las que debe poder cambiarse el tipo de dato de forma dinámica (en tiempo de ejecución). En la versión evaluada de la Test Field última recibida, aun no se habían establecido completamente los modos de trabajo con los tipos Variant. El tipo Currency está basado en los tipos de coma flotante, con 64 bits, para operaciones de gran precisión.

Especialmente importante son las nuevas optimizaciones implementadas en Delphi 32-bits. Abarcan todo lo esperado en un compilador-optimizador avanzado, como no podría esperarse menos de la implementación del núcleo del compilador de Borland C++ en el nuevo Delphi 32-bits. Todas las optimizaciones están activadas automáticamente, garantizándose su no interferencia con los resultados de ejecución de códigos. Así podremos optimizar según:

- Register Optimizations: Cuando se trabaja directamente sobre registros, el código se ejecuta mucho más velozmente que almacenando y recuperando valores de memoria. Se optimiza el empleo de un sólo registro para múltiples variables, si es que no se solapan sus ámbitos en ningún momento.

- Call Stack Overhead Elimination: Si es posible, también se emplean valores en registros para el paso de parámetros a funciones. Este método fastcall es el nuevo usad por defecto. También se puede indicar pase de parámetros pascal, stdcall y cdecl (al estilo C).

- Common Subexpresion Elimination: Si en operaciones matemáticas complejas, existen subexpresiones que utilizan el mismo valor, se reúnen todas ellas en una misma variable temporal, evitándose cálculos redundantes.

- Loop Induction Variables: Si la variable de control de bucles se emplea sólo para esa finalidad, se almacenará en un puntero; incluso, si el bucle o matriz es de 2, 4 u 8 elementos, utilizará el scale indexing propio de los procesadores Intel, mucho más eficiente.

Si se trata de grandes proyectos de desarrollo, y Delphi está enfocado a ellos, se proporciona el Version Control, que permite coordinar cambios de código y actualizaciones automáticas de partes de proyectos desarrollados por diferentes equipos de trabajo. Los sistemas de control de versiones se han puesto muy recientemente de verdadera actualidad y Delphi 32-bits nos permite utilizarlos de forma eficiente y perfectamente integrada en su IDE.

Una mejora de menor entidad desde el punto de vista funcional, pero muy reclamada por los desarrolladores es la evaluación global del proyecto a la hora de compilarlo, más que el hecho de que se pare cuando encuentre el primer error. Mediante la técnica Multi-Error Compiling, con advertencias y consejos sobre cada error, se abrirá una ventana que nos muestra información puntual de todos ellos. Cada vez que hagamos clic sobre uno, se nos mostrará la línea de código afectada. Eso ya es habitual en los compiladores más avanzados, pero carecía de esa facilidad Delphi 16-bits. Ahora, afortunadamente, se solventa la falta.

Con todas estas mejoras (y otras más que hemos dejado en el tintero), la velocidad de compilación se ha incrementado muy apreciablemente, los ejecutables son hasta un 400% más rápidos y el tamaño del EXE final es hasta un 25% menor (NOTA: se trata de datos de Borland, que hemos co

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