Semakin banyak syarikat Internet utama mula menggunakan Go语言
, seperti Tencent, Meituan, Didi, Baidu, Google, bilibili...
dan ByteDance, yang pada mulanya menggunakan Python
, malah telah menerima sepenuhnya Go
. Begitu banyak syarikat terkemuka dalam dan luar negara mula menggunakannya. Apakah kelebihannya? Sekarang mari kita bercakap tentang beberapa kelebihannya.
ps: Sudah tentu, terdapat juga Go-To-Byte
ahli yang ingin mempelajari bahasa Go dan menggunakannya untuk menyiapkan projek besar dalam kem latihan belia~
Bercakap tentang kelebihan, dalam beberapa aspek ia mungkin kerana ia mempunyai beberapa ciri yang orang lain tidak miliki, atau ia mengoptimumkan kawasan yang menyusahkan orang lain, jadi ia lebih baik daripada yang lain. Kemudian mari kita lihat beberapa ciri Go
, tetapi sebelum memahami ciri tumpul, mari kita lihat beberapa bahasa biasa yang lain:
Ini bukan perbandingan, ia bukan tentang siapa yang baik atau buruk, tetapi kuda yang menyeberangi sungai, ia berbeza dari orang ke orang ke orang ~
telah dicipta oleh pakar C语言
Ken Thompson dan Dennis Ritchie pada tahun 1971, dan salah satu pembangun terkemuka ialah Go语言
Ken Thompson, jadi di Banyak tempat adalah serupa dengan bahasa C (比如struct、Printf、&取值符)
juga digunakan sebagai bahasa untuk ramai pemula Semuanya C/C++
disusun terus ke dalam kod mesin , jadi kecekapan pelaksanaan. akan menjadi lebih tinggi, dan Mereka tidak memerlukan persekitaran pelaksanaan , dan kos penggunaan pengguna akan lebih rendah, tidak seperti kebanyakan bahasa yang perlu memasang persekitaran yang diperlukan.
satu pengekodan atau kompilasi mereka hanya sesuai untuk satu platform Untuk sistem pengendalian yang berbeza, kadangkala perlu mengubah suai pengekodan dan kemudian menyusun, dan kadangkala ia sudah mencukupi untuk menyusun semula secara langsung.
Dan ia juga "sangat tidak mesra" kepada pemaju? Anda perlu menangani isu kutipan sampah sendiri. Apabila pengekodan, anda juga perlu mengambil kira, bilakah memori pada timbunan (GC)
? Adakah kod tersebut akan menyebabkan kebocoran memori dan tidak selamat? free、delete
daripada Java
, saya merasakan Go
kecekapan pembangunan Akan lebih rendah daripada Java
~?(个人感觉,不喜勿喷)
adalah Java
disusun terus ke dalam bytecode Produk kompilasi ini adalah antara pengekodan asal dan mesin Sejenis kod perantaraan. Dalam kes ini, program (.class)
Java
memerlukan persekitaran pelaksanaan khusus (JVM)
, dan kecekapan pelaksanaan akan lebih rendah daripada itu, dan mungkin juga terdapat kerugian virtualisasi. Tetapi ini juga mempunyai kelebihan iaitu ia boleh disusun sekali dan dilaksanakan (跨平台)
di beberapa tempat. Dan ia juga disertakan dengan nya sendiri. GC
tidak perlu dikompilasi lari selepas tafsiran Python
. Jadi JS
juga memerlukan persekitaran pelaksanaan khusus Js
. (浏览器引擎)
Selepas meletakkan kod ke dalam penyemak imbas, penyemak imbas perlu menghuraikan kod, jadi akan berlaku kehilangan virtualisasi
Hanya memerlukan penyemak imbas untuk dijalankan, jadi ia juga rentas platform. Js
Mari bincang tentang Go sekali lagi
C/C++
Saya rasa ia cukup bagus mekanisme pengumpulan sampah automatik adalah sangat bagus, Go
Saya rasa ia juga bagus; Java
's boleh digunakan pada berbilang platform dengan satu pengekodan , Go
terasa hebat; dan Js
secara semula jadi mempunyai keupayaan serentak yang tinggi adalah unik untuk semua bahasa. Jadi mari kita ringkaskan secara ringkas! Go
Go
Didatangkan dengan persekitaran operasinya sendiri
Runtime
GC
Pengoperasian persekitaran program ini sangat mengagumkan. Malah, kebanyakan bahasa mempunyai konsep , dan ia perlu dipasang secara berasingan. Untuk program Go
, tanpa pemprosesan khas, ia hanya boleh dijalankan pada mesin dengan persekitaran Runtime
. Java
Dan program Go
disertakan dengan persekitaran operasinya sendiri Go
program Runtime
akan dibungkus ke dalam produk binari sebagai sebahagian daripada program dan dijalankan bersama-sama dengan program pengguna. Runtime
juga merupakan siri .go代码和汇编代码等
, pengguna boleh "terus" memanggil fungsi Runtime
(比如make([]int, 2, 6),这样的语法,其实就是去调用Runtime中的makeslice函数)
. Untuk program Go
, secara ringkasnya, ia boleh dijalankan tanpa memasang persekitaran operasi tambahan. Melainkan anda perlu membangunkan program Go
.
Disebabkan ini, program Go
tidak perlu menangani masalah GC
, dan semua kuasa diserahkan kepada Runtime
untuk mengendalikan (反正要打包到一起)
.
Tidak seperti C/C++
, untuk berbilang platform, anda mungkin perlu mengubah suai kod sebelum menyusun. Ia juga berbeza daripada pengekodan sekali Java
, yang disusun menjadi kod perantaraan dan dijalankan pada mesin maya pada berbilang platform. Go
Anda hanya perlu mengekod sekali sahaja dan ia boleh disusun dengan mudah menjadi kod mesin dan dijalankan pada berbilang platform.
Perlu dinyatakan bahawa keupayaan merentas platformnya juga diberikan oleh Runtime
, kerana Runtime
mempunyai keupayaan untuk menyekat panggilan sistem pada tahap tertentu.
C++
Keupayaan untuk mengendalikan konkurensi tidak lemah , tetapi Memandangkan keperluan pengekodan C++
sangat tinggi, jika C++程序员
tidak berpengalaman dan profesional, banyak kegagalan mungkin berlaku. Dan Go
mungkin tidak mempunyai banyak pengalaman, tetapi masih boleh menulis program konkurensi tinggi dengan prestasi yang baik.
Apa yang patut disebut ialah keselarasannya yang sangat tinggi, yang juga merupakan keupayaan yang diberikan oleh Runtime
untuk mengendalikan penjadualan coroutine.
Untuk pembangun, selepas memasang persekitaran Golang
, mereka boleh Banyak fungsi telah dibangunkan menggunakan perpustakaan standard rasmi. Sebagai contoh, terdapat banyak pakej yang biasa digunakan ditunjukkan dalam rajah di bawah:
dan Go
sendiri mempunyai rantai alat kaya, (比如:代码格式化、单元测试、基准测试、包管理...)
Banyak syarikat besar telah mula menggunakan bahasa Go Sebab pasukan kami menggunakan GoLang ada kaitan dengan ciri ini~
Cadangan berkaitan: Tutorial video Go
Atas ialah kandungan terperinci Mengapa semakin banyak syarikat Internet utama mula menggunakan bahasa Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!