Software Development optimize

Interview with PowerBASIC founder Bob Zale

PowerBASIC may be one of the software industry's best kept secrets. See what founder Bob Zale says about the compilers.

An interesting fact about software is that most people will never hear about a significant portion of what's developed. For example, major corporations write tons of in-house software that is critical to their day-to-day operations -- just think about the software created to control machines in various industries. Software that is commonly overlooked though essential is video or printer drivers (or other hardware). You may not realize that some of this software is written using PowerBASIC. There's a good reason why this is the case.

Programming languages have changed a lot since the old days when compiler makers were noted for counting CPU cycles and benchmarking them for speed. Today many programming languages produce resource hungry applications that end users often complain are slow and/or bloated. The people at PowerBASIC never lost that love of counting CPU cycles and benchmarking their compilers and are experts with Intel/AMD CPU machine language. This mindset, plus a reputation for rock solid compilers, has produced a current generation of compilers for Windows. If you want fast, reliable software with an amazingly small footprint, PowerBASIC is worth a look. Whether you're a hobby programmer (they sell an affordable Classic version of their compiler) or a professional, PowerBASIC is a worthwhile investment.

My interview with Bob Zale

I have been a PowerBASIC user for almost 10 years, and I can attest to its ability to create applications with an amazingly small footprint compared to other development tools I've used.

I had the opportunity to interview PowerBASIC founder Bob Zale. Find out whether he thinks PowerBASIC is one of the industry's best kept secrets, what advantages he feels PowerBASIC provides programmers, and more.

Chris Boss: Why did PowerBASIC choose to produce BASIC language compilers rather than some other language? Bob Zale: The syntax of BASIC is the closest to "natural language," the language we speak every day. Virtually every programmer can be productive with PowerBASIC in very short order. Who doesn't understand BASIC code? It's easy to read, easy to understand, easy to use at any level. When you program in a standard BASIC, like PowerBASIC, you'll find that your program is readable today, and readable a year from today. Yet our performance is unmatched by other compilers of any dialect. Here at PowerBASIC, we're very proud of our slogan, "We put the POWER in Basic!" Chris Boss: Do you consider compiler speed (compiling and execution) important for a programming language? Bob Zale: Performance. That's our first consideration. A few years back, I posted a small wall sign for our development staff. It reads simply, "Smaller_Faster. Smaller_Faster. Smaller_Faster." We follow it faithfully. Our philosophy requires that we provide the best possible code generation. We simply don't believe that sloppy coding can always be overcome by ever faster hardware. At some point, every programmer (ours included) must take on the obligation to write quality code... and we take that obligation very seriously. Chris Boss: Why do you think your customers like using PowerBASIC? Bob Zale: It's easy to use...  easy to maintain...  easy to interface with other compilers. And the performance? Unmatched by the other guys. But better yet, why not read their own words, rather than mine. You'll find some interesting testimonials, right on our web site. Another interesting read would be the PowerBASIC Forums -- close to 400,000 posts from good programmers, just like you. Chris Boss: Do you think PowerBASIC is one of the software industry's best kept secrets? Bob Zale: That's a pretty fair description. We all know that source code syntax has no bearing on the quality of the generated code. No bearing on the overall performance. PowerBASIC is living proof of that fact. But we still have a bit of work in that area, just to spread the word. Chris Boss: What are some of the most exciting features of your latest Windows compiler? Bob Zale: You'll create EXE's, DLL's, Static libraries, even COM components. How about transparent Unicode? Use ANSI and UNICODE in the same program, while the compiler handles all the messy details automatically. The most comprehensive string engine in the industry. Dynamic strings. Nul_Terminated strings. Fixed_Len strings. Even Field strings. Every one in ANSI or Unicode. The inline assembler supports every opcode, even all levels of SIMD. The inline resource compiler couldn't be simpler. There's Array Sort, Scan, Insert, and Delete. Regular expressions. StringBuilder classes. Date/Time Classes. Pointer variables, both static and dynamic. A complete Macro facility __ single_line, multi_line, even Function Macros. Print Preview. Auto_removal of "dead code". Threads with automatic THREADSAFE options. And much, much more. Chris Boss: What advantages do you feel PowerBASIC provides programmers? Bob Zale: PowerBASIC is a rock-solid performer. It works as advertised the first time and every time. It compiles up to 20,000,000 lines per minute, giving you ready-to-execute code in a single operation. There's a great Debugger, with single-step, profile, trace files, call stack display, and so much more. Standard tech support is offered electronically, and it's free for life. One last point: We prefer a broader user base with fair pricing to high prices for an elite few.

Thank you to Mr. Zale for granting me this interview. Visit the PowerBASIC site to check out all of the product offerings.

Disclosure: CBS is on the PowerBASIC customer list, though the writer was not aware of this fact when he conducted the interview.

About

Chris Boss is the owner of the Computer Workshop, a software development business.

19 comments
melmitts707
melmitts707

While the language has some interesting and impressive features, the company's poor business practice and ignoring all emails about those practices leave me with a very negative attitude and bank account.

kpowick
kpowick

Nothing against PB. I actually own the latest versions of both PBWin and PBCC and they're great. I just found the interview a little on the light side, coming off as more of an advert than anything else. When will PB produce 64-bit executables and how about Linux and/or OSX support?

MH-001
MH-001

I use PowerBasic in science and engineering work. Unlike with C you needn???t be a code-cracker to read Basic ??? and PowerBasic is just as fast as C. PB compiles your source code to an executable that runs by itself, no extra libraries are required. The Console version of PowerBasic makes it fairly easy to convert old DOS programs so they run directly under Windows.

anon5
anon5

I have programmed in Fortran, Pascal, MFC, Java, C, C++, Masm32... etc.. none of them touch PowerBASIC in terms of ease of use, speed & power.... A few years back, I got a call from someone asking me to help them build some high speed graphic routines... after hearing what they wanted... I replied that is easy and I started to explain what to do... they asked if I would send them a demo... So I asked who they were... and they said they were a satellite facility of Virginia Tech... So I asked them why don't they have the Computer Sciences Dept help them ?... they replied that they were the CS dept... and actually the CS Phd dept... and that they only know C++ .. and they can't do what they want easily with C++... hehe... I have never looked back.... further, PowerBASIC, along with Masm32 are the most knowledgeable and helpful programming forums on the internet...

noblebell
noblebell

I have been using PowerBASIC since its very early days, back when it was called TurboBASIC. I started with their DOS version. Loved it. Some people are still using apps I wrote several years ago with PB-DOS. The Windows version of PB is a force! I will not use much of anything else. PB is my first choice for everything I do now. Don't take my view. Give it a try. You WILL be amazed!

jebbasmith
jebbasmith

I've been using Powerbasic for many years. With the help of of the Powerbasic forums, I taught myself how to create in-house utilities for my company and applications that are used by federal, state, and local agencies. These applications help people understand the impacts that fresh water needs have on aquatic habitat. I don't profess to know everything about the Windows operating system, but then I don't need to, because with Powerbasic and other third party tools like EZGUI, the learning curve wasn't so steep. This is a serious platform made for a wide variety of skill levels.

wytcom
wytcom

I rely on PowerBasic to handle complex system and platform integration problems. I develop web applications for operational use within my company. But these applications cover such a wide range of technologies that often I need to go to PowerBasic to tie everything together. PB and its user community offers great power that is immediately accessible.

pb_er
pb_er

PB gives me the best balance of productivity and executable speed of any enviromment I've used. Re deployment it runs and deploys on everything from win95 to win7(64) out of the box. It has built-in high level features that don't compromise on performance but also lets you get down into asm and win32API.

brynhyffryd
brynhyffryd

I'm a freelance developer and software author. I use PowerBASIC, which I consider a real craftsman's tool for the current Windows platforms. Excellent support, both from PowerBASIC Inc and the user forums which it hosts. Knowing that the support is there lends itself to a fearless approach to development! The native IDE is very simple and bling-free - Eclipse it ain't. The compiler is very fast and has very few bugs. If you are evaluating it, spend an hour or two looking at the thousands of source code listings published in the forums, join the forums, ask questions...

CHKU
CHKU

100% true. I used a lot of compilers and a lot of languages during the last decades. When it comes to Windows programming, PowerBasic is always my first choice. For me 2 things are crucial: understanding my own code a year or two later and absolutely stable executables. In C I have to write tons of comments to remember what I have been doing. In PowerBasic I am happy with a line of comment here and there. And I have never been able to crash an EXE compiled with Powerbasic with perhaps only one exception: accessing arrays beyond its boundaries will result in a well managed shutdown rather than a crash. I you avoid this, you get unparalleld stable code. I really hope PowerBasic will be around for the rest of my lifetime.

volkerB
volkerB

I've a backround of more than 25 years of software development using Mainframe and Windows OS . In my opinion the fast, lean but mighty PowerBasic environment in combination with the (free) support of all the experts, who share their knowledge in the unique PowerBasic Forums is hard to beat in the industry concerning software development productivity. Try it!

bob
bob

Hi Mike-- It would be good to note that the general algorithm you describe applies to all native code compilers. They convert source code to machine code which can then be executed. Some do it as a multi-step process... Compile Basic source to ASM source, then compile the assembler source to object code, then finally link the object code to the final .EXE file. Often, this type of process involves the use of additional external programs like an assembler and a linker, so the Basic compiler has much less to do. Other native code compilers, like PowerBASIC, perform the entire process in a single step. Basic source is translated to machine code directly, at up to 20,000,000 lines of source per minute. That means a large application will usually compile in just a fraction of a second. That can make a big difference during debug sessions that we all have to endure. {smile} One other quick point... I think that direct comparison of the speed of executable code generated by PowerBASIC to any other Basic will prove to be a real eye-opener for you. Check it out! Best regards, Bob Zale PowerBASIC Inc.

ClaudioDz
ClaudioDz

I use Powerbasic for business software. It's perfect under every point of view (easy, fast, reliable), but the more remarkable feature for my purposes is that there is no need for installation; no runtime, no dependencies, no registry entry ... only stand-alone executables. One of my customers add a client to its intranet? All what's he need is to create a desktop icon pointing to my main application on the server and my software is running ... a lot of time saved!

mike.k5hum
mike.k5hum

Its true compiler languages have come a long way since the days of GeeWizz Basic but PowerBasic is just one of a few note worthy compilers. My personal preference is HotBasic which in my opinion is leagues ahead of most competitors. Why? because It takes Basic style syntax and converts it to ASM Mnemonics then links it. The result is like having written your application in assembler. IMHO, nothing results in smaller or faster executable code.

apotheon
apotheon

BSD Unix support. Actually, if they just took a POSIX-compliant approach to porting it to FreeBSD, they could probably get NetBSD, OpenBSD, PC-BSD, Dragonfly BSD, and MacOS X (almost) for free. Linux support would just be a tweak or two away.

mike.k5hum
mike.k5hum

Everyone is entitled to their opinions which carry more weight when justified by real world facts. So here is my challenge to anyone with an open mind. Visit the hotbasic.org web site. Try the free CMD version of HotBasic and the free online compile of the Windows version. If you don't find it easier to use, requiring less declarations, faster, producing smaller executables, stick with what you know. For the record I have no vested or economic interest in HotBasic other than using it to create my IM client/server, PopNote. TallyHo, Mike

bob
bob

Hi Mike-- I find your exuberance kind of exciting... so I had to give it a try! You said nothing is faster than HotBasic? What a challenge! Here's a simple program in HotBasic: $APPTYPE CONSOLE DIM u AS DOUBLE DIM i AS DOUBLE DIM a AS DOUBLE DIM b AS DOUBLE DIM c AS DOUBLE u=TIMER FOR i=1 TO 1000000000 b=i/2 a=i+1 c=a*(i MOD b) NEXT i PRINT STR$(TIMER-u) pause END On a slow machine, it took 84.3 seconds. Not bad, I guess. So, how about the equivalent PowerBASIC program? FUNCTION PBMAIN () DIM u AS DOUBLE DIM i AS DOUBLE DIM a AS DOUBLE DIM b AS DOUBLE DIM c AS DOUBLE u=TIMER FOR i=1 TO 1000000000 b=i/2 a=i+1 c=a*(i MOD b) NEXT i PRINT STR$(TIMER-u) END FUNCTION Same computer-- it took just 15.25 seconds with PowerBASIC. I guess that means PowerBASIC was 553% faster. What do you think? How about this program? $APPTYPE CONSOLE defdbl x, y, i defsng t x = 1 y = 1.000001 t = TIMER FOR i = 1 TO 100000000 x = x * y NEXT t = TIMER - t print STR$(t) PAUSE END Same slow machine -- 8.72 seconds. Not bad. The equivalent code in PowerBASIC? FUNCTION PBMAIN () AS LONG x## = 1 y## = 1.000001 t! = TIMER FOR i& = 1 TO 100000000 x## = x## * y## NEXT t! = TIMER - t! PRINT STR$(t!) END FUNCTION Note the PowerBASIC code was calculated using extended precision variables, considerably more complex than just doubles. What was the elapsed time? 0.17 seconds. That's 5129% faster than HotBasic. It might be a good idea to consider alternative compilers. Thanks for contributing here! Bob Zale PowerBASIC Inc.

Maj Hog
Maj Hog

Per notification from mike.k4hum, I might add several comments: 1. We find Mr. Zale saying "5129% faster than HotBasic", which, of course, is physically impossible. Other relevant points may be mentioned. In his PB version, i& is INTEGER, but he uses DOUBLE in the HB version, which is known to be slower. In general, he can cherry-pick whatever examples he wants, but the public record shows PB and HB are close in speed, as we posted for years (see www.hotbasic.org/hot/hotspeed.html). Also notice in the first example, Mr. Zale did not use HB's integer math which would have been faster. My impression is that Mr. Zale is not credible in these posts and PB users are too smart to be fooled by bogus speed data. 2. Everybody knows that migration between PB and HB has been 100% unidirectional -- namely from PB to HB, so PB users do know the truth and choose HB. 3. What everybody may not know is that Mr. Zale has repeatedly visited the HB site over the years, which suggests that he knows who the leader is. 4. I know of nobody who thinks that PB will ever catch up to HB. Cordially, Maj. Hog, Spokespig, www.hotbasic.org