Fluent programming language
Disclaimer
Fluent is under development and is not ready for use yet. The website is gradually filled with content as the project moves forward.Fluent
A minimalistic language for scripting and metaprogramming
Highlights
Hackable
You are free to experiment with the language and change it to suit your needs. The core language is so small that you can write your own interpreter in a weekend.
Embeddable
Add Fluent scripting to your application. Write application specific APIs in native language and extend the Fluent interpreter with custom symbols.
Extensible
Many language features can be written in the core language. Language dialects can be shared as libraries.
Portable
Fluent is a high level interpreted language that is intended to be run on any platform.
Declarative
Write scalable and maintainable code in pure concatenative and functional style.
Dynamic
The language is dynamically typed but a static type checker is planned. You are encouraged to write your static analysis tools.
Grammatic
It is as easy to write a parser as writing a function in Fluent.
Homoiconic
One can easily write a Fluent interpreter in Fluent.
Well-defined
The language is built on clear concepts. It is easy to reason about Fluent programs both for humans and for machines.
Spec first
The primary goal of the Fluent project is to provide documentation and a recipe for writing interpreters.
Application ideas
Task automation
Automate repetitive tasks with a simple and powerful language.
Embedded scripting
Customize your application with a scripting language.
M2M communication
Fluent programs naturally communicate via text streams.
Portable logic
Write your application logic in Fluent and translate it to your implementation languages.
Sandboxing
General scripting languages are notoriously hard to sandbox. Fluent is designed with this kind of use in mind.
Persistent processes
Fluent programs can be paused and resumed. A paused program can be serialized to text and stored in a file or a database.
DSLs
Create domain-specific languages for your applications.