Update README.md

This commit is contained in:
Sam Vervaeck 2020-06-02 16:58:43 +02:00 committed by GitHub
parent 1659d722cc
commit 4ab189aab7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,18 +1,19 @@
Bolt Bolt
==== ====
Bolt is a new programming language for rapidly building complex applications. Bolt is a new programming language in the making for rapidly building complex applications.
Bolt has an unique mix of features that allows you to write fully-fledged It Bolt makes writing web applications dead-simple, and will eventually also support mobile and desktop.
applications insanely fast.
- **Garbage collected** using state-of-the art garbage collectors where Bolt has an unique mix of features that allows you to write fully-fledged
possible, so you don't have to worry about memory leaks. applications insanely fast, while at the same time guaranteeing that your programs
do what they are supposed to do.
- **Garbage collected**, freeing you from worrying about memory management.
- **JSX support**, so you write your views in the syntax you're already - **JSX support**, so you write your views in the syntax you're already
familiar with. familiar with.
- **Advanced language feature**, such as _algebraic effects_, making things - **Lots of useful language features** such as match-expressions, tuples, macros, static type checking, automatic type inference, and much more to give you the best development experience.
like React's `useState` primitive objects in the language.
- **Cross-platform standard library**, allowing you to write your code for the - **Cross-platform standard library**, allowing you to write your code for the
web and the desktop at the same time. web platform and the native platform at the same time.
``` ```
fn fac(n) { fn fac(n) {
@ -22,11 +23,20 @@ fn fac(n) {
} }
} }
print(fac(5)) // 10 println!("The faculty of {} is {}", 5, fac(5));
``` ```
## FAQ ## FAQ
### Why yet another programming language?
Granted, there are _a lot_ of programming languages, but oddly enough I found myself
in the situation where I was still not completely satisfied. For example, Rust is a fantastic programming language,
but writing web applications in it feels a little counter-intuitive due to its manual memory management.
On the other hand, functional programming languages like Haskell and Idris look like they come straight out of the future, but sometimes have unpredictable run-time performance and force you to do weird things when all you want to do is mutate a variable. Bolt aims to solve these two issues, and to be a gate into more complex compilers. Who knows what the successor will look like?
More expressiveness, less boilerplate, and most of all more safety. Bolt is my first attempt at finding it.
### Why should I choose Bolt over JavaScript? ### Why should I choose Bolt over JavaScript?
Bolt was made to make writing user-interfaces dead-simple, while also making Bolt was made to make writing user-interfaces dead-simple, while also making
@ -56,8 +66,8 @@ long as the user does not notice it, it does not really matter.
## License ## License
Bolt itself is licensed under the GPL-3.0, because we put a lot of work in it Bolt itself is licensed under the GPL-3.0, because I put a lot of work in it
and we want the open-source nature of Bolt to be preserved. However, code that and I 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. 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 This program is free software: you can redistribute it and/or modify