Каталог статей
- Введение в RUST
- Как измерить качество языка?
- статический язык
- переводчик
- языковой таргетинг
- Репрезентативный проект
- Hello World
- перспективы РУСТ
Введение в RUST
RustЭто язык программирования, который учитывает безопасность памяти, высокую степень параллелизма и стабильную работу. Он имеет потрясающую скорость работы (даже больше, чем C/C++ в некоторых областях), может предотвратить ошибки при запуске и гарантировать безопасность потоков. Язык RUST позволяет каждому создавать надежное и эффективное программное обеспечение.
Как измерить качество языка?
В области программирования люди обычно судят о [хорошем или плохом] языке по следующим аспектам:
- представление
- производительность
- надежность
Производительность: RUST хорошо справляется с этими задачами, даже превосходя аналогичные слова. У RUST нет Runtime и GC, то есть у RUST нет времени выполнения и сборки мусора. Это делает его очень быстрым и эффективным с точки зрения памяти.
Производительность: я должен сказать, что документация RUST написана хорошо. Отличная документация и дружественные компиляторы, первоклассные менеджеры пакетов и инструменты сборки, точные подсказки об ошибках — все это подготовлено RUST для разработчиков, нам нужно только сосредоточиться на логике.
Надежность: компилятор RUST очень строг, он почти не допускает существования каких-либо неконтролируемых факторов. Он проверяет синтаксис, переменные, право собственности и т. д. во время компиляции, предотвращая сбой вашей программы на лету.
Надежность RUST действительно высока, если не сказать больше. Строгие компиляторы будут убиты в младенчестве из-за проблем.После компиляции ваша программа станет очень стабильной (сообщество обсуждало, что стабильность программы после компиляции составляет более 90%).
статический язык
RUST — статический язык, и это одна из причин, по которой он работает так быстро. До знакомства с RUST я был разработчиком на PYTHON. Больше всего в PYTHON критикуют за скорость, будь то WEB, сеть или выполнение программы, это заставляет людей грустить. Преимущества динамических языков — гибкость, краткость и достаточно быстрая скорость разработки. Преимуществом статических языков является скорость работы, ради которой мы должны пожертвовать скоростью разработки (когда вы с ней знакомы, скорость разработки ненамного хуже).
переводчик
В отличие от PYTHON, динамического языка, программы RUST должны быть скомпилированы перед запуском и могут быть запущены только после завершения компиляции. Компилятором RUST является LLVM (Low-Level Virtual Machine), а языком разработки, который также использует LLVM в качестве компилятора, является Swift.
языковой таргетинг
У каждого языка должна быть своя ниша, хотя конечный результат отличается от того, что предполагала команда разработчиков. В настоящее время PYTHON используется в различных областях Интернета, таких как поисковый робот, WEB, глубокое обучение, разработка программного обеспечения и т. д. Хотя в области WEB есть сильные противники, такие как JAVA, PHP и GO, многие разработчики все еще используют Django, Фляга и Торнадо.
Я профессиональный краулер-инженер, поэтому знаю больше о краулерах, у PYTHON почти нет конкурентов в краулерах, на втором месте в этой области должен быть JAVA, за ним следует язык GO. Краулеры изменчивы, и инженеры краулеров часто меняют свой код.С точки зрения эффективности разработки и времени разработки нет языка проще, чем PYTHON. Процесс сканирования краулером не гонится за сверхвысокой скоростью.Если она будет слишком быстрой, то это приведет к отказу в доступе к целевому веб-сайту (большой объем спам-трафика является неэтичным поведением).Если это повлияет на работу веб-сайта , он поставит себя на грань закона. Другое дело, что у PYTHON много библиотек, и многие вещи можно использовать под рукой, и вообще не нужно тратить время на сборку колес. В совокупности поле рептилий действительно больше подходит для PYTHON.
Из-за богатой экологии и минималистского стиля PYTHON это лучший выбор для глубокого обучения. PYTHON занимает большую часть глубокого обучения, от которого другим языкам сложно избавиться.
Сфера разработки программного обеспечения уже много лет занята C# и C++, а системный уровень — C и C++, а другие языки вообще не имеют возможности участвовать (по сравнению с C++ и C, GO PYTHON NODEJS JAVA Эти языки слишком слабы).
Что может РУСТ? Для чего он подходит?
Язык RUST ориентирован на C и C++, но также имеет возможность конкурировать с языком GO, а также имеет определенные возможности в области глубокого обучения и краулинга. RUST считается языком [системного уровня], который позволяет разрабатывать чрезвычайно стабильные и чрезвычайно быстрые проекты. Он может стать языком программирования системного уровня, потому что у него нет GC и Runtime, а его сверхстабильность зависит от владения.
Есть практические примеры, доказывающие, что RUST станет языком разработки операционной системы следующего поколения. Firefox использует его для записиRedoxUNIX-подобная операционная система. Интерфейс системы выглядит следующим образом:
C++ всегда был предпочтительным для игр и высокопроизводительного программного обеспечения, но многие разработчики сталкиваются с проблемами памяти (и C тоже, например, с оборванными указателями). Строгий компилятор RUST и хороший дизайн позволяют избежать этих проблем и не нарушают безопасность памяти. Более того, поскольку RUST, как и C++ и C, является языком программирования без GC и Runtime, а также является статическим языком, он может играть роль C и C++ и даже имеет некоторые преимущества.
В поле WEB язык GO теперь в каше. Это связано с его скоростью работы и эффективностью разработки — он имеет как скорость работы JAVA, так и эффективность разработки, сравнимую с PYTHON, а его вычислительная мощность в сценариях с высоким параллелизмом выше, чем у таких языков, как PYTHON. Сочетание этих факторов делает его лучшим выбором для веб-разработки сегодня. Скорость работы и высокие возможности одновременной обработки RUST будут только сильнее, чем у GO, но эффективность разработки не может быть гарантирована (синтаксис на самом деле в порядке, но из-за строгих требований компилятора эффективность разработки невысока). .Кто-нибудь заменил GO на RUST? Конечно есть, иначе я бы не поднимал эту тему, см.:
-
Команда TiDB использует RUST для создания продукта TiKV, и разработчики команды рассказали о выборе RUST и GO на конференции RUST. При рассмотрении комплексных факторов они, наконец, выбрали RUST.
-
Некоторые блокчейн-проекты перенесены/были перемещены из GO в RUST и ни в какие другие, чтобы быть в безопасности.
Репрезентативный проект
Трудно найти новые языки без репрезентативных проектов. Конечно, с такой большой компанией, как Google, все было бы совершенно по-другому (см. GO и Flutter). Но язык GO уже имеет в качестве доказательства достаточно сильные продукты, такие как Docker, Qiniu Cloud Storage, TiDB и Kubernetes.
RUST родился в Firefox и поддерживается разработчиками Firefox и сообществом RUST. В настоящее время у RUST нет таких популярных проектов, как Docker или Kubernetes, но RUST добился больших успехов в некоторых областях, таких как:
- Redox — UNIX-подобная операционная система.
- Servo — браузерный движок Firefox следующего поколения.
- ТиКВ - Распределенная система КВ.
И многие крупные компании пытаются внедрить RUST в производство. Я уверен, что RUST обязательно засияет в ближайшие несколько лет.
Hello World
Как упоминалось ранее, документация по RUST удобна, и мы можем узнать о RUST на примере.
Прежде чем мы начнем, нам нужно скачать и установить язык RUST. Согласно руководству по документации на официальном сайте (если вы не привыкли читать документы на английском языке, вы можете перейти на китайский сайт RUST, чтобы просмотретьруководство, ниже приведена установка в среде Linux, а установка среды Windows регулируется инструкциями из руководства), мы запускаем в терминале следующие команды:
curl https://sh.rustup.rs -sSf | sh
Это завершает загрузку RUST и устанавливает RUST. Это установит последнюю стабильную версию Rust. Во время процесса вам может быть предложено ввести пароль. Если установка прошла успешно, появится следующее:
Rust is installed now. Great!
Затем настройте переменные среды и добавьте в файл ~/.bash_profile следующее:
$ export PATH="$HOME/.cargo/bin:$PATH"
После сохранения конфигурации используйте команду, чтобы сделать ее немедленной эффективной:
$ source ~/.bashrc
Когда все готово, можно приступать к написанию кода. Создайте новый файл с именем hello.rs и напишите в него следующее:
fn main() {
println!("Hello, world!");
}
После того, как код написан, его необходимо скомпилировать, прежде чем его можно будет запустить. Выполните следующую команду в терминале:
$ rustc hello.rs
$ ./hello
Если вы видите вывод терминалаHello, world!
Это означает, что программа работает успешно.
Вы официально написали программу на Rust, становитесь программистом на Rust, добро пожаловать!
перспективы РУСТ
Мы видим много наворотов, они ненадежны и медленны. За прошедшие годы ни один язык не смог поколебать статус C/C++, а появление RUST привнесло в мир программирования новый кислород. Как разработчик, работающий с поисковыми роботами (с большим знакомством с технологиями), я думаю, что [быстрые] языки программирования — это тренд, а статические языки — будущее. Мне очень нравится PYTHON, его синтаксис лаконичен, а эффективность разработки очень высока. Но должен признать, что я от всего сердца надеюсь, что PYTHON станет быстрее, но происхождение динамического языка определяет верхний предел его скорости, поэтому я перейду на RUST. Язык GO очень хорош, и экология тоже очень хороша, но причина моего оптимизма в отношении RUST вместо GO заключается в следующем: RUST NO GC NO RUNTIME, SAFTY.
Это делает RUST языком управления молнией в будущем, особенно с появлением Redox, что делает меня более уверенным в будущем RUST.