"Rust minangka masa depan pemrograman sistem, C minangka assembler anyar" - pidato dening salah sawijining insinyur terkemuka Intel

Ing Open Source Technology Summi (OSTS) anyar Josh Triplett, insinyur senior ing Intel, ngandika perusahaan sing kasengsem ing Rust tekan "keseimbangan" karo basa C sing isih ndominasi sistem lan pembangunan tingkat kurang ing mangsa cedhak. Ing wicara Ing judhul "Intel lan Rust: Masa Depan Pemrograman Sistem," dheweke uga ngomong babagan sejarah pemrograman sistem, kepiye C dadi basa pemrograman sistem standar, fitur apa Rust menehi kauntungan tinimbang C, lan kepiye carane bisa rampung. ngganti C ing lapangan program iki.

"Rust minangka masa depan pemrograman sistem, C minangka assembler anyar" - pidato dening salah sawijining insinyur terkemuka Intel

Pemrograman sistem yaiku pangembangan lan manajemen piranti lunak sing dadi platform kanggo nggawe aplikasi aplikasi, njamin sing terakhir sesambungan karo prosesor, RAM, piranti input / output lan peralatan jaringan. Piranti lunak sistem nggawe abstraksi khusus ing wangun antarmuka sing mbantu nggawe piranti lunak aplikasi tanpa nliti rincian babagan cara kerja hardware kasebut.

Triplett dhewe nemtokake pemrograman sistem minangka "apa wae sing dudu aplikasi." Iki kalebu kaya BIOS, perangkat kukuh, bootloader lan kernel sistem operasi, macem-macem jinis kode tingkat rendah sing dipasang, lan implementasi mesin virtual. Sing nggumunake, Triplett percaya yen browser web uga minangka piranti lunak sistem, amarga browser wis suwe dadi luwih saka "mung program", dadi "platform kanggo situs web lan aplikasi web" mandiri.

Ing jaman biyen, umume program sistem, kalebu BIOS, bootloader lan perangkat kukuh, ditulis nganggo basa perakitan. Ing taun 1960-an, eksperimen wiwit nyedhiyakake dhukungan hardware kanggo basa tingkat dhuwur, sing nyebabake nggawe basa kayata PL/S, BLISS, BCPL, lan ALGOL 68.

Banjur, ing taun 1970-an, Dennis Ritchie nggawe basa pemrograman C kanggo sistem operasi Unix. Digawe ing basa pamrograman B, sing ora duwe dhukungan ngetik, C diisi karo fungsi tingkat dhuwur sing paling cocog kanggo nulis sistem operasi lan driver. Sawetara komponen UNIX, kalebu kernel, pungkasane ditulis maneh ing C. Sabanjure, akeh program sistem liyane, kalebu database Oracle, akeh kode sumber Windows, lan sistem operasi Linux, uga ditulis ing C.

C wis nampa dhukungan sing luar biasa ing arah iki. Nanging apa persis sing nggawe pangembang ngalih menyang? Triplett percaya yen kanggo menehi motivasi para pangembang kanggo ngalih saka siji basa pamrograman menyang basa liyane, sing terakhir kudu nyedhiyakake fitur anyar tanpa kelangan fitur lawas.

Kaping pisanan, basa kasebut kudu menehi fitur anyar sing "cukup nyengsemake". "Dheweke ora bisa luwih apik. Mesthine luwih apik kanggo mbenerake upaya lan wektu rekayasa kanggo nggawe transisi, "ujare. Dibandhingake karo basa rakitan, C nduweni akeh sing bisa ditawakake. Ndhukung prilaku sing rada aman, nyedhiyakake portabilitas lan kinerja sing luwih apik kanthi konstruksi tingkat dhuwur, lan ngasilake kode sing luwih bisa diwaca sakabèhé.

Kapindho, basa kasebut kudu menehi dhukungan kanggo fitur lawas, sing tegese ing sejarah transisi menyang C, pangembang kudu yakin manawa ora kurang fungsional tinimbang basa perakitan. Triplett nerangake: "Basa anyar ora mung luwih apik, nanging uga kudu apik." Saliyane luwih cepet lan ndhukung jinis data apa wae sing bisa digunakake ing basa rakitan, C uga duwe apa sing diarani Triplett "escape hatch" -yaiku, ndhukung nglebokake kode basa assembly ing dhewe.

"Rust minangka masa depan pemrograman sistem, C minangka assembler anyar" - pidato dening salah sawijining insinyur terkemuka Intel

Triplett percaya yen C saiki dadi basa rakitan pirang-pirang taun kepungkur. "C minangka assembler anyar," ujare. Saiki pangembang nggolek basa tingkat dhuwur anyar sing ora mung bakal ngrampungake masalah sing wis diklumpukake ing C sing ora bisa diatasi maneh, nanging uga nawakake fitur anyar sing nyenengake. Basa kasebut kudu cukup kuat supaya pangembang bisa ngalih, kudu aman, nyedhiyakake manajemen memori otomatis, lan liya-liyane.

"Basa apa wae sing pengin luwih apik tinimbang C kudu menehi luwih akeh tinimbang proteksi kebanjiran buffer yen pancene pengin dadi alternatif sing menarik. Pangembang kasengsem ing migunani lan kinerja, nulis kode sing mandhiri lan nindakake luwih akeh ing baris sing luwih sithik. Masalah keamanan uga kudu ditanggulangi. Ease saka nggunakake lan kinerja bebarengan. Kurang kode sing kudu ditulis kanggo entuk apa-apa, luwih sithik kesempatan sampeyan kudu nggawe kesalahan, keamanan utawa ora, "jelas Triplett.

Perbandingan Rust lan C

Ing taun 2006, Graydon Hoare, karyawan Mozilla, wiwit nulis Rust minangka proyek pribadi. Lan ing taun 2009, Mozilla wiwit nyeponsori pangembangan Rust kanggo kabutuhan dhewe, lan uga ngembangake tim kanggo ngembangake basa kasebut.

Salah sawijining alasan Mozilla kasengsem ing basa anyar yaiku Firefox ditulis ing luwih saka 4 yuta baris kode C ++ lan duwe sawetara kerentanan kritis. Rust dibangun kanthi keamanan lan konkurensi, dadi pilihan sing cocog kanggo nulis ulang akeh komponen Firefox minangka bagean saka proyek Quantum kanggo ngrancang ulang arsitektur browser. Mozilla uga nggunakake Rust kanggo ngembangake Servo, mesin rendering HTML sing pungkasane bakal ngganti mesin rendering Firefox saiki. Akeh perusahaan liyane sing wiwit nggunakake Rust kanggo proyeke, kalebu Microsoft, Google, Facebook, Amazon, Dropbox, Fastly, Chef, Baidu lan liya-liyane.

Rust ngrampungake salah sawijining masalah sing paling penting ing basa C. Nawakake manajemen memori otomatis supaya pangembang ora kudu ngalokasiake kanthi manual banjur mbebasake kanggo saben obyek ing aplikasi kasebut. Sing mbedakake Rust karo basa modern liyane yaiku ora duwe pengumpul sampah sing kanthi otomatis mbusak obyek sing ora digunakake saka memori, uga ora duwe lingkungan runtime sing dibutuhake supaya bisa digunakake, kaya Java Runtime Environment for Java. Nanging, Rust duwe konsep kepemilikan, peminjaman, referensi, lan umur. "Rust duwe sistem kanggo ngumumake telpon menyang obyek kanggo nuduhake manawa pemilik nggunakake utawa mung nyilih. Yen sampeyan mung nyilih obyek, compiler bakal nglacak iki lan mesthekake yen asli tetep ing Panggonan anggere sampeyan referensi. Rust uga bakal mesthekake yen obyek wis dibusak saka memori sanalika nggunakake lengkap, masang telpon cocog menyang kode ing wektu kompilasi tanpa wektu tambahan, "ujare Triplett.

Kekurangan runtime asli uga bisa dianggep minangka fitur positif saka Rust. Triplett percaya yen basa sing digunakake angel digunakake minangka alat pemrograman sistem. Nalika nerangake: "Sampeyan kudu initialize runtime iki sadurunge sampeyan bisa nelpon kode sembarang, sampeyan kudu nggunakake runtime iki kanggo nelpon fungsi, lan runtime dhewe bisa mbukak kode tambahan konco mburi ing wektu sing ora dikarepke."

Rust uga ngupayakake nyedhiyakake program paralel sing aman. Fitur sing padha sing nggawe memori aman nglacak barang kaya thread sing duwe obyek lan obyek sing bisa dilewati ing antarane benang lan sing butuh kunci.

Kabeh fitur kasebut ndadekake Rust cukup narik kawigaten para pangembang kanggo milih minangka alat anyar kanggo pemrograman sistem. Nanging, ing babagan komputasi paralel, Rust isih ana ing mburi C.

Triplett arep nggawe grup kerja khusus sing bakal fokus kanggo ngenalake fitur sing dibutuhake menyang Rust supaya bisa padha, ngluwihi lan ngganti C ing bidang pemrograman sistem. ING thread ing Reddit, darmabakti kanggo pidato, dheweke ngandhakake yen "grup Paritas FFI / C ana ing proses nggawe lan durung miwiti karya," kanggo saiki dheweke siap njawab pitakonan apa wae, lan ing mangsa ngarep dheweke mesthi bakal nerbitake rencana langsung. kanggo pangembangan Rust minangka bagΓ©an saka inisiatif kanggo kabeh pihak sing kasengsem.

Bisa dianggep manawa klompok FFI / C Parity bakal fokus kanggo ningkatake dhukungan multi-threading ing Rust, ngenalake dhukungan kanggo BFLOAT16, format titik ngambang sing muncul ing prosesor Intel Xeon Scalable anyar, uga perakitan stabil. sisipan kode.



Source: 3dnews.ru

Add a comment