SourceForge Article

Lee from SourceForge sent a request to the Euphoria community on September 1, 2009. The official time frame is "whenever" but we should act quickly instead of slowly. A response by September 4, 2009 would be nice.

Lee's request:

I noticed a big jump in activity for OpenEuphoria in the statistics. We're looking for projects to highlight in our Community Blog ( Want to answer a few questions about your software so we can write about your project?

Lacking Time...

  • for those (like me) that lack the time to edit properly, add some ideas for other to work on

Give us the 10,000-foot overview of Euphoria.

Euphoria started its life in 1993 as a commercial programming language developed by Robert Craig of Rapid Deployment Software. It is a very fast interpreted general purpose programming language that also comes with a translator to C.

  • motivated to make the fastest interpreter possible, which continues with the current release
  • good for "rapid development"

Who ought to consider using it?

Euphoria is suited to both beginners and experienced programmers. The Euphoria community is very friendly to new users. There are many resources available to make learning Euphoria easy for those new to programming. Euphoria has also attracted professional programmers because of its powerful feature set, including a built-in interactive debugger.

  • ideal for learning, syntax is easy to follow, and lacks the "gotcha" features of most languages
  • ideal for complex projects, Euphoria doesn't get in the way of rapid development

What is it good for?

Euphoria is good for anything from simple command line tools to full-blown GUI applications, and because of its speed it can even be used to create action games. It is an excellent scripting language for web sites. It can be used to access standard shared libraries such as Windows DLLs and Linux SO. It can also create shared libraries.

GUI programs can make use of libraries such as wxWidgets and GTK+, enabling one code base to work across multiple platforms.

What makes it special?

Euphoria is based on a few simple fundamental concepts. For example it has only two basic data types - numbers and lists, from which data structures of any complexity can be built. And for performance reasons, numeric variables can be declared as integer-only if you want. Lists are variable length in which each element can be a number or a list, and each element can have its data type changed during run time.

Most of Euphoria is actually written in Euphoria. There is a small C-coded runtime portion, but all the front-end parsing, code generation and libraries are written in standard Euphoria.

Another important concept is ease-of-use. The coder never needs to worry about pointers or RAM addresses, and garbage collection is automatic.

  • data-types and data-structures are reduced to essentially to a one and many viewpoint.
  • When you are thinking of text, just read and write strings. When thinking of numbers, just read and write numbers. The elegance of Euphoria becomes clear when you realize that the same routines and techniques apply to sequences of any complexity.
  • Euphoria sequences and routines are generic. A sequence manipulation that works for numbers will often work on strings just as easily.
  • Operations can apply across an entire sequence. You can start to think in terms of parallel processing.

? {1, 2} + {3, 4} -- will display {4, 6}

Why did you make it open source?

With the v3.0.0 release in October of 2006, Euphoria started its second life as open source software because it needed a large boost in resources to take it to the next level. It is now maintained by a group of developers with the help and input of its users. Euphoria is on the verge of its largest update ever, 4.0.

How did doing so affect its development?

The Euphoria Programming language went from two developers to many. Historically, the language had evolved somewhat slowly. There were many users interested in lots of ways to enhance the language. In the last year and a half, the pace of development has really accelerated.

What's new in recent releases?

The upcoming 4.0 release (currently in beta) has many new features: additional supported platforms (OSX, OpenSolaris), new flow control structures, default arguments, built-in regular expressions and cross platform socket support, routine inlining, improved and expanded standard library, user defined preprocessors and namespace and scoping enhancements.

Is there any especially useful capability users might overlook?

Once the user has their application running correctly using the interpreter, they should really consider using the translator to convert it to C code which is then compiled into a normal binary file, and with a significant performance boost.

  • like writing a "C program" without coding in "C"
  • You can download Euphoria with a bundled C compiler; it's an effortless way to produce a compiled, finished product

the config file eu.cfg, for setting various runtime options.

What's a cool tip for people who use the software?

Check out the various ways that 'exit', 'continue', 'break' and 'retry' can be used inside flow control constructs.

  • you can read and write sequences (any complexity and size) to human readable files--make an "ini" file for your program without any translating or parsing
  • don't adapt types and structures to your program, just write the program the way it seems natural to you; Euphoria sequences can handle whatever you can imagine.
  • go ahead and copy/move huge sequences of data, in reality Euphoria's internal pointers mean that only essential bits of the sequence are actually copied. This is one of the secrets to Euphoria's speed.
  • Euphoria is consistent and generic. Techniques that work on strings will often apply to just numbers as well -- You have fewer things to learn when programming in Euphoria.

What's coming up in future versions?

Performance enhancements, optimization of generated code, exceptions, co-routines, nested functions, native threading, object orientation, better integration with external code, dynamic code evaluation, embedding euphoria as a scripting engine, improved Unicode support.

How frequently do you make releases?

The change from v3 to v4 is an huge one; the code base has more than doubled in size. So the gap in time since v3 has been unusually large too. Once v4 has been released, we expect that minor releases would be made every few months and major releases every 12 to 18 months.

What do you need help with?

Documentation of course. The development team has put together a good set of documentation and doc generating tools, but we admit that this is not our primary focus.

And what's the best way for people who want to help to get in touch?

Visit the OpenEuphoria web forum: (forum and wiki all written using Euphoria, of course). and IRC://

Anything else you'd like to ask or tell the community?

  • Euphoria is the language you will enjoy programming in.
  • Euphoria works with your favorite operating system.
  • Join us!

Is there any suggestions for improving

  • Speed it up. smile
  • bring back the compile farm.


Quick Links

User menu

Not signed in.

Misc Menu