# Как Bux ще победи Rust, Nim и C > **Дата:** 2026-06-09 | **Версия:** 0.3.0 (selfhost) --- ## Пазарна позиция Всеки език заема ниша. Bux влиза **между тях** с уникална философия: ``` Скорост на писане (бързо → бавно): C ████████████████████ (няма абстракции, но бързо става) Nim ██████████████ (изразителен, GC) Bux ████████████████ (изразителен, без GC) Rust ████████ (borrow checker бави) Безопасност (ниска → висока): C ████ (ръчна, pointer-и) Nim ████████ (GC предпазва от leak, не от use-after-free) Bux ████████████ (опционален borrow checker) Rust ██████████████████ (пълен borrow checker) Производителност (бавно → бързо): Nim ████████████ (GC добавя overhead) Rust ██████████████████ (zero-cost abstractions) C ██████████████████ (близо до метала) Bux ██████████████████ (C transpiler → native) ``` --- ## Уникалното предимство: Gradual Ownership **Никой друг език не предлага това.** | Модел | Език | Как работи | |-------|------|------------| | Всичко непроверено | C, Zig | Бързо писане, бъгове в runtime | | Всичко проверено | Rust | Бавно писане, безопасно в compile-time | | **Опционална проверка** | **Bux** | **Бързо писане, проверка само на критичния код** | ### Синтаксис ```bux // Режим 1: Без проверки (като C/Nim) — за бързо прототипиране func QuickHack(arr: *int, len: int) { for i in 0..len { arr[i] = arr[i] * 2; // no bounds check, no borrow check } } // Режим 2: С проверки (като Rust) — за critical paths @[Checked] func SafeMerge(a: &[int], b: &[int]) -> Vec { // borrow checker проверява че a и b не се припокриват // bounds checking на всеки достъп // lifetime tracking гарантира че резултатът не надживява входовете } ``` ### Защо това печели | Програмист | Какво иска | Решение | |------------|------------|---------| | **C програмист** | "Не ми се занимава с borrow checker" | Пише без `@[Checked]`, получава C-скорост | | **Rust програмист** | "Искам гаранции за safety" | Добавя `@[Checked]` на критичните функции | | **Team lead** | "Искам баланс скорост/безопасност" | Prototype бързо, harden после | | **Startup** | "Трябва да shipping-нем вчера" | Без проверки за MVP, добавят се после | --- ## Вторични предимства ### 2. Compile-time функции (CTFE) ```bux // Nim има CTFE, Rust няма (само const fn с ограничения) const func Fib(n: int) -> int { if n <= 1 { return n; } return Fib(n-1) + Fib(n-2); } const FIB_40 = Fib(40); // изчислява се при компилация ``` **Предимство:** Предварително изчислени таблици, парсъри, валидации на compile-time, които Rust не може. ### 3. По-прост от Rust ```bux // Rust: трябват lifetime annotations fn longest<'a>(x: &'a str, y: &'a str) -> &'a str { ... } // Bux: без анотации в обикновен код func Longest(x: String, y: String) -> String { ... } // Само в @[Checked] зони се добавят при нужда ``` ### 4. По-бърза компилация от Rust ``` Rust (LLVM): 10-60 секунди за среден проект Bux (C): <1 секунда за среден проект (като Nim) ``` C backend → gcc/clang компилират C много по-бързо отколкото LLVM компилира Rust. ### 5. Algebraic типове (Nim ги няма нативно) ```bux // Bux: първокласни algebraic enums enum Result { Ok(int), Err(String) } let x = Ok(42); match x { Ok(v) => ..., Err(e) => ... } // Nim: трябват макроси или object variants ``` --- ## Пътна карта за победа | Фаза | Feature | Ефект | |------|---------|-------| | **8.1** | ✅ Error handling (`?`, `!`) | По-чисто от Nim | | **8.2** | ✅ `@[Checked]` borrow checker (basic) | **Уникално — това е оръжието** | | **8.3** | 🔄 Concurrency (tasks + channels) | Go-стил леки нишки | | **8.4** | ✅ CTFE (`const func`) | Nim-level метапрограмиране | | **8.5** | ⏳ Trait система | Rust-стил генерици | | **8.6** | ⏳ Макроси | Nim-стил метапрограмиране | | **8.7** | ✅ LSP сървър | IDE поддръжка | --- ## Target аудитория 1. **C програмисти** искащи по-добър tooling → Bux дава типове, генерици, pattern matching без GC 2. **Nim програмисти** искащи C-like синтаксис → Bux има същата скорост, по-познат syntax 3. **Rust програмисти** уморени от borrow checker → Bux дава safety само където трябва 4. **Нови програмисти** → Bux е по-прост от Rust, по-строг от Python --- ## Рискове | Риск | Вероятност | Митигация | |------|------------|-----------| | Borrow checker твърде сложен за имплементация | Средна | Започваме с basic: само `&T` и `&mut T`, без lifetimes | | Няма достатъчно ecosystem | Висока | Първо self-hosting, после пакети | | Няма corporate backing | Висока | Open-source community подход | | C backend ограничава производителността | Ниска | C компилаторите са 30+ години оптимизирани | --- ## Заключение **Bux не трябва да е "по-добър Rust" или "по-добър Nim".** Той трябва да е **единственият език с gradual safety** — бърз за писане като C, безопасен като Rust, но само където програмистът избере. Това е празна ниша на пазара. Никой не я запълва. Bux може да е първият.