Quip
Eine Programmiersprache
Quip hat das Ziel die erste Universelle Programmiersprache zu sein.
Dieses Ziel wird erreicht indem Quip keine Annahmen macht und Libraries soviel kontrolle wie möglich gibt, z.B. ist der Syntax erweiterbar und Compile-Time-Execution ist eines der Wichtigsten features
Die Sprache ist noch nicht nutzbar und in Planung + Entwicklung
Hier ist eine Übersicht von Features welche schon geplant sind
- Automatic Compile Time Memory Management
Es gibt 3 Hauptverfahren wie existierende Sprachen Memory Managen:- Garbage Collector - Langsamer, aber Sicher, Einfach und Automatisch (z.B. Python, Java, Javascript, Go)
- Manual Memory Management - Schnell, aber unsicher und schwer (z.B. C, C++, Zig)
- Ownership & Borrowing - Schnell und Sicher, aber limitierend und schwer zu lernen (Rust, C++ unique pointers)
- Async/Sync Identity
In Quip kann jede Async function auch Sync genutzt werden, z.B.:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
async fn test() -> _ { return 1 } fn main1() { let a = test() // async wird sync genutzt } async fn main2() { let a_future = test.async() let a = a_future.await // oder 1 Zeile let a = test.async().await }
- Auto-Locking
In Quip gibt es wie in Rust die möglichkeit manuell Locking via Mutex, RwLock und mehr zu machen, aber sonst macht Quip das automatisch, z.B.:In Rust würde das ein Error sein, in C++ würde das zu undefiniertem Verhalten führen (data-race), in Quip wird automatisch ein Atomic genutzt1 2 3 4 5 6 7
let a = 1 os.thread.spawn(|| { a += 2 }) println(a)
moeglich.dev - Jeremy Möglich - 2024
Source: GitHub