4 ms·
Felix is to C++ what F# is to C# http://felix-lang.org/share/src/web/tut/tutorial.fdoc http://felix-lang.org/share/src/web/tut/tutorial.fdoc (I am not the autho
by srean 13y ago
Felix is to C++ what F# is to C# http://felix-lang.org/share/src/web/tut/tutorial.fdoc http://felix-lang.org/share/src/web/tut/tutorial.fdoc (I am not the author, just excited about this language) OCaML programmers will feel immediately at home.
It is a mature yet actively developed whole program optimized, strongly typed, polymorphic, ML like language that can interact effortlessly with C and C++ and has coroutines and threads baked in, although use of threads is somewhat discouraged. It has type-classes as well as modules. Functions written in it may be exported as a CPython module. This might be useful if one wants to gradually transition from a Python based src tree.
It uses a mix of lazy and eager evaluation for performance and compiles down to C++. Execution speed is comparable to hand written C++, mostly better. Its grammar is programmable in the sense that it is loaded as a library. So in the same way that languages may acquire libraries, Felix may acquire domain specific syntax.
It is also mostly a one man effort but with a feverish pace of development so it comes with its associated advantages and disadvantages.
Tooling info is here http://felix-lang.org/share/src/web/ref/tools.fdoc http://felix-lang.org/share/src/web/ref/tools.fdoc
The author likes to call it a scripting language but it really is a full-fledged statically compiled language with a single push button build-and-execute command. http://felix-lang.org/ http://felix-lang.org/ The "fastest" claim is a bit playful and tongue in cheek, but it is indeed remarkably fast.
- jeremyjh 13y agoHave you actually used Felix? I agree it's a neat language but it felt to me like I'd really have to come up to speed on C++ to make much use of it. It's "FFI" is basically embedded strings of C++ source.
- srean 13y agoYou can of course inline C++ snippets in Felix code as you mentioned, but that is not the only way to talk to C++. Felix allows you to create a Felix object from a C++ object (and the reverse) with minimal glue. Take a look here http://felix-lang.org/share/src/web/tut/cbind_index.fdoc http://felix-lang.org/share/src/web/tut/cbind_index.fdoc. With this two styles the boundary between Felix and C++ can be very fluid. It does not incur the typical efficiency hit of a dynamically loaded FFI, although it does allow dynamically loading shared libraries too. If you dont want to use C++ libraries and classes from Felix, you dont need to know C++ to use Felix.
- kenko 13y agoAFAICT you mention Felix whenever OCaml comes up, generally saying more or less the exact same thing each time.
- srean 13y agoAbsolutely correct, and for F# too. I do want to get the word out, it really needs some love and eyeballs, but perhaps I overdo it.