Hello world

( prev | next )
println$ "Hello world";

Felix is a highly performant, extensible, and safe programming language suitable for rapid development of software systems.

Felix transparently compiles programs down to C++ and then feeds them into a C++ compiler (e.g. g++, clang++, MSVC). The native C++ compiler does the hard work of low-level optimisation whilst Felix does high-level optimisations and type-checking. The C++ compiler allows Felix to reach fast speeds, but it also provides compatibility and easy interopability with existing C and C++ code bases. The resulting code is very fast, sometimes even faster than C/C++ alone. Context switching is achieved by a pointer swap, and state is maintained by a spaghetti stack.

Felix supports user defined macros (hygenic) and syntactic customizations. This extensibility allows a developer to write embedded domain specific sub-languages (eDSLs) with ease. These customizations can be applied locally in part of a program or as part of library to be used by others.

Felix's type system is similar to that of OCaml or Haskell, supporting typeclasses and discriminated unions but also adding proper sum types. It provides strong support for functional programming, whilst also supporting imperative programming. The type system is strong, strict, and includes first-order polymorphism at its core. Felix supports open overloading like C++, but only allows exact matches.

Deployments are flexible, you can distribute the source files and run them like a scripting language, or distribute them as a native binary. Regular expression support and other features provide string handling on par with Perl. Web programming is enabled by built-in async socket I/O combined with cooperatively multi-tasked fibres.



felix x.y released: download

about the release