Add README.md

This commit is contained in:
Sam Vervaeck 2020-02-26 19:07:07 +01:00
parent a1304e177d
commit 71093c6688

69
README.md Normal file
View file

@ -0,0 +1,69 @@
Bolt
====
Bolt is a new programming language for rapidly building complex applications.
Bolt has an unique mix of features that allows you to write fully-fledged
applications insanely fast.
- **Garbage collected** using state-of-the art garbage collectors where
possible, so you don't have to worry about memory leaks.
- **JSX support**, so you write your views in the syntax you're already
familiar with.
- **Advanced language feature**, such as _algebraic effects_, making things
like React's `useState` primitive objects in the language.
- **Cross-platform standard library**, allowing you to write your code for the
web and the desktop at the same time.
```
fn fac(n) {
match n {
0 => 1,
_ => fac(n-1),
}
}
print(fac(5)) // 10
```
## FAQ
### What made you write Bolt?
Because I was tired of writing applications in the horror that JavaScript
is. Moreover, I usually write these applications by myself, so I have to be
clever about how they will be implemented.
### Why should I choose Bolt over JavaScript?
Bolt was made to make writing user-interfaces dead-simple, while also making
sure the resulting code is really fast. You should choose Bolt if you care
about _correctness_, _performance_ and _scalability_.
- Correctness, because Bolt has a type system that is far superior to
JavaScript's. No more member accesses into `undefined` or other weird error
messages.
- Performance, because the language has been designed to leave room for a lot
of optimisations. The garbage collector is one of the few overheads that the
language requires.
- Scalability, because just like Rust, Bolt takes a _functional_ approach to
software design using type traits, favouring composition over inheritance.
## License
Bolt itself is licensed under the GPL-3.0, because we put a lot of work in it
and we want the open-source nature of Bolt to be preserved. However, code that
is compiled using the Bolt compiler may be licensed under any license you want.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.