Phix is a user-friendly, free open source programming language that can be both self-hosted and interpreted or compiled. It features plain, easily understood error messages and requires no additional compilers or tools to operate. With 30MB size and over 500 demos, it emphasizes simplicity.
Phix implements automatic garbage collection so that even manually allocated raw memory can be easily taken care of. Additionally, parameters are passed by reference with copy-on-write semantics, which allows for the performance benefits of pass-by-reference alongside the behavior of pass-by-value. There are only five builtin data types, and the bundled GUI (based on IUP) and components such as ipc, json, curl, SQLite, zip, gmp, regular expressions, sockets, and unit testing are all included.
Phix comes with optional structs and classes for object orientated programming, while still supporting traditional imperative programming. You can interpret or compile your programs, and interpretation is quick because it builds the same machine code as compilation, and executes it directly in memory. Alongside this, Phix comes with both a source-level debugger with single-stepping, and an execution profiler.
Strings are fully mutable with variable length slice substitution, and sequences can grow and shrink at will with no manual housekeeping. Explicitly tagged ends, such as "if ... then ... end if", may be more verbose than braces, but they catch more errors and avoid problems such as the dangling else. Compiler and run-time errors are designed to be as human-readable as possible to make debugging as easy as possible.
Phix uses 1-based indexes to provide consistent and logical subscripting, along with negative subscripts that work from right to left. It is important to note that Phix does not support overloading, lambda expressions, closures, currying, first class environments, inverted syntax, and suchlike.
Despite not having support for some common features, Phix still boasts an impressive 1,277 completed rosettacode tasks, second only to Go. Phix is available for both Windows and Linux, in both 32 and 64 bit versions. For anyone looking for a programming language with a clear focus on simplicity and ease of use, Phix is definitely worth checking out.
Version 0.8.2: unit testing