Skip to content

Commit

Permalink
Merge pull request #52 from lambdaclass/juanbono-patch-1
Browse files Browse the repository at this point in the history
Add similarities and differences from Rust section
  • Loading branch information
unbalancedparentheses authored Jan 5, 2024
2 parents 694d1bc + b0ccdc3 commit 798a342
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,14 @@ Programs are about transforming data into other forms of data. Code is about exp
#### Second level features
- Type inference only within blocks, not in function signatures
- Algebraic Data Types
- Typeclasses
- Traits and Generics
- REPL for connecting to running services and for quick iteration
- Compile to MLIR, WASM and generate C code
- Implemented in Rust

### Anti-features
- No hidden memory allocation
- No garbage collection or destructors
- No runtime running by default
- No hidden control flow or implicit function call
- No global state
- No exceptions
Expand All @@ -87,13 +86,24 @@ Programs are about transforming data into other forms of data. Code is about exp
- No variable shadowing
- No Java-style @Annotations
- No undefined behavior
- No marker traits like Send, Sync for concurrency. The runtime will take care of that.

### Features that are being debated
- Integer type that overflows to bignum
- Missing decimal FP. Needed for financial math
- Zig's comptime
- Check [Fearless FFI](https://verdagon.dev/blog/fearless-ffi)

### Differences with Rust

Concrete take many features from Rust like:
- Traits and generics
- Similar language but we aim to make it simpler

But we want to take a different path with respect to:
- Concurrency. We provide a default runtime with green threads. There is no support for low-level primitives like atomics, mutex and OS threads.
- There is no Sync and Send traits
- Simpler borrow checker
- No lifetimes

## Syntax

Expand Down

0 comments on commit 798a342

Please sign in to comment.