Welcome to wxBasic

wxBasic is a Basic Interpreter that brings the easy to learn programming language Basic together with the power of the widely-used wxWidget library. Following the cross-plattform idea of wxWidgets, wxBasic is available on Windows, MacOSX and Linux/Ubuntu. wxBasic comes in 3 different flavours.

  1. The GUI version (wxbasic) is linked to the powerful wxWidget library. Creating and calling the wxWidgets code closely parallels the wxWidgets C++ API.
  2. The Console version (bvmc) allows to write simple Basic applications for Console mode and looks a lot like QBasic.
  3. Another Console version (wxbc) is positioned in the middle. It runs in console mode and is linked with wxBase. wxBase is part of the wxWidgets library and contain all classes usable for writing automatic background jobs.

It is possible to write applications very quickly and create stand-alone executables.
The package contain a lot of sample applications. So it's easy to start with wxBasic.

wxBasic was first developed in 2002 by David Cuny. In the meantime the development is done by the Solution Research development team, leaded by Ralf Peters.

The fundamental idea was to have an easy to learn and use programming language together with a powerful GUI library, that is platform independant or at least support the major known platforms (which is wxWidgets) and should be compact enough to be independant from any external libraries.

With wxBasic a C/C++/wxWidgets developer can easily test some new ideas, before start coding in C. It's a hassle to setup a new project, include the correct (and not too much) header files and libraries and end up in a time consuming loop of edit, compile, link, test and start all over again. wxBasic combine everything. Just type an ideas and let it run. That is really an lazy way to try out all the powerful classes and parameters of wxWidgets. At the end the developer can decide to distribute a wxBasic application or to rewrite some in C/C++. In most situations a wxBasic program is more than enought. The developer can focus on solving problems instead of designing castles in the air (which is not too bad to be kept motivated).

During the last time two further demands settled by wxBasic. With the new console version wxbc it is possible to write complex time controlled jobs. Basic together with wxBase and wxDb is a really easy new way to automate daily recurring jobs. Especially in the internet world where socket (e.g. HTTP) processing together with string operations and database access is needed.

The other demand is to have an plattform independant macro language. As Visual Basic is used as a macro language in the Office bundle for years, the idea came up to use wxBasic as a macro language in other programs, either called via exec or linked in as an embedded macro programming language. The first idea is implemented, the other one is in development. Some words on the database connection functionality. As it is known for some time that database support is dropped in wxWidgets from 2.8 to 3.0 we developed an wrapper in wxBasic from the beginning (called wxDbEngine, which integrated Sqlite access beside the offically supported ODBC functionality). I personally think it's a pity to have a powerful library without any database support, but I can understand the wxWidgets team very well on the other side. wxDb was unattended for a long time because there was no owner. But we needed a solution as we want to keep the whole strength of wxBasic.

Current version of wxBasic is linked against wxWidgets 3.2 on Windows, Linux and macOS. All version now (even 2.8) are dropped wxDb support and using a strong enhanced library called wxDatabaseLayer (can be found on wxCode) to access ODBC and Sqlite databases from the wxDbEngine wrapper. So there is no need to change any code if the wrapper was used. In the 2024 version of wxBasic the wxDatabaseLayer is replaced by a new library wxDbConnection. Reason is wxDatabaseLayer lack of database cursor support and got to much overhead for the sake of supporting multiple dbms backends and bind parameter support in ODBC. The first we need, the seconds we think it's cool, but we don't need.

For now, enjoy the current version of wxBasic.

Happy coding!