Basic Clones
 

Motivation: With VB.NET going over to the OOP darkside we look for Basic Clones

Visual Basic has always presented a problem for developers - it is notably proprietary; not only running in Windows-only but also a distinct subset of Windows. The latest VB.NET is confined to Windows 200x and Windows XP. There has been a Herculean effort, the Mono project, to port C#, VB.NET, ADO.NET, and ASP.NET to Linux aided by Novell. But the todo lists on VB.NET remain daunting as these remarks from the Mono website indicate " MBAS is a CIL compiler for the Visual Basic language, an extended version of VisualBasic.NET. It's based on the MCS compiler and still in heavy development, though many language features are already supported.". So a cross platform version of VB.NET equal in function to the latest Windows VB.NET is closer but always will have to march 2-3 steps behind the Big Basic Boy.

The other problem with Visual Basic is that in the transformation to VB.NET and full OOP capability Visual Basic lost a lot of the features that made it easy, fast and approachable. Gone are such ease of use niceties as variants, default variable declarations, and case insensitivity. As well VB inherited a very top down inheritance hierarchy very similar to the C# model. In short, VB.NET might as well be considered a clone of C# with slightly different syntax but identically the same set of Base Classes and overall semantic architecture. VB lost its originality - an interpretive language that was easy to program and was orthogonal to C/C++.Given this turn of events we have been on the look out for a good cross platform language that runs in Windows as well as other platforms. And to our surprise we found some interesting candidates in all place in Basic.

Basic Clones

In a search of for cross platform development tools, the Basic clones kept popping up out of the wood work Specifically a client needed a programming language that supports rapid and easy cross platform development but does not incur the learning curves of C/C++ or Java. A learned colleague recommended - take a good look at what is available in Basic. So we did some research and found the following Basics of ever increasing interest.

Liberty Basic - is a simple, easy to learn version of Basic modeled on QBasic that cost less than $30 and runs in more versions of Windows than the current Visual Basic. Liberty Basic has a large set of support sites and a core number of books that use it as a springboard to teach programming.

Small Basic - is SourceForge available open source Basic that runs in Palm/OS, Linux, Unix, DOS, Windows. The maintainers have deliberately kept it small and focused in scope. No business development coding but rather visual graphics, scientific calculations and display are top priorities.

Mobile Basic - is a Basic designed to produce mobile phone mid lets that also can run as surprisingly versatile browser applets. The development environ runs in Windows 2000, NT, XP, Linux and Unix. In effect users are programming in Basic but targeting the J2ME JVM for MIDP 1 and CLDC 1 frameworks. Mobile Basic supports apps for Nokia, Sony-Ericcsson, and Motorola handsets. here are some sample midlets/apps developed with Mobile basic: Scientific Calculator, Phone Clock, Road rage and Alien Encounter games, Currency Conversion program, and Server links thru PHP to online databases info. Mobile Basic is relatively robust for a modest $200US investment.

True Basic - is a version of Basic from the originators, John Kemeny and Tom Kurtz from Dartmouth College. This Basic is fairly versatile, running in Windows and Mac OS with a Bind capability that allows a program to run as a standalone executable. There are three level a learning edition for $40, a more versatile Silver edition for $200 adds a huge library of 1400 routines and the Gold edition contains all of the Silver subroutines in both compiled AND source code versions, as well as special libraries for Sockets, SQL database, and Programmer's Workbench utilities. The Gold Edition has a 5-user license and sells for $495.
  There is a very vibrant cottage Basic industry going in in the gaming and 3D modeling world where two versions of Basic, BlitzBasic andDarkBASIC rule the roost. Like most of the versions of Basic we have noted here already, BliztzBASIC and DarkBASIC are distinct and somewhat proprietary in their implementations of Basic itself and the 3D worlds they help to create. See the screen shot of DarkBASIC at the left for a sample of the coding.But just like the other BASICs, there is a vibrant support community and even third party tools for both programs. DarkBASIC features a new IDE with DirectX 9
support, color coded

editor, online debugger and hundreds of support routines. The list of 2D and 3D operation available through the libraries is very impressive. Meanwhile the BlitzBASIC supports two versions - Blitz3D with close but not identical 3D functionality to DarkBASIC and BlitzPlus which feature 2D and animation capabilities. Blitz also has a hybrid language closer to Basic+C in syntax. But the bottom line is that for $100 or less developers can get gaming and graphics centric programming of fairly consistently high caliber.

RealBASIC

RealBASIC is the star of our Basic clones show for any number of reasons. First it has development IDEs that run in both Windows and MacOS. Second, RealBASIC produces executables that can run in old and new versions of MacOS and Windows. But the with 5.5 the RealBASIC people have added a kicker - executables that run on I86 platforms running Red Hat Enterprise Linux or SuSE Linux are supported. Also RealBASIC claims that "other Linux distributions with the GTK+ 2.0 and CUPS libraries installed should also work".


Visual Layout Canvas

As the screenshot at the right demonstrates the IDE is similar to VisualBasic with drag and drop toolbox of components (yes third party components are available) used to layout windows and dialogs. There is a property inspector for setting the state of the various components familiar to VB developers. There is a color-coded, code-completion aware text editor (see sreenshot below). There is a menu builder plus simple database connectivity dialogs; but nothing as fancy as the new solution wizards in VB.NET.

As well the IDE has a breakpoint and watchpoint capable stepwise debugger. And the set of functionality built into the system is quite impressive. First there is a built in single user database. This a great for caching and adding persistence to any user application. But as well RealBASIC provides data bindings


Color Coded Editor

for a wide range of databases including MySQL, Frontbase, PostgreSQL, ODBC (Filemaker), 4D Server and Oracle. In addition RealBASIC supports database, application server and asynchronous operations through SOAP support. In addition RealBASIC has an "Industrial-strength" XML parser and generator enabling coders to read and write XML data with few lines of code. HTTP, SSL, SMTP, POP3, UDP and its own special server sockets layers insure that the latest Internet aware applications can be built. Quicktime movie and bitmap/vector graphics can be loaded and controlled.

But RealBASIC also supports some specific platform capabilities. In Windows this include ActiveX, DCOM, and the Microsoft Office VBA Application API. As well it can do Win32 API calls and Registry access. On Apple, RealBasic support skins,

plus native look and feel for both Mac Classic and Mac OS X Aqua along with both AppleScript and RBScript support. On Linux, RealBASIC provides for shell scripting and serial bus access. In sum most applications can be made highly portable but specific OS platform customizing especially through script connections are also possible. Finally, RealBASIC provide a converter routine that translates VB projects into RealBASIC code. This is no small blessing given the weak offering Microsoft has for converting VB6 (nothing for earlier versions of VB) to VB.NET code. In sum for $350US users get a version of Basic that is not only cross platform but also adds a few multimedia, XML, and scripting tricks of its own.

In general we were tremendously surprised by the vibrancy of the BASIC communities. Sure BusinessBasic on DataGeneral and DEC boxes had their hay days as did a whole set of Windows based BASIC clones that died with the emergence of VB and then VBA. But the range of tools and the strength of the communities around these "new" BASICs - including third party tools and support - did open eyes. However, it is only logical - these "new" BASICs have generally thrived in arenas where complexity needs to be met by the comparative simplicity and ease of use that was and is BASIC.

Jacques Surveyer is a consultant and mentor; he can be reached at jbsurv@theOpenSourcery.com
 
Top of Page  Tutorials Home