Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Selepas ketua bahasa Go meletak jawatan, bahasa domestik lahir

Selepas ketua bahasa Go meletak jawatan, bahasa domestik lahir

PHPz
PHPzke hadapan
2023-04-10 12:21:031142semak imbas

Ulasan Acara

Minggu lepas, Steve Francia, ketua projek bahasa Google Go, mengumumkan peletakan jawatannya , dan dia Alasan yang diberikan ialah kerja projek Go telah terhenti, yang menyebabkan dia berasa tidak selesa. Menariknya, sesetengah Gophers domestik (nama yang diisytiharkan sendiri bagi peminat bahasa Go) juga mempunyai idea baharu tentang bahasa Go. Contohnya, Gophers seperti Chai Shushan, salah seorang peminat bahasa Go pertama di China, dan Shi Bin, yang telah lama disenaraikan dalam 50 teratas penyumbang Go global, memutuskan untuk melancarkan bahasa pengaturcaraan baharu berdasarkan bahasa Go: Bahasa Ao™ (Ao Disebut "Wa").

Pada masa ini, kod Concave Language™ telah bersumberkan terbuka pada Github, dan contoh boleh laku mudah disediakan. Menurut pengenalan gudangnya, matlamat reka bentuk WaGo Language™ adalah seperti berikut: 1. Bahasa C++ berjubah dalam sintaks Go dan Rust 2. Akhiran fail kod sumber Wago Language™ ialah .wa3, dan Bahasa cekung Pengkompil ™ serasi dengan sintaks WaGo Concave adalah konsisten dengan tatabahasa WaGo di peringkat AST (kedua-duanya boleh menjana AST yang sama dan menukar satu sama lain tanpa kehilangan) 4. Concave Language™ menyokong kata kunci dwibahasa Cina/Inggeris, iaitu, sebarang kata kunci mempunyai versi Cina dan versi Inggeris adalah setara pada tahap tatabahasa

Selepas ketua bahasa Go meletak jawatan, bahasa domestik lahir

Perwakilan Concave Language™, sumber imej @GitHub

Menurut Chai Shushan, Shi Bin dan lain-lain, gaya bahasa Go yang "terkawal" ialah penyebut sepunya terbesar mereka dalam estetika bahasa pengaturcaraan. Oleh itu, apabila projek Concave Language™ dilancarkan, ia banyak menggunakan idea reka bentuk dan pelaksanaan khusus Go.

Sudah tentu, mereka juga mengatakan bahawa memilih bahasa Go sebagai pelan tindakan awal adalah kompromi yang perlu dibuat dengan pelaburan terhad. Mereka berharap apabila projek itu berkembang, mereka akan mengumpulkan lebih banyak reka bentuk asli dan menyumbang kepada trend inovasi bebas. Walaupun Chai Shushan, Shi Bin dan yang lain adalah Gophers senior, tidaklah sukar untuk memahami keutamaan mereka terhadap bahasa Go, tetapi kami tidak boleh tidak tertanya-tanya: Betapa ajaibnya bahasa Go yang membuatkan mereka begitu terpesona dengan bahasa Go?

Mengapa memilih bahasa Go

Melihat penilaian Go oleh ramai pembangun yang telah menggunakan bahasa Go, Go Bahasa mempunyai empat ciri berikut dalam reka bentuk.

1. Mudah dan mudah digunakan
Berbeza daripada yang melalui Melukis bersama pada bahasa pengaturcaraan arus perdana (seperti C++, Java, dll.) yang sentiasa menambah ciri baharu, pereka Go's enggan mengambil laluan penyepaduan ciri bahasa pada permulaan reka bentuk bahasa, dan memilih "penolakan ."

Mereka menyerahkan kerumitan kepada reka bentuk dan pelaksanaan bahasa itu sendiri, kepada pasukan pembangunan teras Go, dan menyerahkan kesederhanaan, kemudahan penggunaan dan kejelasan kepada Kebanyakan pembangun menggunakan bahasa Go. Oleh itu, bahasa Go mempersembahkan:

  • Sintaks yang ringkas dan konvensional (tidak perlu menghuraikan jadual simbol), dengan hanya 25 kata kunci; Tiada fail pengepala;
  • Kebergantungan eksplisit (pakej);
  • Pemalar hanyalah nombor;
  • Huruf pertama menentukan keterlihatan; );
  • Tiada pewarisan subjenis (tiada subkelas); tidak mempunyai pembina atau pemusnah; tugasan
  • bukan ungkapan; "titik jujukan");
  • Tiada aritmetik penunjuk; 🎜>Tiada jenis sintaks anotasi (seperti const, statik, dll. dalam C++)
  • ……
  • 2. Kombinasi pilihan
  • Bahasa berorientasikan objek arus perdana seperti C++ dan Java menggabungkan pelbagai bahagian program melalui sistem jenis atas ke bawah yang besar, pewarisan, pelaksanaan antara muka eksplisit dan mekanisme lain, bagaimanapun, dalam bahasa Go yang kami temui Tiada unsur sintaks, sistem jenis dan mekanisme pewarisan berorientasikan objek klasik.

    Jadi bagaimana bahasa Go menggabungkan pelbagai bahagian program bersama-sama? Ia adalah gabungan.

    Pada peringkat reka bentuk bahasa, Go menggunakan elemen sintaks ortogon, termasuk sistem tanpa taip bahasa Go adalah bebas dan tiada konsep subjenis Anda boleh mempunyai set anda sendiri kaedah, dan definisi jenis dan pelaksanaan kaedah adalah ortogon dan bebas.
    Melalui pembenaman jenis, fungsi yang telah dilaksanakan dibenamkan ke dalam jenis baharu untuk memenuhi keperluan fungsian jenis baharu dengan pantas. Apabila memanggil kaedah pada contoh jenis baharu, pemadanan kaedah bergantung pada nama kaedah, bukan jenisnya.
    Selain itu, pengagregatan gelagat antara muka dicapai dengan membenamkan jenis antara muka dalam definisi antara muka untuk membentuk antara muka yang besar. Kaedah ini biasanya digunakan dalam perpustakaan standard dan telah menjadi simpulan bahasa Go.

    Ini ialah reka bentuk inovatif bahasa Go: antara muka hanyalah koleksi kaedah dan hubungan dengan pelaksana adalah tersirat, yang boleh mengurangkan gandingan antara pelbagai bahagian program yang paling rendah.
    3 Selaras dan ringan

    Tiga perkara tentang bahasa Go. Pereka Rob Pike, Robert Griesemer dan Ken Thompson pernah percaya bahawa jawatankuasa standard C++ adalah rabun dalam pemikiran, kerana perkakasan mungkin akan mengalami perubahan besar dalam sepuluh tahun akan datang, dan adalah sangat tidak bijak untuk menggabungkan bahasa dengan ketat dengan perkakasan pada masa itu tidak boleh membawa banyak bantuan kepada pembangun apabila menulis program serentak berskala besar.
    Jadi, mereka menganggap berorientasikan pelbagai teras, sokongan konkurensi terbina dalam asli sebagai salah satu prinsip reka bentuk bahasa baharu.

    Falsafah reka bentuk sokongan asli bahasa Go untuk konkurensi ditunjukkan dalam dua perkara berikut.
    (1) Bahasa Go menggunakan model selari coroutine yang ringan, menjadikan aplikasi Go lebih berskala apabila menyasarkan perkakasan berbilang teras. (2) Bahasa Go menyediakan pembangun dengan elemen sintaks dan mekanisme yang menyokong konkurensi.
    4. Berorientasikan kejuruteraan

    Pereka bahasa Go adalah dalam Pada peringkat reka bentuk awal bahasa Go, menyelesaikan masalah kejuruteraan dianggap sebagai salah satu prinsip reka bentuk Go, dan kemudian reka bentuk tatabahasa Go, rantai alat dan perpustakaan standard Ini juga merupakan idea reka bentuk antara Go dan mereka lebih banyak bahasa pengaturcaraan yang berorientasikan akademik dan penyelidikan.
    Ini menjadikan spesifikasi bahasa Go mudah dan cukup fleksibel sehingga pengaturcara yang mempunyai asas dalam bahasa lain dapat bermula dengan cepat. Lebih penting lagi, Go dilengkapi dengan rangkaian alat yang lengkap, yang meningkatkan konsistensi kerjasama pasukan. Sebagai contoh, Gofmt memformat kod Go secara automatik, yang sebahagian besarnya menghapuskan masalah gaya pemformatan tidak konsisten kod yang ditulis oleh orang yang berbeza. Konfigurasikan editor untuk menjalankan Gofmt secara automatik semasa mengedit arkib, supaya anda boleh meletakkannya di mana-mana semasa menulis kod, dan ia secara automatik akan menjadi kod yang diformat dengan betul semasa mengarkibkan. Selain itu, terdapat alat yang sangat berguna seperti Gofix dan Govet.

    Ringkasnya, Kesederhanaan Go pada peringkat bahasa membolehkan Go memperoleh ekspresi yang tidak kalah dengan C++/Java, dsb., di samping memperoleh kebolehbacaan yang lebih baik dan lebih fleksibiliti. Kecekapan pembangunan tinggi dan elemen lain yang lebih penting dalam bidang kejuruteraan perisian.

    Masa depan Concave Language™

    Walaupun hari ini, Teruskan dengan prestasi unggulnya , telah menjadi salah satu bahasa pengaturcaraan arus perdana (lebih daripada 75% projek CNCF, termasuk Kubernetes dan Istio kedua-duanya ditulis dalam Go Selain itu, Go juga merupakan salah satu bahasa aplikasi awan utama), bahasa Go juga agak popular di China, tetapi kami masih tidak dapat mengelak daripada bimbang tentang dilahirkan daripada Go's Concave Language™, adakah masa depan yang cerah?


    Selalunya sukar untuk meramalkan masa depan Namun, mujurlah ada pendahulu di hadapan Concave Language™ - bahasa Go+ mungkin juga membina pembangunan Go+, untuk membuat spekulasi secara kasar tentang masa depan Concave Language™.

    Go+ ialah bahasa pengaturcaraan yang dicipta oleh Ketua Pegawai Eksekutif Qiniu Cloud Xu Shiwei Ia dikeluarkan secara rasmi pada Julai 2020 dan versi 1.0 telah dilancarkan pada Oktober 2021. Versi terkini dikeluarkan pada 13 Jun. tahun ini dikeluarkan versi 1.1. Dalam erti kata lain, hampir dua tahun telah berlalu sejak keluaran rasminya Go+ masih dalam peringkat awal dan masih jauh dari aplikasi berskala besar. Concave Language™ tidak akan memasuki pasaran untuk masa yang lama masa depan di mata majoriti pemaju.

    Selain itu, menurut pandangan yang dinyatakan oleh Xu Shiwei pada persidangan ECUG Con 2022, walaupun semua orang memberi lebih perhatian kepada prestasi bahasa pengaturcaraan, dari perspektif prestasi sahaja, Xu Shiwei percaya bahawa Python adalah antara bahasa skrip Ia hanya boleh dianggap sebagai kelas kedua, dan Python sebenarnya tidak pantas.

    Pada pandangan Xu Shiwei, perkara yang paling penting untuk bahasa baharu ialah kumpulan sasaran yang dipilihnya.

    Kumpulan sasaran yang dipilih oleh Go+ ialah seluruh rakyatnya, Xu Shiwei menyebutnya sebagai "bahasa yang kanak-kanak pun boleh kuasai". meletakkan pangkalan pengguna.

    Ciri Go+ inilah yang membuatkan sesetengah pembangun optimis tentang masa depan Go+. Jangkaan positif untuk Go+ akan menjadi rangsangan untuk pembangunan selanjutnya Go+.

    Untuk Concave Language™, prinsip ini juga terpakai:

    Fokus pembangunan Concave Language™ mungkin bukan pada prestasi, tetapi pada kumpulan mana yang dipilih sebagai penonton sasarannya, dan Bagaimana untuk mendapatkan pengguna benih.

    Jika pasukan projek Ao Language™ akan mengumumkan berita ini pada masa hadapan, maka masa depan Ao Language™ masih boleh dinantikan.

Atas ialah kandungan terperinci Selepas ketua bahasa Go meletak jawatan, bahasa domestik lahir. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam