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 a very-high-level programming language with several features that
set it apart from the crowd:
* Euphoria programs run on Windows, DOS, Linux, and FreeBSD.
* The language is flexible, powerful, and easy to learn.
* There is no waiting for compiles and links - just edit and run.
* You can create and distribute a royalty-free, stand-alone .exe file.
* 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
* 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
* 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). And if that isn't enough, there's
a Euphoria To C Translator that can boost your speed even more. Why
waste time debugging hand-coded C/C++, when Euphoria programs are so
much easier to develop?
* Euphoria programs are not constrained by any 640K or 64K memory
restrictions for which MS-DOS is infamous. The DOS32, WIN32, Linux and
FreeBSD versions of Euphoria let you use all of the megabytes of memory
on your system seamlessly, and if that isn't enough, a swap file on
disk will provide additional virtual memory.
* An integrated, easy-to-use, full-screen source-level debugger/tracer is
* Both an execution-count profiler, and a time profiler are available.
* There is a large and rapidly growing collection of excellent 3rd party
programs and libraries, most with full source code.
* RDS has developed an extremely flexible database system (EDS) that runs
identically on all Euphoria platforms.
* 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, for tasks ranging from
graphics, to X windows GUI programming, to Internet CGI programming.
The good news is, you'll be programming in Euphoria, not C.
* 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. See the Source License.