A programming language for rapid application development
Find a file
2020-05-28 14:08:49 +02:00
.vscode Fix issue in launch.json 2020-05-27 17:18:05 +02:00
scripts Add old PEGJS grammar as deprecated reference material 2020-05-09 16:08:47 +02:00
src Small fixes and major enhancements to TypeChecker 2020-05-28 14:08:49 +02:00
stdlib Small fixes and major enhancements to TypeChecker 2020-05-28 14:08:49 +02:00
test Add first draft of Parser and Expander 2020-02-25 12:26:21 +01:00
types Add declarations for the debug()-helper 2020-05-09 19:55:44 +02:00
.gitignore Add missing development files 2020-05-10 11:58:39 +02:00
COPYING Add GPL-3.0 license text 2020-02-26 20:39:47 +01:00
Makefile Small fixes and major enhancements to TypeChecker 2020-05-28 14:08:49 +02:00
package-lock.json Add initial support for packages and imports 2020-05-25 11:29:51 +02:00
package.json Add initial support for packages and imports 2020-05-25 11:29:51 +02:00
README.md Update wording in README.md 2020-05-10 12:03:29 +02:00
tsconfig.json Update tsconfig.json 2020-05-23 15:04:51 +02:00

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

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.

What languages inspired Bolt?

Rust and Haskell are two of my favorite languages that you'll notice Bolt shares a lot of its syntax and semantics with.

What's the difference between Bolt and Rust?

I really like Rust, but if I just care about writing an application I believe Rust's memory model with its borrow checker is overkill. Having a garbage collector might result in a performance penalty, but I believe that as long as the user does not notice it, it does not really matter.

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/>.