Share to: share facebook share twitter share wa share telegram print page

Rust (język programowania)

Rust
Logo języka Rust
Logo języka
Pojawienie się

2010

Paradygmat

wieloparadygmatowy (obiektowy, imperatywny, funkcyjny, strukturalny, współbieżny)

Aktualna wersja stabilna

1.89.0
(7 sierpnia 2025) [±]

Twórca

Graydon Hoare

Licencja

Apache 2.0, MIT[1]

Platforma sprzętowa

wieloplatformowy

Platforma systemowa

wieloplatformowy

Strona internetowa

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

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].

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].

Przypisy

  1. Copyright. GitHub. [dostęp 2018-05-31]. (ang.).
  2. Michał Olber: Rust 0.1 – nowy język programowania od Fundacji Mozilla. OSWorld.pl, 2012-01-27. [dostęp 2018-12-08]. (pol.).
  3. Chris Double: A Quick Look at the Rust Programming Language. Bluish Coder, 2011-03-31. [dostęp 2017-02-05]. (ang.).
  4. Brian Anderson: The Rust compiler 0.1 is unleashed. Mozilla Mailing Lists, 2012-01-20. [dostęp 2017-02-05]. (ang.).
  5. The Rust Core Team: Announcing Rust 1.0. The Rust Programming Language Blog, 2015-05-15. [dostęp 2019-07-11]. (ang.).
  6. Rust Foundation [online], foundation.rust-lang.org [dostęp 2021-08-20] (ang.).
  7. Mozilla Welcomes the Rust Foundation - The Mozilla Blog [online], web.archive.org, 8 lutego 2021 [dostęp 2021-08-20] [zarchiwizowane z adresu 2021-02-08].
  8. Ron Amadeo, Google is now writing low-level Android code in Rust [online], Ars Technica, 7 kwietnia 2021 [dostęp 2021-08-20] (ang.).
  9. Integrating Rust Into the Android Open Source Project [online], Google Online Security Blog [dostęp 2021-08-20] (ang.).
  10. Linux 6.1 Officially Adds Support for Rust in the Kernel [online], InfoQ [dostęp 2024-10-26] (ang.).
  11. Introduction - The Cargo Book [online], doc.rust-lang.org [dostęp 2024-06-08].
  12. Users. The Rust Programming Language. [dostęp 2018-12-08]. (ang.).
  13. Frequently Asked Questions – What examples are there of large Rust projects?. The Rust Programming Language. [dostęp 2018-12-08]. [zarchiwizowane z tego adresu (2018-11-19)]. (ang.).
  14. 7 języków programowania, które warto poznać jeszcze w 2020 roku - cz. I (Rust i Go) [online], Blog IT-Leaders, 8 czerwca 2020 [dostęp 2021-09-02] (pol.).
  15. Abel Avram, Interview on Rust, a Systems Programming Language Developed by Mozilla [online] [zarchiwizowane z adresu 2013-07-24].
  16. Rust RAII [online] [zarchiwizowane z adresu 2019-04-21].
  17. Unsafe in Rust: Syntactic Patterns [online], cs.stanford.edu [dostęp 2022-11-29].
  18. Vytautas Astrauskas, Christoph Matheja, Federico Poli, Peter Müller, Alexander J. Summers, How do programmers use unsafe rust?, „Proceedings of the ACM on Programming Languages”, 4 (OOPSLA), 2020, s. 1–27, DOI10.1145/3428204, ISSN 2475-1421 [dostęp 2022-11-29] (ang.).

Linki zewnętrzne

Kembali kehalaman sebelumnya