Najlepsze pytania
Chronologia
Czat
Perspektywa

Rust (język programowania)

język programowania Z Wikipedii, wolnej encyklopedii

Rust (język programowania)
Remove ads

Rustkompilowany język programowania ogólnego przeznaczenia. Stworzony z myślą o „bezpieczeństwie, współbieżności i praktyczności”.

Szybkie fakty Pojawienie się, Paradygmat ...
Remove ads

Historia

Język zaprojektował Graydon Hoare w 2006 roku, w 2009 projekt został przyjęty pod skrzydła Mozilla Foundation[2]. W 2010 Mozilla upubliczniła informację o języku[3]. W 2011 roku kompilator języka, znany jako rustc, został z powodzeniem skompilowany przez samego siebie.

Pierwsza numerowana wersja alfa została wydana w 2012 roku[4]. 15 maja 2015 ukazała się wersja 1.0[5].

8 lutego 2021 pięć firm (Mozilla, AWS, Google, Microsoft i Huawei) ogłosiły utworzenie Fundacji Rust[6][7].

6 kwietnia 2021 Google ogłosił wsparcie dla języka Rust w ramach Android Open Source Project jako alternatywę dla języków C/C++[8][9].

W grudniu 2022 język Rust uzyskał wsparcie w rozwoju jądra Linuxa[10].

Rust wykorzystuje Cargo jako menadżer pakietów[11].

Wiele organizacji wykorzystuje ten język programowania w zastosowaniach produkcyjnych[12]. Obecnie[kiedy?] dwoma największymi otwartymi projektami korzystającymi z języka Rust są: Servo oraz kompilator Rusta[13].

Remove ads

Cechy języka

Najważniejsze cechy języka Rust to[14][15]:

Przykłady

Hello world:

fn main() {
    println!("Hello, world!");
}

Fizz buzz:

fn main() {
    let max = 101;
    for i in 1..max {
        if i % 15 == 0 {
            println!("{}", "FizzBuzz")
        } else if i % 5 == 0 {
            println!("{}", "Buzz")
        } else if i % 3 == 0 {
            println!("{}", "Fizz")
        } else {
            println!("{}", i)
        }
    }
}

ROT13:

fn rot13(string: String) -> String {
    let mut bytes: Vec<u8> = string.into();
    for byte in &mut bytes {
        match *byte {
            b'a'...b'm' | b'A'...b'M' => *byte += 13,
            b'n'...b'z' | b'N'...b'Z' => *byte -= 13,
            _ => {}, //nic nie rób
        }
    }
    String::from_utf8(bytes).unwrap()
}

fn main() {
    let a = rot13("abc".to_owned());
    assert_eq!(a, "nop");
}

Krytyka

Rust, a właściwie stworzona wokół niego wspólnota jest często krytykowana za nieprzestrzeganie własnych założeń. Opiera się to na fakcie, że podstawową funkcją tego języka jest bezpieczeństwo, czyli m.in. uniknięcie niebezpieczeństw związanych z zarządzaniem pamięcią programu, ale ogromna ilość narzędzi deweloperskich oraz bibliotek została zbudowana, ignorując to założenie i używając bloku unsafe. Przez to istnieje brak gwarancji poprawności kodu, a zarazem kodu jakiegokolwiek programu bazującego na tych bibliotekach[17][18].

Remove ads

Przypisy

Loading content...

Linki zewnętrzne

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads