A
Android
Original poster
Взгляд разработчиков
C ++ - невероятно быстрый и эффективный язык программирования. Его универсальность не знает границ, а его зрелость гарантирует первоклассную поддержку и надежность. Код, разработанный на C ++, также чрезвычайно переносим, его поддерживают все основные операционные системы. Многие разработчики начинают свое программирование с языка, и это не случайно. Быть объектно-ориентированным означает, что он очень хорошо обучает таким понятиям, как классы, наследование, абстракция, инкапсуляция и полиморфизм. Его концепции и синтаксис можно найти в современных языках, таких как C #, Java и Rust. Он обеспечивает отличную основу, которая служит высокой скоростью на рампе для более популярных, простых в использовании и современных альтернатив.
Теперь не все так радужно. C ++ имеет очень крутую кривую обучения и требует от разработчиков применять лучшие практики к букве или риску, заканчивающемуся небезопасным и / или неэффективным кодом. Небольшая площадь стандартной библиотеки, хотя в большинстве случаев считается преимуществом, также увеличивает уровень сложности. Это означает, что успешное использование C ++ для создания полезных сложных библиотек и приложений может быть сложной задачей. С точки зрения управления памятью также предлагается очень мало, разработчики должны сделать это сами. Начинающие программисты могут в конечном итоге отладить ночные кошмары, так как их недостаток опыта приводит к повреждению памяти и другим неприятным ситуациям. Этот последний момент побудил многие компании исследовать быстродействующие, безопасные и не менее мощные альтернативы C ++. Для сегодняшнего Microsoft это означает Rust.
Большинство уязвимостей устранены и с назначенными CVE [Common Vulnerabilities and Exposures] вызваны тем, что разработчики непреднамеренно вставляют ошибки повреждения памяти в свои коды C и C ++.
Гэвин Томас, Microsoft Response Center:
Rust начался как личный проект сотрудника Mozilla по имени Грейдон Хоар, когда-то в 2006 году. Этот амбициозный проект находился в стадии разработки перед выпуском в течение почти десятилетия, и в конце концов запустил версию 1.0 в мае 2015 года. четыре года подряд, начиная с 2016 года, в опросе разработчиков Stack Overflow Developer покорил сердца орд разработчиков.
Тяжелая работа определенно окупилась. Конечным результатом является очень эффективный язык, который является характерно объектно-ориентированным. Тот факт, что он был спроектирован так, чтобы быть синтаксически похожим на C ++, упрощает доступ к нему. Но, в отличие от вышеупомянутого, он также был разработан, чтобы быть безопасным для памяти, в то же время используя форму управления памятью без явного использования сборки мусора.
Ужасная правда в том, что разработка программного обеспечения - это попытка проб и ошибок. Тем не менее, Rust сделал все возможное, чтобы помочь нам отладить наш код. Компилятор выдает чрезвычайно интуитивно понятные и удобные для пользователя сообщения об ошибках, а также отличные прямые ссылки на соответствующую документацию, помогающие устранять неполадки. Это означает, что, если проблема не очевидна, в большинстве случаев ответом является щелчок мышью. Мне редко приходилось запускать свой браузер, чтобы искать решения помимо того, что предлагает компилятор Rust с точки зрения объяснения и документации.
В Rust нет сборщика мусора, но в большинстве случаев он все еще выделяет и освобождает память. Он также спроектирован так, чтобы быть безопасным для памяти, в отличие от C ++, который очень легко позволяет вам столкнуться с проблемами с висящими указателями и скачками данных. В отличие от Rust использует концепции, которые помогут вам предотвратить и избежать таких проблем.
Есть много других факторов, которые отвлекли меня от C ++ и на Rust. Но, честно говоря, это не имеет ничего общего со всеми замечательными вещами, которые мы только что исследовали. Я приехал в Rust в путешествие, которое началось с WebAssembly. То, что началось с того, что я искал более эффективную альтернативу JavaScript для Интернета, превратилось в выяснение того, насколько мощным оказывается Rust. Из его бесшовного взаимодействия ...
Автоматически генерировать код связывания между API-интерфейсами Rust, WebAssembly и JavaScript. Воспользуйтесь преимуществами таких библиотек, как web-sys, которые предоставляют готовые привязки для всей веб-платформы.
Насколько быстра и предсказуема его производительность. Все в нашей жизни развивается. Наши смартфоны, наши автомобили, наша бытовая техника, наши собственные тела. C ++, оставаясь невероятно мощным, быстрым и универсальным, может довести нас так далеко. Нет ничего плохого в изучении альтернатив, особенно таких исключительных и таких же многообещающих, как Rust.