Rust (język programowania)

W tym artykule będziemy odkrywać fascynujący świat Rust (język programowania). Od swoich początków po wpływ na dzisiejsze społeczeństwo, Rust (język programowania) odegrał kluczową rolę w różnych aspektach życia codziennego. Na przestrzeni historii Rust (język programowania) ewoluował i dostosowywał się do zmieniających się potrzeb i wymagań społeczeństwa, stając się dziś tematem o ogromnym znaczeniu. W tym artykule będziemy starali się zrozumieć znaczenie i znaczenie Rust (język programowania), a także jego wpływ w różnych obszarach.

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

2010

Paradygmat

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

Aktualna wersja stabilna

1.77.2
(9 kwietnia 2024) [±]

Twórca

Graydon Hoare

Licencja

Apache 2.0, MIT

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. W 2010 Mozilla upubliczniła informację o języku. 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. 15 maja 2015 ukazała się wersja 1.0.

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

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

Rust wykorzystuje Cargo jako menadżer pakietów.

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

Cechy języka

Najważniejsze cechy języka Rust to:

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 opartego o działanie tych bibliotek.

Przypisy

  1. Copyright. GitHub. . (ang.).
  2. Michał Olber: Rust 0.1 – nowy język programowania od Fundacji Mozilla. OSWorld.pl, 2012-01-27. . (pol.).
  3. Chris Double: A Quick Look at the Rust Programming Language. Bluish Coder, 2011-03-31. . (ang.).
  4. Brian Anderson: The Rust compiler 0.1 is unleashed. Mozilla Mailing Lists, 2012-01-20. . (ang.).
  5. The Rust Core Team: Announcing Rust 1.0. The Rust Programming Language Blog, 2015-05-15. . (ang.).
  6. Rust Foundation , foundation.rust-lang.org (ang.).
  7. Mozilla Welcomes the Rust Foundation - The Mozilla Blog , web.archive.org, 8 lutego 2021 .
  8. Ron Amadeo, Google is now writing low-level Android code in Rust , Ars Technica, 7 kwietnia 2021 (ang.).
  9. Integrating Rust Into the Android Open Source Project , Google Online Security Blog (ang.).
  10. Users. The Rust Programming Language. . (ang.).
  11. Frequently Asked Questions – What examples are there of large Rust projects?. The Rust Programming Language. . . (ang.).
  12. 7 języków programowania, które warto poznać jeszcze w 2020 roku - cz. I (Rust i Go) , Blog IT-Leaders, 8 czerwca 2020 (pol.).
  13. Abel Avram, Interview on Rust, a Systems Programming Language Developed by Mozilla .
  14. Rust RAII .
  15. Unsafe in Rust: Syntactic Patterns , cs.stanford.edu .
  16. Vytautas Astrauskas i inni, 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 (ang.).

Linki zewnętrzne