Table of content

What is fil?

The initial contributor of this project is Kevin Traini (me, I am currently typing those lines). The first idea come during my 2nd year in computer science studies. At this time I was learning many languages with several paradigm: mainly imperative, functional and object-oriented.

While learning OCaml to put in practice functional paradigm (and later in studies it was Haskell) I really liked the challenge of working with simple data-structures and functions. But the syntax of OCaml and Haskell is pretty restrictive and some things I was able to do in other languages was a real pity in functional.

Each language I learned have strong points I really liked and some not. It's from all of this that I decided to create my own languages with all the points I liked.

The speech at the start was pretty easy: a functional language with which I can manipulate object and keep a strong typing. In brief merging OCaml, Ada and Kotlin. With this idea I began to work with my favourite language of this time: C++.

After some years at developing pretty nothing like described in FDR 000. I choose to redefined completely the language without losing the first idea.

So, what is fil?

Fil (it means Fil Is a Language 🤘) is language belonging to functional paradigm.

In this language everything is an expression. Loops, conditions, functions, data structures, variable declaration are all expressions and returns a value. It's your choice to use this value or not.

What is the goal?

The goal is simply to be simple. You can write what you want in fil from a tiny cli to a complete software.

The project aims to provide to the developers all the tools needed to write code easily: a compiler with meaningful messages, a project manager to manage your dependencies, a complete standard library (you need something it is in it) and finally a package manager with a registry to let everyone share their projects.