Free Compilers and Interpreters: My Reviews

(c) 2013-2014 by Barton Paul Levenson

Note: I only review free programming languages--I won't bother with expensive ones.


Color Code:

redAvoid this fiasco
blueOkay but not great
greenGood to have



Basic

Compiler or Interpreter Rating
Chipmunk Basic Good
Free Basic Okay
Jabaco Avoid
Just Basic Good
QB64 Good
ThinBasic Good
VBScript Okay
Visual Basic Express 2010 Good
XBasic Avoid


C and C Derivatives

Compiler or Interpreter Rating
Dev-C/C++ Good
LCC-Win Good
MinGW C Avoid
Orange C Compiler Avoid
Pelles C Compiler Avoid
Quincy Avoid
Turbo C 2.01 Good
Visual C# Express 2010 Good


Pascal

Compiler or Interpreter Rating
Dev-Pascal Avoid
Free Pascal Avoid
Turbo Pascal 5.5 Good


Miscellaneous Other Languages

Compiler or InterpreterLanguageRating
BPL BPL Avoid
Elena Elena Avoid
Genie Algol-68 Avoid
GNAT Ada Avoid
Java Java Avoid
Javascript Javascript Okay
Microfocus COBOL COBOL Okay
SheerPower SheerPower Avoid
Silverfrost F95 Personal Edition Fortran Good





Product:BPL
Nature:Interpreter
Origin:?
Language:Beginner's Programming Language

On 12/09/2013, I tried another programming language, "BPL." I couldn't resist my own initials. Turned out to be "Beginner's Programming Language," and the name is appropriate. Though advertised as a compiler, it's an interpreter, and while it does lots of neat things, getting math done with it is difficult. The author appears to be a bright child whose first language was not English. An impressive accomplishment, but not too useful to me personally. Uninstalled.





Product:Chipmunk Basic
Nature:Interpreter
Origin:David Gillespie and Ron Nicholson
Language:Basic

Just (12/17/2014) downloaded Chipmunk Basic for Windows--a Basic interpreter of the old school, where you need line numbers unless you load code from a file. I think this one used to be Mac only, but now there's a Windows version. And it works fine.

And the language is more sophisticated than I expected. In addition to the usual commands, you can have named subroutines (rather than "gosub," although the named ones run more slowly), they can return values (thus acting as named functions), and there are types and classes. That's right, classes, which you can add methods to. It has object-oriented programming available. And built-in matrix math. And graphics windows. You could write some pretty sophisticated programs with this little bugger. Thumbs up on this one.

Oh, I should add, Hello World works right the first time. Here's the complete code to that program in Chipmunk Basic:

print "Hello, World!"





Product:Dev-C/C++
Nature:Compiler
Origin:Bloodshed Software
Language:C and C++

I downloaded Dev-C++ a few days ago (11/25/2014 or so). Didn't expect much since Dev-Pascal was such a bust. But so far Dev-C/C++ is working just fine. I've had problems with it, but they're all due to my rustiness with the C++ language. Easily fixable. I'm giving this one thumbs up.





Product:Dev-Pascal
Nature:Compiler
Origin:Bloodshed Software
Language:Pascal

On 8/7/2013, I tried Bloodshed Software's Dev-Pascal. I couldn't get "Hello World" to run. First it demanded I select an icon for the program. Then I got "Error in resource file." What the hell is a resource file? And WHAT KIND of error, for gosh sakes? Uninstalled.





Product:Elena
Nature:Compiler
Origin:Alex Rakov
Language:Elena

on 12/07/2013, I downloaded a programming language I hadn't heard of before: "Elena." I couldn't get Hello World to run without errors I couldn't correct, even copying from their own example. Uninstalled.





Product:Free Basic
Nature:Compiler
Origin:The Free Basic Development Team
Language:Basic

This is a pretty good compiler. But text output can be buggy, and it's a bit verbose. GUI programs are hard to create, so it's best for console apps. I didn't keep it, but, as I say, it's not a bad compiler.


11/11/2013:

FreeBasic doesn't give a clue how to produce GUI apps, although it claims it can. The help can't find the help file no matter where I move it. Maybe this isn't such a great compiler after all.





Product:Free Pascal
Nature:Compiler
Origin:The Free Pascal Team
Language:Pascal

This compiler can't read strings and numbers from the same record in a file. Error trapping is difficult to make work right. Programs blow up before you can read the console window. Uninstalled.


10/31/2013:

Looking at Lazarus again [an IDE for Free Pascal]. So far so good. Maybe they've improved it since I checked last.





Product:Genie
Nature:Interpreter
Origin:Marcel van der Veer
Language:Algol-68

8/15/2013. Tried Algol-68 Genie. Wow, an Algol-68 interpreter! Ran it. Flash, gone. Tried again--flash, gone. Uninstalled. Total waste of time.





Product:GNAT
Nature:Compiler
Origin:USAF/NYU
Language:Ada

Downloaded GNAT 8/15/2013. Oh, goody, there's a 2013 edition! Thing takes up more than half a gigabyte. Try to run it--big complex IDE. Click on tutorial goes nowhere. Click on overview takes me to the web (ugh, they can't bother with their own help files). Click on information... file not found. I uninstalled it.

BTW, always run a couple of file and registry cleaners after installing or uninstalling software.





Product:Jabaco
Nature:Interpreter
Origin:Jabaco
Language:Basic

On 8/5/2013, I downloaded "Jabaco," which puts a VB6-like syntax over Java internals. Could I remember VB6 syntax? No. Could I interpret the arcane error messages? No. Was help available? Oh, sure. It took you to a web site with a forum, where you could search for something that might or might not have anything to do with your problem. Uninstalled.

I hate when a compiler sends you to the web for help. If you're too cheap to include your own help files, I don't want your damn compiler.





Product:Java
Nature:Interpreter
Origin:Sun Microsystems
Language:Java

On 10/29/2013, I downloaded Java version 7 release 45, and the Java SDK, and a Java IDE. It appeared, at first, to have many good points. Since there was a Java Virtual Machine that could be installed on Windows, Linux, or Mac OS, it would run on nearly any PC. But it soon proved far too complicated to learn easily. Notes on my progress, such as it was, follow. In brief: Don't even bother.


10/29/2013:

Learning Java. Apparently a Java app will run on a Win, Linux, or Mac PC, as long as the user has the appropriate Java virtual machine installed. This may be my language of choice for my projected small software business. I need some way to earn an income, and my writing sure isn't doing it. And I can't work a regular job as long as I'm a cripple who falls asleep repeatedly during the day, not to mention getting emergency calls from Mom at any time.


10/30/2013:

It's proving impossible just to get Java to respond to a button click. I try to add "this" as the button's actionListener. Can't do that, because main is a static method. So I have main call a non-static method called "ShowMainWindow." Can't do that, because a static method can't call a non-static method. So I eliminate "static" from main. Can't do that, because now the compiler says it can't find a main method. It's like it's deliberately making it impossible for me to do simple chores. I could do this in seconds in Visual Basic. BTW, examples of how to add an actionListener for a button, from the book I borrowed from Carnegie Library, and from the internet, DO NOT WORK in my program. Even copied verbatim.

Needless to say, I also tried adding actionListeners for the button as inner classes, and as anonymous inner classes in the .addActionListener method call. That didn't work either.

Had no idea this widely-used, platform-independent language was such a total verbose, confusing, difficult-to-learn pain in the ass.


04/28/2016:

Okay. I finally got a GUI program to run in Java. 39 lines of code, a class, three methods, four imported packages. Just to get a window to come up with one button. Click the button, and it shows another window with a message in it.

Dear God, the arcane, convoluted way I had to go about it just to make the stupid, annoying thing work.

A button or something that responds to a user action needs an "action listener" to handle the event. Try to assign the main program as an action listener, using the "this" keyword, and it won't let you--you can't use "this" in a "static context." The main method must be declared static. So what you've got to do is Instantiate a new instance of the class your main method appears in, and then run that. That becomes the action listener. Of course, you need yet another method (named "actionPerformed") to actually react to the button.

In Visual Basic I could have put this together in two minutes. In Java it took me hours, almost all trying to figure out the way around the compile problems. Dear God, whoever wrote this language was on drugs. I'm talking to YOU, Sun Microsystems. Java sucks. I'm learning it because I have to, but it SUCKS. Everybody clear on that?





Product:Javascript
Nature:Interpreter
Origin:Netscape
Language:Javascript

This thing runs in a browser, so you've got it whether you knew it or not. You put it in < script > tags in an HTML file. It's a powerful language, but it can't be compiled. The syntax is verbose.





Product:Just Basic
Nature:Interpreter
Origin:Shoptalk Systems
Language:Basic

This freeware version of the more powerful Liberty Basic is pretty good, but has one enormous problem--there's no way to require variable declaration. It's also sometimes hard to stop a running program without taking down the whole IDE. Nonetheless, this is a nice thing to have on hand as a super-calculator, and to test out algorithms. A keeper.


10/23/2013:

Granted, it's an interpreter, but there's a way to set up fake ".exe" files that, when clicked on, will run just the program you distribute, whether or not the recipient of the file has JustBasic. On a modern PC, a tiny Basic interpreter like Just Basic runs fast. Can't really tell it from a compiled program.

I did it with a simple test GUI program. It works.





Product:LCC-Win
Nature:Compiler
Origin:Chris Fraser and David Hanson
Language:C

On 8/7/2013 I downloaded lcc-win 32. LCC stands for "Local C Compiler" or "Little C Compiler." I'm happy to report that "Hello, World" compiles and runs with no problem. Cursor control is available for console apps. Products developed with it may not be sold, so it's useless for commercial development. Good for research, though. A keeper.





Product:Microfocus COBOL
Nature:Compiler
Origin:Microfocus
Language:COBOL

I've been looking everywhere for a Win 8 COBOL Compiler. Could not find a free one to save my life. Most of the traditional ones don't work in '8 or require tons of pre-existing software.

I finally found a good one. Microfocus COBOL personal edition has the scary message that it won't work with Visual Studio Express (the only free kind), but in fact if you don't have full-scale VS, it installs "Visual Studio Shell" for you. And it works. There are restrictions: The free version can't have more than 2200 lines of code in the Procedure Division. But it works. If you need to refresh your COBOL (and believe me, the jobs with it are still out there, and in great numbers), this thing is most helpful.

Here's the verbose minimal code for "Hello, World:"

       program-id. Program1 as "Hello.Program1".

       data division.
       working-storage section.
       77  reply pic X

       procedure division.
           display "Hello, World!"
           accept reply
           goback.
           
       end program Program1.





Product:MinGW C
Nature:Compiler
Origin:MinGW.org
Language:C

This thing has no text control for console apps, and the user community is hostile to anyone writing console apps. I uninstalled it.





Product:Orange C Compiler
Nature:Compiler
Origin:LadSoft
Language:C

On 8/4/2013, I tried the "Orange" C compiler from LadSoft. I couldn't even get "Hello World" to run, even though I cut and pasted the code from their own example. The code looks right, but they've got an error in a link to a library somewhere--which is NOT MY PROBLEM. So I uninstalled the whole thing. I'll be damned if I'll waste time on a development environment that can't run a simple program right off the bat.





Product:Pelles C Compiler
Nature:Compiler
Origin:Pelle Orinius
Language:C

On 12/05/2013, I downloaded and tested the Pelles C compiler (probably meant to read "Pelle's C," but they forgot the apostrophe). Same story as with Quincy--"Hello, World" compiles okay, but when I try to run it, Avast! tags it as a virus. I'm thinking this is a problem with antivirus software, not with C compilers--but so far, I have only seen it happen to C compilers.





Product:QB64
Nature:Compiler
Origin:atomita
Language:Basic

I tried this one for the second time on 8/1/2013. QB64 was a joke when it first came out--any program you tried to run might blow up, depending on how your PC was configured. But there's a new version out now, and I have to say, it works just as advertised--runs programs in the old QuickBasic syntax, which it translates to C++ and compiles to native code (invisibly to the user). It's been beefed up with a number of commands and functions not originally found in QB. You can get a copy here:

QB64 download link

They have versions for Windows, Linux, Mac OS, Android (!), and their own Cloud computing interface. The download is free and it comes with a rather primitive console-style IDE, but I find I can turn out complex programs with it fairly quickly. Purely procedural--no object-oriented extensions. But it works, and it works well.





Product:Quincy
Nature:Compiler
Origin:Al Stevens, for Dr. Dobb's Journal
Language:C

On 8/5/2013 I downloaded Quincy, an IDE with a C compiler. It compiles "Hello, World" okay. Then AVG blocks it, saying it's the Evo-Gen virus. *sigh* I uninstalled it.





Product:SheerPower
Nature:Interpreter
Origin:SheerPower
Language:SheerPower

On 8/5/2013, I tried a Basic-like interpreted language called "SheerPower." It turns out not to have real numbers, just its own version of the "decimal" type. I uninstalled it as soon as I found out. Can't get scientific programming done that way.





Product:Silverfrost F95 Personal Edition
Nature:Compiler
Origin:Silverfrost, Inc.
Language:Fortran

With its Plato IDE, this is a nice, powerful Fortran compiler. There's no cursor control in text mode, but you can write your own with API calls (see my "Useful Routines" page). The user community is helpful and friendly. Definitely a keeper.





Product:ThinBasic
Nature:Interpreter
Origin:Eros Olmi and Roberto Biancchi
Language:Basic

8/15/2013. Downloaded the ThinBasic interpreter. Hello World works right, right off the bat. Here's the full code:

Uses "Console"
Console_Write("Hello, World!")
Console_WaitKey

A little verbose, but at least it works. I'll post more about this as I learn to use it.


10/31/2013:

ThinBasic appears to do GUI as well as console. No problem getting a button to respond, either.


11/05/2013:

I was worried I might have to ditch ThinBasic, since it's basically a scripting language, thus requiring a copy of ThinBasic to run. No. It turns out you can disguise the run time and create a "bundle" to run on a user's machine without their having to install ThinBasic. More and more it's looking like this is the language for me.

The GUI interface does require some programming, including things like callback functions. But it almost writes them for you, providing a skeleton you just fill in with the appropriate actions. Very RAD-like! I like this language more the more I use it.


11/11/2013:

Well, here's a REALLY bad drawback to thinBasic, which I had almost settled on as my language of choice. You can't assign a constant with exponential notation. I tried

%X = 6.022E+26
%X = 6.022D+26
%X = 6.022e+26
%X = 6.022d+26

%X = 6.022E26
%X = 6.022D26
%X = 6.022e26
%X = 6.022d26

%X = 6.022 * 10^26
%X = VAL("6.022E+26")

The first eight gave errors. The last two gave wrong values ("0").

I can get around this by using variables instead of constants, but this is awkward, uncomfortable, and programmer-hostile. Looking for another language AGAIN. Damn it.





Product:Turbo C 2.01
Nature:Compiler
Origin:Borland
Language:C

On 12/28/2013, I downloaded Borland Turbo C 2.01 from Borland's antique software site. No trouble installing it whatsoever. "Hello World" compiles and runs fine right off the bat. Here's the source code:

#include <stdlib.h>
#include <stdio.h>

/* main program starts here */
void main()
{
    int c;

    printf("Hello, World!\n");
    c = getchar();
} /* main */

This one's a keeper, all right.





Product:Turbo Pascal 5.5
Nature:Compiler
Origin:Borland
Language:Pascal

On 12/05/2013, I downloaded the once-coveted 1989 product, Borland Turbo Pascal 5.5, for free (see The Free Country's list of free Pascal compilers). After some minor trouble, I got it set up. The "unpack" program the install.exe uses to extract files reports that some won't unpack. I just chose S (skip) for all of those. Then I wrote a quick "Hello, World" program:

Program Hello;
var
    x: char;
begin
    writeln('Hello, World!');
    readln(x)
end.

Which it compiles and runs just fine. Hmm. So far, so good. :)





Product:VBScript
Nature:Interpreter
Origin:Microsoft
Language:Basic

Like Javascript, this runs in a browser, so you've got it whether you knew it or not. You put it in < script > tags in an HTML file. It's a powerful language, but can't be compiled.





Product:Visual Basic Express 2010
Nature:Compiler
Origin:Microsoft
Language:Basic

As I say on a page about just that, this thing rocks. Powerful IDE, great GUI as well as console apps, creates native code or .NET apps. Lots of clever OO syntax. The major drawback is that it's hard to install the help locally. But this one's a keeper.





Product:Visual C# Express 2010
Nature:Compiler
Origin:Microsoft
Language:C#

This is a pretty nice language. I don't like the fact that there's no way to do global variables--everything must be passed as parameters. On the plus side, it's type safe (i.e., like C but with much less chance of corrupting your operating system), and has lots of clever OO syntax. Major drawback: Hard to install help locally. A keeper.





Product:XBasic
Nature:Compiler
Origin:Max Reason
Language:Basic

I downloaded XBasic yesterday (11/25/2014). It's supposed to be a big, sophisticated project, powerful compiler, all kinds of commands. I programmed a simple "Hello, World" program. I got back errors on three lines. Each error message was the same: "Syntax error."

I found that somewhat less than helpful. So I deleted the whole useless, stupid, user-hostile thing.





Page created:08/09/2013
Last modified:  06/24/2016
Author:BPL