Euphoria

The main page of http://www.rapideuphoria.com states that Euphoria is "a programming language that's powerful, easy to learn, and a lot more fun than other languages." It is an uncomplicated programming language, simpler than BASIC.

Euphoria is a simple, flexible, and easy-to-learn programming language. It lets you quickly and easily develop programs for DOS, Windows, Linux and FreeBSD. Euphoria was first released in 1993. Since then Rapid Deployment Software has been steadily improving it with the help of a growing number of enthusiastic users. Although Euphoria provides subscript checking, uninitialized-variable checking and numerous other run-time checks, it is extremely fast. People have used it to develop high-speed 32-bit DOS games, 32-bit Windows GUI programs, and Linux X Windows programs.

Euphoria is free, although you can get some advanced features by registering. Euphoria is written in C. The source code is available for just $49. You can enhance it, give your source enhancements back to RDS, or even sell your enhanced binary version.

Dynamic storage allocation is fundamental to Euphoria. Variables grow or shrink in size without the programmer having to worry about allocating and freeing chunks of memory. Elements of an array (Euphoria sequence) can be a dynamic mixture of different types and sizes of data.

Euphoria provides extensive run-time error checking for: out-of-bounds subscripts, uninitialized variables, bad parameter values for library routines, illegal value assigned to a variable, and many more. If something goes wrong you'll get a full error message, with a call traceback and a listing of variable values. With other languages you'll typically get protection faults with useless dumps of machine registers and addresses.

The Euphoria interpreter is more than 30 times faster than either Perl or Python, and it's considerably faster than all other interpreted languages, according to the "Great Computer Language Shootout" benchmark (see demo\bench\bench.doc). There's also a Euphoria To C Translator for more performance.

An integrated, full-screen source-level debugger/tracer and profiler are included.

The WIN32 implementation of Euphoria can access any WIN32 API routine, as well as C or Euphoria routines in .DLL files. A team of people has developed a Windows GUI library (Win32Lib), complete with a powerful Interactive Development Environment. You can design a user interface graphically, specify the Euphoria statements to be executed when someone clicks, and the IDE will create a complete Euphoria program for you. There are Windows Euphoria libraries for Internet access, 3-D games, and many other application areas.

The DOS32 implementation of Euphoria on MS-DOS contains a built-in graphics library. If necessary, you can access DOS software interrupts. You can call machine-code routines. You can even set up your own hardware interrupt handlers. Many high-speed action games, complete with Sound Blaster sound effects, have been developed 100% in Euphoria, without the need for any machine code.

The Linux and FreeBSD implementations of Euphoria let you access C routines and variables in shared libraries.