Recomendado

El presente artículo es parte de un estudio realizado para determinar al viabilidad de aplicar un enfoque transversal en el aprendizaje de un nuevo lenguaje de programación.

Actualizado el 2023

En el año 1991 ingresó al mercado la familia Visual Basic que cambio el modelo de programación, los conocedores de BASIC se enfrentaron al paradigma de la programación orientada a objetos, en es mismo periodo se hizo la comparaciones con el lenguaje que heredaba la programación en PASCAL llamado Delphi, ambos lenguajes incluían un entorno de programación "rapid application development" RAD que permitía arrastrando y soltando armas interfaces y simplificar parte de la programación.

Proyecto de compatibilidad QuickBasic - Visual Basic

Sin embargo, quedó un vacío entre los usuarios de QuickBasic y GWBasic porque su enfoque era diferente. En tal sentido, como parte de un estudio sobre compatibilidad por el año 2002 como parte de los últimos cursos de la carrera de computación e informática, este primer estudio propio determinó que es erróneo tratar de migrar los programas, lo que se debe hacer es "emular" el comportamiento de la consola DOS en un formulario Windows.

Un primer enfoque es usar los Windows API para dentro de un formulario Visual Basic tomar el control de la Consola y poder emular este comportamiento.

Los comandos utilizados son principalmente
SetConsoleTextAttribute que tiene el comportamiento de COLOR
GetStdHandle que captura un output en modo texto
WriteConsole que tiene el comportamiento del comando PRINT

Otro enfoque es construir un FORMULARIO que tenga el comportamiento de una consola y que permita "emular" el LOCATE, PRINT y COLOR para hacerlo funcionar.


Un tercer enfoque fue combinar la ejecución del código "heredado" en una plataforma nueva, por lo que se hizo un PORT de los principales comandos al nuevo lenguaje, en la foto se ve la ejecución del clásico NIBBLES en VB o en C# usando esta misma técnica.

Naturalmente los lenguajes de programación hacen la conversión del código al código ensamblador, por lo que este mismo enfoque es para "emular" código heredado sobre nuevas plataformas.

Algunas conclusiones, con las experiencias del 2002 y las del 2021 y 2022 en cursos de programación, se hace evidente que la complejidad de los lenguajes hace dificultoso incorporar al  público en general a la programación, otro aspecto es la falta de una ruta de aprendizaje estándar.

Conclusiones
- Implementar los comandos BASIC en los nuevos lenguajes
- Preparar un source-to-source para generar y compilar código.
- Reutilizar el conocimiento de lenguajes

Ideas similares
- TypeScript, es un lenguaje que extiende JavaScript y lo hace sólido con un compilador propio
- Basic, fue creado para interpretar y ocultar la dificultar del código ensamblador

Controversia del BASIC
[1] Un lenguaje simple y mutilado complica la evolución del programador a otros lenguajes.
Lo cual tiene sentido lógico, ya que sus autores "El BASIC original, el Dartmouth BASIC, fue diseñado en 1964 por John George Kemeny, Thomas Eugene Kurtz y Mary Kenneth Keller en el Dartmouth College en New Hampshire, Estados Unidos, como un medio para facilitar la programación en ordenadores a estudiantes (y profesores) que no fueran de ciencias", por tanto es un lenguaje para las personas que no eran científicos y matemáticos

Principios del BASIC
  1. Ser fácil de usar para los principiantes.
  2. Ser un lenguaje de propósito general (no orientado).
  3. Permitir a los expertos añadir características avanzadas, conservando simple el lenguaje para los principiantes.
  4. Ser interactivo en todos los casos.
  5. Proveer mensajes de errores claros y amigables.
  6. Responder rápido en los programas pequeños en general.
  7. No requerir un conocimiento del hardware de la computadora.
  8. Proteger al usuario del sistema operativo.

La versión original realizada en la universidad Dartmouth crearon el BASIC. En el siguiente enlace se encuentra videos y fotos por su 50 aniversario.

https://www.dartmouth.edu/basicfifty/basic.html

El manual original de 1964 se encuentra en el proyecto bitsavers.

http://www.bitsavers.org/pdf/dartmouth/BASIC_Oct64.pdf

El manual de BASIC de 1980 de Microsoft

http://www.bitsavers.org/pdf/microsoft/cpm/Microsoft_BASIC_Compiler_1980.pdf

** bitsavers es un proyecto para digitalizar manuales y guías técnicas.

https://en.wikibooks.org/wiki/QBasic/Full_Book_View

Manual de QBASIC Completo

https://gotbasic.com/

Una página web centrada en material y contenidos acerca de BASIC.

Video Juegos en BASIC

https://github.com/coding-horror/basic-computer-games

Es  una colección de juegos de BASIC de los años 70 migrados a lenguajes modernos. Es una maravilla de proyecto. 

https://www.calormen.com/jsbasic/

Un excelente compilador en JS de una versión de basic para las computadoras APPLE

https://troypress.com/wp-content/uploads/user/js-basic/index.html

Versión de los juegos compilados en Javascript para disfrutarlos desde el navegador.

https://github.com/robhagemans/hoard-of-gwbasic

Una lista inmensa de programas y funciones hechas en BASIC. Incluido los ejemplo del mítico David H. Ahl, autor de libros y manuales de programación. 

http://www.vintage-basic.net/games.html

Una lista de juegos de las revistas BASIC Computer Games que inspiraron a toda una generación.

https://microstudio.dev/explore/

Algo parecido a BASIC, es una plataforma para crear juegos 2D donde la imaginación es el límite.

 

Aprende BASIC

En esta sección se listan los proyectos de basic funcionales.

https://qb64.com/
👑👑👑👑
Es una implementación moderna de QUICKBASIC, compila código en C++ y tiene funcionalidades para generar aplicaciones en modo CONSOLA. Si te emociona además crear juegos tiene un proyecto GX que provee funciones para crear juegos 2D como los ZElDA de NES y SNES con un creador de mapas.

https://www.purebasic.com/
👑👑👑👑
PureBasic es un lenguaje de programación con portabilidad para Windows, Linux, Raspberry y Mac. Es de pago con una versión FREE con limitaciones de tamaño del programa. Además tiene su versión Web para ANDROID llamado https://www.spiderbasic.com/
 
http://www.yabasic.de/
👑👑👑
Es un interprete de comandos en modo texto con soporte para crear  un canvas de dibujo 
Su código fuente esta publicado en https://github.com/marcIhm/yabasic/

https://www.freebasic.net/
👑👑👑
Es un compilador que busca compatibilidad con las aplicaciones hechas en QuickBasic con soporte para crear programas consola y programas con UI.

https://www.justbasic.com/
👑👑👑
Es una plataforma de programación basada en BASIC para crear interfaces Windows. Es la versión FREE de LibertyBasic.

http://www.ibasic.es/
👑👑👑
Es un proyecto español con un interprete BASIC basado en línea de comando y capacidad para producir archivos de tipo EXE. No se más detalle del proyecto pero en pruebas realizadas es capaz de ejecutar el código y además aporta nuevas funciones. Se define como un BASIC para pruebas de protocolos de red, desarrollo de utilidades entre otras.  
 
http://robhagemans.github.io/pcbasic/
👑👑👑
Es un proyecto open source para crear un interprete de comandos BASIC multiplataforma compatible con el código heredado de la larga historia de BASIC.
 

http://smallbasic.com/
👑👑👑
Es un interprete para Windows hecho por Microsoft con fines educativos. Combina además funciones del mítico LOGO y material de aprendizaje. Ideal para iniciar los estudios de programación. 

https://www.tinybasic.de/
👑👑👑
Es una poderosa implementación de BASIC para Internet de las cosas. Para desarrollar se necesita el interprete TINYBASIC y una placa Tiny Brick (similar a Arduino) para tener todo el poder de la electrónica y la programación juntos.

https://www.libertybasic.com/
 👑👑👑
 Es un entorno BASIC con capacidad para hacer EXE para Windows. Tiene una comunidad de desarrolladores y una versión FREE y de PAGO. Dentro del sitio se encuentra manuales y guías para iniciarse en el mundo de la programación en BASIC. 

http://www.runbasic.com/
👑
Es un proyecto relacionado de Liberty Basic para ejecutar código BAS desde una página web.
 
https://www.b4x.com/b4a.html
👑👑👑
Es una plataforma para desarrollar aplicaciones para ANDROID con Basic, Como explican al inicio es FREE. B4A significa BASICA for ANDROID. Recomendación: Para iniciarse se requiere leer los manuales para instalar JAVA y el ANDROID SDK para poder compilar aplicaciones.  

https://www.thinbasic.com/
👑👑👑
Una poderosa versión de BASIC en modo consola y GUI. 
 
https://www.powerbasic.com/
👑👑👑
Es el heredero del Turbo Basic es PowerBasic. En 1989, Bob Zale fundó PowerBASIC Inc. y lanzó PowerBASIC 1.0, un compilador de BASIC para MS-DOS que ofrecía un rendimiento muy superior al de otros dialectos de BASIC. Esto se debió en parte al enfoque en la generación de código máquina optimizado y la eliminación de la interpretación del código. A lo largo de la década de 1990, PowerBASIC continuó lanzando versiones mejoradas para MS-DOS y Windows. Bob Zale tambien es el creador del Turbo Basic, por lo que heredaron características similares.

http://www.vintage-basic.net/
Es un interprete de BASIC escrito en Haskell para un curso de avanzado de programación funcional.

El método OLD SCHOOL


UGBASIC
Es una implementación de BASIC que permite compilar código para diversas computadoras de 8bits. Esto quiere decir que puedes compilar ATARI, C64, Olivetti P128, Radio Shack TRS-80 Color Computer entre otros. Y lo más interesante es que produce código nativo.

https://ugbasic.iwashere.eu/
 

MyBasic
Es un modelo de BASIC creado en 1998 en ANSI C. El  código es abierto y permite explorar y conocer como crear un lenguaje. Inicialmente creado para AMIGA ha sido portado C para correr en CYGWIN

https://bitbucket.org/pmcgavin/mybasic/src/master/

wwwBasic
Es un proyecto en proceso para interpretar BASIC desde una WEB. Tiene buen funcionamiento y puede ejecutar el mítico DONKEY.BAS desde html.
https://github.com/google/wwwbasic
 
Decimal Basic
Es una implementación que nos llega desde Japón. Decimal BASIC es un entorno de programación orientado para la investigación. Decimal BASIC adopts ANSI/ISO Full BASIC
 
https://hp.vector.co.jp/authors/VA008683/english/index.htm 
 
https://fnxbasic.com/
FNXBasic es un lenguaje de programación para crear aplicaciones Windows. El paquete contiene un compilador y un editor para editar su código básico. Puede utilizar muchos componentes de Windows como comboboxes, listboxes, formularios, etc en su programa. El tipo de lenguaje es un legado del antiguo basic, ampliado con objetos de windows y utiliza OOP (programación orientada a objetos).

http://www.basic-lang.org/
64k Basic es un dialecto de basic que simula la consola interactiva como en 1964.

B3 Basichttps://joystickandcursorkeys.github.io/B3Script/
Es un interprete de BASIC que se ejecuta en un BROWSER aún en versión BETA.

https://www.iso.org/standard/18321.html
https://en.wikipedia.org/wiki/Full_BASIC
Descripción acerca del estándar FULL BASIC.


FOROS y  SITIOS PERSONALES

http://www.wzsn.net/qb/
Sitio personal con código y librerías para QB

https://tire-dealer-software.com/
Es un desarrollo en GW BASIC y QUICKBASIC de un sistema para administrar negocios, en dos versiones uno para el negocio de llantas y otra para uso general. Simplemente increíble.

https://qb45.org/
Es una foro y galería de programas hechos en BASIC

http://craz1000.net/
Proyectos de juegos tipo Zelda hechos en el poderoso BASIC.

https://github.com/coding-horror/donkey.bas/blob/master/donkey.bas
Es el mítico DONKEY BAS creado por BILL GATES y Neil Konzen en apenas 131 líneas de código.  

https://gamecola.net/tag/qbasic/
Gorilla y Nibbles juegos de QB.
 
https://brisray.com/qbasic/qdload.htm
Programas de uso variado 
 
http://stevehanov.ca/blog/?id=92
Un basic implementado en JavaScript y es capaz de ejecutar el Nibbles.bas

https://github.com/Timu5/BasicSharp/tree/master/BasicSharp
Una implementación en C# del popular BASIC

https://github.com/nnxa/basic
Un BASIC en modo consola interactiva

Una lista de Dialectos Basic
https://github.com/JohnBlood/awesome-basic

0 comentarios