Felix: A compiled (to C++) scripting language
felix-lang.org
felix-lang.org
Where are other biggish examples?
The "styles" page has the biggest bulk of interesting code that I've found in introductory pages: http://felix-lang.org/share/src/web/advocate/styles.fdoc
I guess one always wants to hear an elevator pitch of what a language does that is special relatively to relevant competition. What does Felix have that languages X and Y, its closest competitors, don't have?
Elixir is a good example: http://elixir-lang.org/
This seems like an odd choice when creating a new language. Most modern languages (C++11, Swift) have been introducing new declaration techniques or requiring all variables to be initialized at declaration, as this prevents a large class of bugs.
I don't know about Felix, but even the simplest C compilers I use are able to warn me when they can't verify that a variable is initialized before first use. It's not that hard. And, no, you don't have to solve the halting problem as long as you're clear what you promise to warn about. There are cases where you can trivially prove initialization or failure to initialize. Promise to get those cases right, and to warn on anything else.
import std.array : uninitializedArray;
int a; /+ defaults to '0' +/
int b = void; /+ not initialized +/
bool[5] c; /+ defaults to array of 'false' +/
auto d = uninitializedArray!(bool[])(5); /+ not initialized +/Using 'auto' in C++ forces out uninitialized variables as well.
perhaps in particular:
https://github.com/felix-lang/felix/tree/master/demos
The README and INSTALL files are also interesting; highlighting that Felix (claims to) produces very fast code/programs and that gcc 5.1 is recommended/needed to build.
Interesting looking language - I wonder how it ends up compared to Nim (with both the C and C++ backends). I suspect there's been more focus on performance on the Felix side - but it's hard to tell. The documentation section on garbage collection (for Felix) was blank.
OCaml 30.6% C 20.5% HTML 13.1% C++ 13.0% Python 11.2% TeX 6.7%
Wonder how that came about...
The feature list looks quite impressive:
* generates highly optimised ISO C++
* advanced resource manager organises compilation and linkage
* often runs faster than C
* glueless binding to C and C++ libraries
* lightweight threads with channels
* asynchronous network I/O
* thread safe garbage collection
* strictly statically typed
* overloading
* first order parametric polymorphism
* polymorphism with constraints
* multitype Haskell style type classes
* type classes with real semantic specification
* semantics can be checked by theorem provers
* strong functional subsystem
* pattern matching
* first class function, sum, and product types
* Tre based regexp processing built in
* bindings to Gnu GMP and Gnu GSL included
* user definabled and inline extensible grammar
* builds on all platforms
* runs on all platforms
* open source FFAU (free for any use) licence
The "license" doesn't even say if you can /modify/ the code. It just says you can /use/ it. You could get in some big trouble for modifying the code if the author decided to sue you over changing the code at all. In fact, it just says the software is free to use, not the code.
I might even go as far as saying that because just the software is free to use, it's no different than a proprietary program you can't modify at all, but you can see it's source.
lol. Felix has Sum types, meta types, pattern matching, algebric types, unions , sets, records, channels ... Go has what? a rigid type system and channels ...
I can't download pre-compiled tarballs from http://felix-lang.org/$/usr/local/lib/felix/tarballs
I followed the link Felix home -> Download -> Prebuilt Felix binaries.
I've looked at Rust (which I'm writing a transpiler for), Felix, Haxe, Nim, and Native Script. Are there others?