# GFA BASIC

Gfa-BASIC, es un compilador, "abandonware", del lenguaje BASIC. En el año 2001 la empresa responsable de 15 años de productos GFA-BASIC se fue a la bancarrota. Originalmente el Gfa-BASIC fue desarrollado para los ordenadores Atari ST (de 16 bits y 32 bits) por Frank Ostrowski (el creador de Turbo-BASIC XL, para las máquinas Atari de 8 bits. Luego vinieron adaptaciones para DOS, Windows, Amiga, etc. La versión para Windows era una alternativa al Visual Basic o VB. Gfa-BASIC es un lenguaje de programación profesional, tiene cientos de comandos y funciones y un manual muy bien escrito.

## Atari TOS

El Atari ST tuvo una base de usuarios entusiasta en Alemania, el hogar de la casa de software Gfa, donde el Atari ST se consideró como el "Macintosh de los pobres". La fortaleza de este mercado local contribuyó a fomentar que una serie de empresas alemanas empezaran a desarrollar sofisticadas herramientas de orientación técnica y aplicaciones para el ST (como Calamus {Wikipedia en alemán: Calamus} , un sistema de edición avanzada casi desconocido fuera de Alemania).
Muchos usuarios de Atari ST tomaron contacto con el Gfa-BASIC a través de artículos y tutoriales que aparecieron en las revistas más conocidas como "ST Format". Incluso, en algunas de esas publicaciones se entregaron copias gratuitas del programa en los discos de portada {en inglés: cover disks}.

## PC DOS

Versión abandoware de Gfa-BASIC para DOS:
* http://sites.google.com/site/gfabasic16/gfa-basicforms-dos Archivado el 24 de agosto de 2010 en Wayback Machine. - GFA-Basic 4.51 MS-DOS
* GFABASIC.zip (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última). - Archivo con el intérprete y el compilador de 16 bits para MS-DOS.
Gfa-BASIC para DOS permite escribir programas que se ejecutan bajo DOS con el apoyo de una GUI parecida a Windows, pero más tosca. Esto fue útil para escribir utilidades para las operaciones de disco de bajo nivel, sin limitar al usuario a usar una interfaz de línea de comandos. Convertir un programa de Gfa a DOS solía requerir cambiar los valores de color para que coincidieran con la paleta de sistema DOS.

## Versiones para Windows

Gfa-BASIC para Windows incluyó una implementación completa de llamadas a la API de Windows. Aunque el producto tuvo una serie de ventajas técnicas sobre algunos de los productos más populares (la combinación de un lenguaje “fácil” con una arquitectura robusta y rápida, con un código compilado confiable), no logró gran éxito en el mercado de Windows. Los profesionales de software que querían un código de alto rendimiento tendían a quedarse con los lenguajes más “técnicos”, considerando al BASIC como inferior. Para los que no tenían problemas con BASIC, una serie de proveedores bien establecidos de herramientas de software como Microsoft y Borland promovieron activamente nuevos sistemas de programación “visual” como VB. Estos permitían que los usuarios crearan ventanas y cuadros de diálogo llenos de componentes estándar (texto, botones, marcos esquemas) con la ayuda de una interfaz de arrastrar y soltar {en inglés: Drag and drop}, y edición orientada a los objetos.
Una de las ventajas de GfA-BASIC para Windows era que el compilador (vendido separadamente) podía crear ejecutables independientes. También incluía una opción relativamente fácil para la creación de bibliotecas de enlaces dinámicos (DLL) de Windows. Esto permitía escribir y probar rutinas dentro de Gfa-BASIC, exportarlos como funciones de Windows a un archivo DLL, y luego acceder a las funciones pre-compiladas dentro de otras herramientas o programas, tales como Visual BASIC 3.0 (que era incapaz de producir código compilado por sí mismo). Esta característica permitía a Gfa-BASIC ser utilizado como un agregado para procesamiento numérico en masa {en inglés: Number crunching} para VB, permitiendo escribir rutinas de alta velocidad para aplicaciones como el ordenamiento {en inglés: sorting} en bases de datos o procesamiento de señales de medios, lo que habría sido muy complicado con la versión de VB disponible en ese momento.
Gfa-BASIC no tenía el reconocimiento de la empresa o los factores de producto de reconocimiento de empresas como Microsoft y Borland en el mercado de los EE.UU., y por ser un sistema de creación de código simple basado en texto, carecía de una de las nuevas y emocionantes interfaces de usuario “visuales” que sí poseían sus competidoras.
Aunque el Gfa-BASIC se desarrolló aún más para incluir el soporte para los componentes de VB, su uso dentro de Gfa-BASIC fue más técnico que en VB.
Sin un gran presupuesto de mercadeo, ni una razón clara por la qué los periodistas hubiesen tenido que escribir sobre él, Gfa-BASIC para Windows siguió siendo un producto comparativamente oscuro.
Existen 2 versiones de Gfa-BASIC, Gfa-BASIc de 16 bits (GB16) y Gfa-BASIC de 32 bits (GB32)

### GB16 (Gfa-BASIC 16 bits)

Versión "abandonware" de Gfa-BASIC de 16 bits para DOS y Windows 3.1:
* http://sites.google.com/site/gfabasic16/ Archivado el 22 de agosto de 2010 en Wayback Machine. - "Todo lo que necesitas para programar con éxito con las versiones de 16-bits de Gfa-BASIC"
De allí se puede descargar:
** Archivo con el intérprete de 16 bits para Windows 3.1.
** Archivo con el compilador y enlazador independientes, para la versión de 16 bits de Windows.
** Archivo con herramientas de extensión.
** Listados de ejemplo
** Un libro sobre el lenguaje para Windows 3.1
Gfa-BASIC presentaba una interfaz gráfica de usuario (GUI) similar a Windows. Esta implementación era completamente compatible con la sintaxis de las órdenes para las versiones de Atari ST y de Amiga.

### GB32 (Gfa-BASIC 32 bits) para Windows

Con una sintaxis similar a Visual Basic y a Quick BASIC, GB32 es compatible con Windows 95 / 98 / Me / NT / 2000 / XP / Vista / 7
GB32 ya no está dividido en un intérprete y un compilador independientes. Cuando se ejecuta desde el IDE, primero el código fuente es compilado a código de máquina y luego se ejecuta. El compilador está optimizado para producir código de máquina rápido, así los programas se ejecutan a gran velocidad. La biblioteca de comandos de GB32 es parcialmente compatible con Visual BASIC y con Gfa-BASIC 16.
Se mantiene una gran parte de la funcionalidad de la versión de 16 bits, pero debido a un concepto totalmente nuevo de creación y manejo de ventanas y cuadros de diálogo, GB32 también es muy diferente y mucho más compatible con VB en esa área. Otras incompatibilidades se deben a los 32 bits del sistema operativo. Ahora un número entero es de 32 bits de ancho, en lugar de los 16 bits en Gfa-BASIC de 16 bits. Por eso, cuando se porta o convierte un programa desde Gfa-BASIC de 16 bits, Gfa-BASIC-32 convertirá automáticamente el código de 16 bits a la nueva sintaxis de 32 bits.
* En http://gfabasic32.blogspot.com/ Sjouke Hamstra mantiene, corrige y actualiza la versión abandonware de GB32. El 19 de enero de 2013, la versión disponible de GFA-BASIC para Windows es -> Build 1181.