2019-02-07
- Kapan menggunakan Rust
- Kapan tidak menggunakan Rust
- Kapan menggunakan C / C ++
- Alasan yang salah untuk menggunakan C / C ++
- Lampiran: cerita saya dengan C / C ++
- Aplikasi: chorus
Ini adalah kertas posisi yang awalnya saya edarkan dalam komunitas firmware di X. Saya menerima permintaan untuk tautan publik, jadi saya membersihkan artikel tersebut dan mempostingnya di blog. Ini jelas pendapat pribadi saya. Harap baca semuanya sebelum mengirimi saya email marah.
TL; DR: C / C ++ memiliki kekurangan desain yang cukup dan alat pengembangan alternatif sudah dalam kondisi yang cukup baik, jadi saya tidak merekomendasikan menggunakan C / C ++ untuk pengembangan baru kecuali dalam keadaan khusus. Untuk situasi di mana Anda benar-benar membutuhkan kekuatan C / C ++, gunakan Rust sebagai gantinya . Dalam situasi lain, Anda tidak boleh menggunakan C / C ++ - gunakan yang lain.
Kapan menggunakan Rust
, , , , ( 30 ) C C++. , , (buffer overflows), (dangling pointers), (race conditions), (integer overflows) .
: , , C. , , .
C/C++, , :
- .
- .
- , .
- , .
( … , .)
Rust 2013 . 2018 ^1^ , , , . C++11 2011 , Rust , C++11 GCC . - .
2018? " " (, ), Rust (nightly Rust toolchain). 2018 .
. , , C++ Rust. , , . Rust , .
Rust
Rust , C/C++, Rust , , C/C++. , . 2019 ; . Rust , .
: (symbolic algebra evaluator), (concurrent persistent data structure) - , , , , - — , - , Rust. C++, , Rust, . Swift^2^, Go, Typescript, Python Kotlin/Java — .
, , Swift , , , .
C/C++
, C/C++:
, , - . , Arduino. .
. , , Ada, , C.
Rust. Rust , LLVM, , GCC. , , 68HC11 68000. (Rust MSP430, Cortex-M .., AVR ). , , . IBM System 390.
, / (toolchain) . , - Rust. , - GCC, CodeSourcery.
, , rustc , , rustc . Rustc , GCC. , . C++; Rust , GCC.
C++, C++ , API (,
extern "C", (pipes) RPC). C++ , . (Swift, , .) - "".
C/C++
, , .
C/C++ 30+ , /.
, . .
C C++ , C, , , , .
Rust , , Swift C++ (Clang). , C/C++.
C/C++, .
… . C/C++ , , , . , C++, , . , (UB). , Rust.
, C/C++ , , . , , .
Rust , .
C , , , Rust ( ). , , , Learning Rust With Allly Too Many Linked Lists.
C/C++ , , / SMP . Rust.
; , C++ , , Rust . — , .
: C/C++
, C++ , . , .
C 1993 , C++ 2002 , . , Google, Qt, Chrome, , . Loon, C++ ( 99); C++11 ( 2011 ), , . , X C++, C .
Loon " " C++ crt0.o Cortex-M, ; . C++, Rust- . C++ … , , . "" ().
: , , C++ , . C++ , .
:
. :-)
(Chris Palmer): State of Software Security 2019: ( )
C++ … , … , C++.
(Alex Gaynor) The Internet Has a Huge C/C++ Problem and Developers Don't Want to Deal With It ( Vice, ):
. , Windows Firefox . , , , . , , .
Manish Goregaokar Mozilla, ycombinator fuzzing Rust Firefox , C++ , :
, . Rust .fuzzing Rust firefox, … ( / «» ). , Gecko .
Copyright 2011-2019 Cliff L. Biffle — Contact