Files
bux-lang/docs/STRATEGY.md
T

7.1 KiB
Raw Blame History

Как Bux ще победи Rust, Nim и C

Дата: 2026-05-31 | Версия: 0.2.0 (bootstrap)


Пазарна позиция

Всеки език заема ниша. 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 Бързо писане, проверка само на критичния код

Синтаксис

// Режим 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<int> {
    // 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)

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

// 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: първокласни 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 Уникално — това е оръжието
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 може да е първият.