Technologia

Rust kopiuje C, C++, obala koronę Legacy

  • 17 stycznia, 2023
  • 5 min read
Rust kopiuje C, C++, obala koronę Legacy


C i C++ należą obecnie do najbardziej rozpowszechnionych języków programowania w branży oprogramowania, a ponad 6,3 miliona programistów używa tego języka do kodowania niemal wszystkiego. Teraz jest inny język, który okazał się godnym konkurentem dla C i C++; Rdza.

Opracowany przez pracownika Mozilla Research, Graysona Hoare’a, Rust rozwinął się w ciągu ostatnich 15 lat swojego istnienia. Od przejęcia przez gigantów technologicznych, takich jak AWS, Meta i Atlassian, po wspieranie ekosystemów Web3, takich jak Ethereum i Solana, Rust szybko staje się supergwiazdą w świecie programistów.

Co więcej, język ten był również wybierany jako najbardziej lubiany język programowania w ankiecie dla programistów Stack Overflow w ciągu ostatnich siedmiu lat. Ale co sprawia, że ​​ten język jest tak kochany i potężny i czy ma możliwość zastąpienia C?

Czytać: Czy powinniśmy nazwać Rusta nieudanym językiem programowania?

Wnuk C

Język zapożyczył najlepsze elementy z wielu języków programowania, takie jak łatwa w użyciu składnia C i C++ wraz z funkcjonalnym charakterem języków takich jak Haskell. To fragmentaryczne podejście zaowocowało tym, że Rust zebrał wiele ukochanych przez programistów funkcji, jednocześnie skupiając się na szybkim wykonaniu i bezpiecznym kodzie.

W poście na blogu ogłaszającym wydanie Rust 1.0 zespół powiedział: „[Rust’s] system typów. . . stanowi udoskonalenie i kodyfikację najlepszych praktyk wypracowanych przez pokolenia programistów C i C++”.

Warto przeczytać!  SpaceX zmienia separację stopni statku kosmicznego przed kolejnym startem

Pobierz naszą aplikację mobilną


Oprócz swojego dziedzictwa z innych języków, Rust ma pewne własne cechy zmieniające grę. Na przykład Rust ma szczegółowy dostęp do kodu niskiego poziomu, jednocześnie balansując na granicy między możliwościami a abstrakcją dzięki możliwościom wysokiego poziomu. Język oferuje również solidny optymalizator i wykorzystuje wiele abstrakcji o zerowych kosztach, aby skrócić czas działania.

Język został zbudowany od podstaw, aby umożliwić programowanie współbieżne, zabójczą funkcję, która sprawia, że ​​jest niezbędny w dziedzinie HPC. Rust jest również bardzo skoncentrowany na zmuszaniu programistów do tworzenia kodu bezpiecznego dla pamięci, ponieważ nie ma wbudowanego wyrzucania elementów bezużytecznych.

Zamiast tego program zachęca do technik pożyczania i pożyczania pamięci, wraz z jasno określonymi regułami określającymi, kiedy zmienna zostanie usunięta z pamięci. Koncentracja na bezpieczeństwie pamięci ogranicza liczbę błędów w produkcie końcowym, oszczędzając czas i zasoby, jeśli chodzi o wdrażanie.

Z drugiej strony C i C++ cierpią z powodu pełzania funkcji spowodowanego latami przypadkowych aktualizacji. W tych starych językach brakuje również funkcji, które większość programistów uważa za oczywiste we współczesnych językach, takich jak łatwa integracja bibliotek, wydajne techniki zarządzania pamięcią i sprawdzanie czasu wykonywania. Użytkownik Reddit, Matthieum, doskonale podsumowuje to w komentarzu, stwierdzając:

„C++ to bałagan. To nie jest niczyja wina, naprawdę, głównie historyczny wypadek, ale jest to coś, za co płacisz na co dzień. W C było za mało szaleństwa, więc twórcy C++ postanowili dodać trochę więcej. Czy mówiłem o bezpieczeństwie pamięci? Wyścigi danych? Nie. Naprawdę nie ma sensu. Aby ujarzmić C++, trzeba spojrzeć w otchłań”.

Brak wyrzucania elementów bezużytecznych w Rust nie tylko sprawia, że ​​programy działają szybciej, ale także czyni go realnym zamiennikiem C. Co więcej, jego charakter jako języka omijającego granicę między wysokim i niskim poziomem sprawia, że ​​dobrze pasuje do aplikacji które już używają C i C++.

Warto przeczytać!  Badacze Microsoftu twierdzą, że GPT-4 pokazuje „iskry” AGI

Czy C zostanie zdegradowany do przeszłości?

Rust ma wiele możliwości C i C++, wraz z podobną składnią. Co więcej, ze względu na samoistnie bezpieczny charakter języka, nawet nowi programiści mogą tworzyć złożony kod bez martwienia się o błędy powodujące uszkodzenie aplikacji. Oprócz tego Rust zawiera również „Cargo”, system kompilacji i menedżera pakietów, dzięki czemu importowanie kodu jest łatwe.

W ciągu ostatnich kilku lat giganci technologiczni również postanowili zintegrować Rust z wieloma swoimi ofertami. AWS FireCracker VMM jest całkowicie oparty na Rust, a wiele innych usług, takich jak S3, EC2, CloudFront i Route 53, używa Rust do wdrażania. Język został również wprowadzony do jądra Linuksa, podczas gdy Azure w dużej mierze przestawił się na używanie Rust nad C, powołując się na obawy dotyczące bezpieczeństwa.

Patrząc na możliwości Rusta, jest wysoce prawdopodobne, że ten język może w niedalekiej przyszłości zastąpić C. Społeczność Rust stworzyła również zasoby do przenoszenia kodu C/C++ do Rust, a inny członek stworzył Corrode, warstwę translacji między C i Rust.

Jednak, jak widać w przypadku starszych języków, takich jak Fortran i COBOL, branża ma dużą bezwładność, gdy odchodzi od starych systemów. Według ostatnich szacunków w środowisku produkcyjnym znajduje się około 10 miliardów wierszy kodu C++. Oznacza to, że istnieje równie silna siła przeciw przejściu na jakikolwiek język inny niż C++.

Warto przeczytać!  Zmień teraz to ustawienie X/Twitter, aby uniknąć niechcianych połączeń i chronić swój adres IP

Jednak przy wystarczającym rozmachu Rust może stać się status quo językiem programowania przyszłości, a C i C++ zostaną oddelegowane do ich prawowitej starszej pozycji.


Źródło