Update README.md
This commit is contained in:
parent
2b2d40c4f5
commit
544e291347
1 changed files with 34 additions and 27 deletions
61
README.md
61
README.md
|
@ -5,17 +5,18 @@ Bolt
|
||||||
<img height="100" src="https://github.com/boltlang/Bolt/blob/master/logo.png?raw=true" />
|
<img height="100" src="https://github.com/boltlang/Bolt/blob/master/logo.png?raw=true" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
Bolt is a new programming language in the making for rapidly building complex web applications.
|
Bolt is a new programming language in the making for rapidly building complex
|
||||||
Bolt makes writing applications dead-simple, and will eventually also support mobile and desktop.
|
web applications. Bolt makes writing applications dead-simple. Eventually, it
|
||||||
|
will also support mobile and desktop platforms.
|
||||||
|
|
||||||
Bolt has an unique mix of features that allows you to write fully-fledged
|
Bolt has an unique mix of features that allows you to write fully-fledged
|
||||||
applications insanely fast, while at the same time guaranteeing that your programs
|
applications insanely fast, while at the same time guaranteeing that your
|
||||||
do what they are supposed to do.
|
programs do what they are supposed to do.
|
||||||
|
|
||||||
- **Garbage collected**, freeing you from worrying about memory management.
|
- **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.
|
||||||
- **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.
|
- **Lots of useful features** such as match-expressions, tuples, macros, static type checking, automatic type inference, and much more to give you the best development experience.
|
||||||
- **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 platform and the native platform at the same time.
|
web platform and the native platform at the same time.
|
||||||
|
|
||||||
|
@ -34,12 +35,15 @@ println!("The faculty of {} is {}", 5, fac(5));
|
||||||
|
|
||||||
### Why yet another programming language?
|
### Why yet another programming language?
|
||||||
|
|
||||||
Granted, there are _a lot_ of programming languages, but oddly enough I found myself
|
Granted, there are _a lot_ of programming languages, but oddly enough I found
|
||||||
in the situation where I was still not completely satisfied. For example, Rust is a fantastic programming language,
|
myself in the situation where I was still not completely satisfied. For
|
||||||
but writing web applications in it feels a little counter-intuitive due to its manual memory management.
|
example, Rust is a fantastic programming language, but writing web applications
|
||||||
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?
|
in it feels a little cumbersome due to its manual memory management. On the
|
||||||
|
other hand, functional programming languages like Haskell and Idris look like
|
||||||
More expressiveness, less boilerplate, and most of all more safety. Bolt is my first attempt at finding it.
|
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, while not giving in on
|
||||||
|
performance or correctness.
|
||||||
|
|
||||||
### Why should I choose Bolt over JavaScript?
|
### Why should I choose Bolt over JavaScript?
|
||||||
|
|
||||||
|
@ -58,10 +62,10 @@ about _correctness_, _performance_ and _scalability_.
|
||||||
|
|
||||||
### When will the first version be released?
|
### When will the first version be released?
|
||||||
|
|
||||||
We have set the 1st of August as a deadline for version 1.0.0, though there
|
There's a lot of work that still needs to be done, and we prefer to take our
|
||||||
are no guarantees. There's a lot of work that still needs to be done, and we
|
time and make the right decisions from the start rather than having to cope
|
||||||
prefer to take our time and make the right decisions from the start rather than
|
with fundamental design issues later on. Therefore, you'll probably have to
|
||||||
having to cope with fundamental design issues later on.
|
wait some time before you can actually preview this software.
|
||||||
|
|
||||||
You can have a look at the [first milestone](https://github.com/boltlang/Bolt/milestone/1)
|
You can have a look at the [first milestone](https://github.com/boltlang/Bolt/milestone/1)
|
||||||
for more information.
|
for more information.
|
||||||
|
@ -78,22 +82,25 @@ programmming language. Together we can move mountains!
|
||||||
### What languages inspired Bolt?
|
### What languages inspired Bolt?
|
||||||
|
|
||||||
Rust and Haskell are two of my favorite languages that you'll notice Bolt
|
Rust and Haskell are two of my favorite languages that you'll notice Bolt
|
||||||
shares a lot of its syntax and semantics with. Rust is the language that inspired Bolt's syntax,
|
shares a lot of its syntax and semantics with. Rust is the language that
|
||||||
while Haskell helped guide the type checker and standard library design.
|
inspired Bolt's syntax, while Haskell helped guide the type checker and
|
||||||
Traces of other languages can be found, too.
|
standard library design. Traces of other languages can be found, too. The
|
||||||
The macro system was inspired by Racket's macro system,
|
macro system was inspired by Racket's macro system, and the sucesses of
|
||||||
and the sucesses of garbage-collected languages like Go, JavaScript, Python and Java convinced me that
|
garbage-collected languages like Go, JavaScript, Python and Java convinced me
|
||||||
this feature is a must-have.
|
that this feature is a must-have.
|
||||||
|
|
||||||
All in all, Bolt is a mixture of many very different programming languages, and I believe this mixture makes it unique.
|
All in all, Bolt is a mixture of many very different programming languages, and
|
||||||
|
I believe this mixture makes it unique.
|
||||||
|
|
||||||
### What's the difference between Bolt and Rust?
|
### What's the difference between Bolt and Rust?
|
||||||
|
|
||||||
Right now, Bolt looks a lot like Rust. I think the developers of the Rust programming language did a great job at
|
Right now, Bolt looks a lot like Rust. I think the developers of the Rust
|
||||||
creating a language that is both pleasant to read and write and is open to a lot of optimisations. However,
|
programming language did a great job at creating a language that is both
|
||||||
Bolt does not come with the advanced borrow checker of the Rust language. It simply isn't needed, because Bolt uses
|
pleasant to read and write and is open to a lot of optimisations. However, Bolt
|
||||||
a garbage collector underneath, and hopefully will contain some optimisations in the future that can make your programs
|
does not come with the advanced borrow checker of the Rust language. It simply
|
||||||
as fast as Rust.
|
isn't needed, because Bolt uses a garbage collector underneath, and hopefully
|
||||||
|
will contain some optimisations in the future that can make your programs as
|
||||||
|
fast as Rust.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue