Bolehkah Linus Torvalds mempertimbangkan untuk memperkenalkan C++ kepada Linux Kernel?

linustorvalds

Linus Benedict Torvalds ialah seorang jurutera perisian, terkenal kerana memulakan dan mengekalkan pembangunan kernel Linux.

beberapa minggu yang lalus kami kongsikan di sini di blog berita tentang cadangan yang telah dihidupkan semula selepas bertahun-tahun berhubung dengan daya maju menerima pakai kod C++ dalam kernel Linux, cadangan yang dilancarkan pada 2018 sebagai jenaka.

La cadangan dilancarkan semula pada senarai mel Kernel, tetapi dengan cara yang serius untuk Hans Peter Anvin, Pembangun dan pembangun kernel Intel yang utama meningkatkan kemungkinan memasukkan C++ sebagai bahasa pengaturcaraan ketiga dalam Linux.

Linux C++
artikel berkaitan:
C++ di Linux, topik itu dihidupkan semula selepas 6 tahun

Dengan pengenalan Karat pada Linux, banyak pembangun dan sebahagian daripada komuniti melihat jalan yang hebat ke hadapan dalam Linux, ditambah juga Pelbagai "idea" telah muncul untuk melaksanakan bahasa pengaturcaraan yang lain, cadangan untuk melaksanakan C++ sekali lagi membuka perdebatan di kalangan banyak pembangun Kernel dan juga Linus Torvalds sekali lagi menerangkan dengan cara yang paling pasif dan boleh difahami, mengapa Linux tidak bersedia untuk C++ (sarkasme).

Kita mesti ingat bahawa Rust tidak diterima dalam Linux dari satu ketika ke satu masa, memandangkan projek Rust pada Linux (Rust for Linux) mempunyai beberapa siri semakan oleh Linus Torvalds sendiri sebelum ia diterima masuk ke dalam cawangan utama Kernel untuk dimasukkan dan perlu disebutkan bahawa bapa Linux tidaklah lembut. semasa membuat semakan dan mengulas tentang cadangan perubahan.

Sebelum membangunkan artikel, saya mesti menyatakan bahawa semua kandungan artikel adalah pendapat peribadi yang dihasilkan melalui tafsiran maklumat dan berita yang saya baca di Internet, jadi ia mungkin berbeza dengan tafsiran yang anda sebagai pembaca mungkin mempunyai dan bahawa saya dengan senang hati akan meluangkan masa untuk membaca jika anda ingin berkongsi di sini dalam komen.

Sekarang dalam kes cadangan C++ sebagai bahasa pengaturcaraan ketiga, dalam kes yang didakwa, dan saya berkata "sudah tentu", Pelaksanaan harus melalui siri semakan yang serupa, jika tidak lebih ketat daripada Rust. Dan fakta menyebut ini adalah kerana C++ dan Linus mempunyai sejarah mereka, kecil, tetapi sudah berusia bertahun-tahun.

Sebab sebut bahawa kes untuk C++ sebagai bahasa Linux ketiga sebagai a “Sepatutnya”, ia adalah kerana bapa Linux, Linus Torvalds, tidak dan tidak akan melihat C++ dengan baik., kerana pada lebih daripada satu kesempatan pada setiap peluang dia telah menyebut bahawa C++ "adalah bahasa yang dahsyat."

Dengan sebutanr beberapa detik di mana penggunaan C++ telah dipertimbangkan pada Linux dan Linus Torvalds telah menyatakan bukan sahaja ketidaksetujuannya, tetapi "kebencian tertentu" terhadap C++ yang dilapisi untuk menyebut mengapa "ia bukan pilihan untuk Linux", salah satu yang terbaru adalah semasa ulasan pelaksanaan Rust, sejak semasa perbincangan pada siaran Google, kemasukan C++ disebut sebagai cadangan:

"Penyelesaian di sini adalah mudah: hanya gunakan C++ dan bukannya Rust"

Ke Yang Linus Torvalds tidak dapat menahan ketawa dan jawapannya ialah:

"LOL". «C++ tidak menyelesaikan sebarang masalah C dan hanya memburukkan keadaan, ia benar-benar bahasa sampah.

Bagi orang yang tidak menyukai C, gunakan bahasa yang sebenarnya menawarkan sesuatu yang berbaloi kepada anda. Seperti bahasa yang selamat memori dan "itu" boleh mengelakkan beberapa perangkap C, atau bahasa yang mempunyai sokongan "pengumpulan sampah" GC dalaman dan menjadikan pengurusan memori lebih mudah. "C++ menyelesaikan semua masalah yang salah, dan sesiapa yang mengatakan 'tulis semula teras dalam C++' adalah terlalu jahil untuk mengetahuinya."

Linus Torvalds sentiasa menganggap C++ "sisa" dan menganggapnya "tidak berguna" Untuk "C++ tidak dapat menyelesaikan masalah bahasa C sama sekali, ia hanya akan memburukkan keadaan." Torvalds percaya bahawa mereka yang tidak suka bahasa C boleh mencari bahasa yang benar-benar boleh menambah nilai. Contohnya, bahasa yang selamat memori dan boleh mengelakkan bahaya tersembunyi yang disebabkan oleh C (seperti Rust).

Berbanding dengan C++, Linus telah menyebut mengapa C adalah pilihan standardnya:

"Apabila orang bercakap tentang bahaya yang disebabkan oleh C, mereka juga bercakap tentang sebahagian daripada sebab mengapa C sangat berkuasa: 'Ia membolehkan anda melaksanakan semua perkara peringkat rendah ini dengan cekap,'" kata Linus. Selain itu, walaupun GC bagus untuk memudahkan pengaturcaraan dalam kebanyakan kes, ia biasanya bukan sesuatu yang boleh dilakukan dalam pengaturcaraan sistem peringkat rendah.

Malah, dalam senarai mel disebutkan bahawa Pada satu ketika percubaan telah dibuat untuk menggunakan C++ pada Linux, pada tahun 1992 (lebih kurang setahun selepas kelahiran Linux), tetapi ini kekal sebagai "percubaan", sejak Torvalds sebutkan tentang percubaan ini:

Ianya teruk. Percayalah: menulis kod kernel dalam C ++ adalah IDEA BODOH SIalan.

Hakikatnya ialah pengkompil C++ tidak boleh dipercayai. Ia lebih teruk pada tahun 1992, tetapi beberapa fakta asas tidak berubah:

– keseluruhan perkara pengendalian pengecualian dalam C++ pada asasnya rosak. Ia "terutama" dipecahkan untuk biji.
– mana-mana pengkompil atau bahasa yang suka menyembunyikan perkara seperti peruntukan memori di belakangnya bukanlah pilihan yang baik untuk kernel.
– anda boleh menulis kod berorientasikan objek (berguna untuk sistem fail, dsb.) dalam C, "tanpa sampah iaitu C++."

Memandangkan ini dan banyak komen lain, Kita boleh memahami sedikit tentang mengapa Linus Torvalds menganggap C++ sebagai bahasa yang mengerikan., selain mengkritik bahasa yang digunakan oleh «pengaturcara berkualiti rendah, sehingga lebih mudah untuk menghasilkan sampah yang lengkap dan lengkap dengannya.» Dan ia adalah itu Nampaknya C++, pada satu ketika, rasa pahit dalam mulut Torvalds., kerana dalam kritikan anda nampaknya saya cuba mencuba C++, baik Saya menyebut dalam e-mel bahawa:

"C++ membawa kepada pilihan reka bentuk yang sangat buruk. Anda sentiasa mula menggunakan ciri pustaka bahasa "bagus" seperti STL dan Boost serta sampah yang lengkap dan lengkap, yang mungkin "membantu" anda memprogramkan, tetapi menyebabkan:

kesakitan yang tidak berkesudahan apabila ia tidak berfungsi (dan sesiapa sahaja yang memberitahu saya bahawa STL dan terutamanya Boost adalah stabil dan mudah alih begitu penuh dengan karut sehingga tidak lucu)
"model pengaturcaraan abstrak yang tidak cekap di mana dua tahun kemudian anda mendapati bahawa beberapa abstraksi tidak begitu cekap, tetapi kini semua kod anda bergantung pada semua model objek cantik di sekelilingnya, dan anda tidak boleh membetulkannya tanpa menulis semula aplikasi anda."

Jadi, kembali kepada tajuk penerbitan dan setelah memahami sedikit hujung gunung ais kebencian Linus Torvalds terhadap C++, tidak perlu menyiasat banyak kerana Untuk Torvalds, Linux tidak memerlukan bahasa lain kerana C sudah mencukupi dan sepanjang masa ini C adalah, telah dan akan menjadi bahasa yang sesuai dengan kerjanya dan Linus akan terus menyerang bahasa pengaturcaraan yang dia tidak suka, terutamanya C++.

Dan ia salah satu daripada banyak sebab mengapa C++ tidak dipertimbangkan untuk Linux, ialah ia membenarkan pengecualian, manakala Rust tidak menyukai C, kerana dalam pengaturcaraan kernel, ia tidak boleh dibenarkan Pengecualian yang tidak ditangkap boleh melumpuhkan sistem pengendalian, dan anda tidak sepatutnya memikirkan tentang kernel yang pernah gagal.

Y dalam "sepatutnya" memandangkan Torvalds datang untuk mempertimbangkan C++ pada linux, ini mungkin lebih daripada manfaat kemasukan satu pertiga atau lebih bahasa pengaturcaraan, akan menjadi masalah, kerana contohnya dengan pelaksanaan Karat pada masa ini beberapa masalah mula didedahkan, seperti yang telah kami sebutkan dalam penerbitan tentang keadaan semasa Rust di Linux.

Pemacu karat pada Linux
artikel berkaitan:
Rust on Linux: kemajuan, cabaran dan status semasa

Antara cabaran semasa yang kami sebutkan dalam artikel itu salah satunya ialah «rekrut lebih ramai pengulas untuk kod yang sedang dibangunkan" sebagai tambahan kepada Kemajuan pengkompil Rust berasaskan GCC telah menjadi perlahan, jugaTerdapat sangat sedikit peluang bahawa mereka akan menulis semula sebahagian besar kernel dalam Rust jangka pendek dan juga peluang yang sangat rendah bahawa mereka boleh melakukannya tanpa memperkenalkan semua jenis ralat dan terutamanya masalah keserasian.

Jika masalah ini, yang dicerminkan dalam Rust kami menambahnya dalam C++ atau mana-mana bahasa lain yang boleh ditambah dalam Linux, Pembangunan kernel akan sangat terjejas dan dengan ini pada mulanya kami tidak akan menerima versi setiap dua bulan, sebaliknya ia akan menjadi pembangunan antara versi yang lebih panjang, lebih banyak pembangun, lebih banyak penyemak akan diperlukan dan semua ini diterjemahkan kepada usaha yang lebih besar.

Tidak dinafikan, pendekatan memperkenalkan C++ sebagai bahasa pengaturcaraan ketiga adalah jauh daripada dipertimbangkan dan seperti yang telah kami nyatakan, salah satu halangan utama untuk ini adalah Linus Torvalds sendiri.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.