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
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.
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
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
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
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
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
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
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
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.
|Visual Layout Canvas |
As the screenshot at the right demonstrates the IDE is
similar to VisualBasic with drag and drop toolbox of components (yes
components are available) used to layout windows and dialogs. There is
a property inspector for setting the state of the various components
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
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
|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
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,
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
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