Fog Creek Software
Discussion Board

PowerBASIC Vs. VisualBASIC

Just curious on any feed back related to this software, I'm majorly familiar with it's competitor VB, but anyone ever actually used PB and seen a major difference in speed?

Oh. erm, on second note *raises a hand* new to the site *grins* great site, lots of info and great chances to merge with the other programmers or developers.

The main reason I ask is cause of major interest into the game development business.  I still have not found anything as to 'why one uses this program and not that one in this area of a game design', then again :P guess everyone is looking for a good rough game design plan ;)

Wolfric V. Elkrose
Wednesday, April 2, 2003


Are you interested in figuring out whether to use PB or VB for game development?  I think the answer is neither.  If you're interested in getting into the game dev business, you should consider using C# or C++ and the DirectX 9 SDK.  I've heard that some (big) game dev houses have actually switched to C#/DX9 for their upcoming projects (no, can't give names - don't want to get anyone in trouble.)  On the other hand, if you want to get into console programming, C++ is the way to go.

Wednesday, April 2, 2003


Take a look at IBasic

It has very nice DirectX / 3D functions.

Ged Byrne
Wednesday, April 2, 2003

You may also find a beneficial and informed discussion at the ABC Archives:

Ged Byrne
Wednesday, April 2, 2003

Blitz Basic is also designed for game programming:

Thomas Eyde
Wednesday, April 2, 2003

"I've heard that some (big) game dev houses have actually switched to C#/DX9 for their upcoming projects"

I find that hard to believe...I'm a big fan of C#, but I've done side by side comparisons with DX9 code written in C and C# and there is a noticeable performance hit when using C#. Managed code is great, but unfettered speed isn't it's strongpoint.

Mark Hoffman
Wednesday, April 2, 2003

I also find it hard to believe many games companies are switching to C#, for two reasons. Firstly, games companies are incredibly conservative, many are still umming and ahhing over C++, let alone C#. Secondly the major games market is PS2/Xbox/GCN, not PC - C# is of no help there.

Mr Jack
Thursday, April 3, 2003

Delphi all the way, baby.

TJ Haeser
Thursday, April 3, 2003

As a user of both PB and VB, I can say that the performance of PB rips VB to shreds.  PB performance is on par or better than many C/C++ compilers, depending on the application.

Take a look at for more info.

(Not affiliated with PowerBASIC in any way, just a very happy customer.)

Mark Newman
Thursday, April 3, 2003

PB generates easily installable,fast and memory efficient
code comparable in performance to Visual C++. Normal C
features like code and data pointers are supported.
PB blows VB away in a lot of ways but you must know a little
bit more about Windows to use PB.PB,in itself,does not support ActiveX though some COM support is there.
Monkeys use VB.Thinkers use PB.   

Eddie McMullen
Thursday, April 3, 2003

I also use PB and the easiest way I've found to think of it is "C with easier string handling and some excellent abstractions." I don't know that it would be any more ideal for game development than C or C++ however, other than easier-to-read code, especially for a VB programmer. PB has the following features (and more) built into the language itself: TCP/IP communications, REGEX, inline ASM, Trace/Log/Stack output (that can be enabled or disabled with a single code statement), simple Windows dialog abstractions, File I/O (with some nifty features), full pointer manipulation, COM automation (but not ActiveX), serial comms, environment variable access, unusual (and useful) string manipulation features, Thread creation and management, output formatting, structured error handling (in addition to inline trapping), direct support for creating standard DLLs, a decent preprocessor.

Some of my observations on PB, compared to some other languages:

PB is not a RAD tool like VB. If you need to do apps with ActiveX controls and the like, it's probably not the tool you want. There is a third-party addon to give PB full power to use ActiveX, but it's not native to the environment or language.

PB makes tiny, fast executables with no external runtime requirements other than what you explicitly add, such as third-party DLLs. It takes some serious mastery of C or C++ and intimate knowledge of compiler options to match just the default output of PB.

The community is by far the best and most helpful programming community you will ever find for programming. They provide tons of source code, addons, and will help you through just about any challenge you can come up with. Check out the Forums link on the PB site and prepare to be amazed.

Several companies provide third-party tools that work with PB, but they don't really provide the same level of as for VB or C++. Chances are if it's a well-know third-party library, someone has converted the headers to PB and given them back to the vendor to provide to other PB programmers.

Programming in PB can be a bit of a shock to someone that's only done VB before. VB shields you from how Windows actually works (an ugly set of complicated functions with bizarre structures and callbacks with undocumented side-effects). It's a bit of a learning curve, but a very satisfying one.

There are some excellent keywords in PB, which functionality I haven't seen in any other language. There are nifty escapes and shortcuts built into the standard language constructs.

Sometimes I really wish PB had classes in the language. Sometimes it's very convenient to have an abstract combination of code and data, but PB is strictly procedural. You can fake classes in PB just like you can in C (with structs), but no one does it.

Outside of the PB website and community, almost no sample source code is in PB. After a while, converting C or C++ source examples to PB becomes second nature. However, given the high quality of the PB forums, the very good PB documentation, and the high skill level of the community, this has never stopped me from accomplishing what I wanted to in PB.

The "IDE" isn't very good and contains only basic functionality. I think most PB programmers do most of their work in UltraEdit or similar editors, but I could be wrong about that. Wordfiles and keyword lists are very easy to come by. There are plenty of third-party IDEs for PB (built by PB community members) but none of them are VB or Delphi quality yet. This seems to be a pretty big stumbling block for some people (VB showed us what an IDE *could* be), but I've found that I prefer to build my GUIs in code anyway because the GUI abstraction keywords in PB (called "DDT") are quite human-readable.

You don't have to hunt down the declarations for the Windows API, or type them in yourself. PowerBasic provides the headers for that along with lots of abstractions for some commonly painful coding (like dealing with Windows Common Controls).

PowerBasic (the company) never pre-announces anything prior to its release. This is good in the way that poof, one day there's something new and exciting, but bad in the way that you can't plan ahead. One thing that can be said about that policy though is that they never promise a feature they don't deliver :).

PB is probably the most satisfying language I've ever worked in. When you produce those super fast 30K (really) executables with the functionality of 3MB apps written in other languages, it's very pleasing. It's not many compilers that output an app that zipping actually *increases* the size.

I have many more thoughts about PB, but this post is really too long already, so I'll lay off.

Troy King
Thursday, April 3, 2003

I have used VB in the past.  Now I use PowerBASIC.

I make money with PowerBASIC.

Enough said.

Wayne Hill
Saturday, February 14, 2004

PowerBasic is awesome. Coming from a background of another operating system and the multi-user basic there
then to QuickBasic, I was pleasently surprised to see many
statments/functions that were similar or identical to ones
I used on the other operating system. Anything else was
almost identical to QuickBasic.

Now it did take some learning to get into the differences of
windows programming but it is a pleasure with the great people that get on the PB forum. Technical help from PB as well as knowledgeable users makes it a joy.

I sell an accounting program on line and the windows version (written in PB for windows) is no larger when zipped than the DOS version. That should tell you something about the tightness of the code.

Sunday, February 15, 2004

PowerBasic is indeed awesome, but I worry for its future.  If you don't care about blinding speed and want ease of use, then something like Perl or Python is a better choice for many tasks.  If you want a language that's essentially going to be integrated into the next version of Windows, then is the way to go.

Unfortunately, the choice is a bit of a muddle right now because .net is still in the early adoption stage, and as such it doesn't make sense for lots of applications.  But a few years down the line this will undoubtedly be different.

Significant updates to PowerBasic are few and far between.  I wonder if the .net migration is really starting to hurt the company.

Monday, February 23, 2004

The big downside to PB at the moment is a lack of module support.  The official line seems to be that the compiler is fast enough to just break things up via include files and compile everything in one shot.  Then when that gets to be too much you split your project into DLLs.  But really this is a poor choice when compared with Delphi's units, which first appeared in Turbo Pascal 4 way back in 1987 (or in Modula-2 in the 1970s). 

Monday, February 23, 2004

*  Recent Topics

*  Fog Creek Home