This blog is dedicated to Fabula Programming System (FPS), an innovative suite of software tools designed for building sophisticated, maintainable, fast and reliable web applications.
FPS achieves its goals, first of all, by using for client-side programming a declarative language called Fabula.
As a gentle introduction to Fabula, let’s consider a classic example, “Hello, World!”
An applet is a core concept of Fabula. Applets are components from which applications are built.
A new version of Fabula Programming System (previously Fab Web Tools) has been released. FPS is a complete rework of FWT, now residing at gofabula.com. Among the new features:
- real-time database: whenever a project has been modified, or a new post was added on a forum, the changes are immediately reflected on all the computers connected to FPS; no need to refresh manually
- to login, one can use an existing account with Google, GitHub, Facebook or Twitter
- Fabula Debugger has been implemented
- projects are private by default, until they are explicitly published
- automatic HTML generation for running a project
- Project Builder enhancements: project dependencies, import code generation, revision rollback etc.
- multiple language changes: export specifications, simplified applet structure, etc.
- new GUI templates with better integration with Bootstrap
Fabula has a powerful, primarily static, type system, which combines elegance with practicality. It supports the following groups of data types:
- Numbers, including integers
- Time values
- Time intervals
- Composite objects (a.k.a. structures)
- Variant objects (a.k.a. algebraic data types)
- XML nodes
- Dynamic data
One of Fabula’s most interesting features is its computation (success/failure) logic. Due to this feature, Fabula parts with the traditional concept of ‘program exception’, as well as with the inevitable Boolean data type.
Our first example of a Fabula application is Calculator. This application simulates a simple calculator.