From 71093c66881843fa74a8eb5e410c1f0bd66c014c Mon Sep 17 00:00:00 2001 From: Sam Vervaeck Date: Wed, 26 Feb 2020 19:07:07 +0100 Subject: [PATCH] Add README.md --- README.md | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 000000000..59dc4e5a6 --- /dev/null +++ b/README.md @@ -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 . +