Sebagai salah satu bahasa pengaturcaraan yang paling popular dalam beberapa tahun kebelakangan ini, Go (atau Golang) telah mendapat perhatian dan penggunaan yang meluas. Di mata banyak pembangun, Go ialah bahasa yang mudah dipelajari, cekap dan boleh dipercayai serta mengambil kira skala dan kecekapan. Walau bagaimanapun, ada juga yang percaya bahawa Go tidak sebaik yang dicadangkan oleh reputasinya. Mereka percaya bahawa Go hanyalah bahasa kecil yang telah muncul dalam beberapa tahun yang lalu Walaupun ia boleh mencapai keputusan yang lebih baik dalam beberapa senario, ia tidak berbaloi untuk meletakkan semua pertaruhan padanya.
Pandangan yang bertentangan ini membuatkan kita berfikir sama ada bahasa ini dinilai berlebihan. Mari kita menganalisis dan membincangkan isu ini daripada tiga peringkat: falsafah reka bentuk, ciri bahasa dan ekosistem.
1. Falsafah reka bentuk Go
Bahasa Go pada asalnya dimulakan oleh Google mempunyai satu tujuan: untuk membangunkan perisian berskala besar dengan cara yang lebih moden untuk menghadapi situasi semasa Cabaran pembangunan yang dihadapi.
Go direka bentuk dengan kesederhanaan (mudah dipelajari), kecekapan (penyusunan pantas dan kelajuan pelaksanaan), dan kebolehpercayaan (teguh, selamat jenis, selamat serentak), dan juga mengikut tradisi bahasa C: pantas Susun dan pastikan kod anda cekap. Falsafah reka bentuk ini dicerminkan dalam bahasa Go, seperti mekanisme pengumpulan sampahnya, mod pengaturcaraan serentak, mekanisme pengendalian ralat, dsb.
Go juga mengendalikan beberapa kecacatan biasa dalam bahasa C, seperti operasi penunjuk atau akses memori yang tidak sah. Selain itu, Go mempunyai kebolehskalaan yang baik dan menyokong kaedah pemautan statik dan dinamik. Oleh itu, Go mempunyai ciri merentas platform yang baik dan boleh disusun dan dijalankan dengan mudah pada sistem pengendalian dan platform perkakasan yang berbeza.
Oleh kerana konsep reka bentuknya yang cekap dan boleh dipercayai, serta keserasiannya dengan bahasa C dan ciri hebat lain, semakin ramai orang mula menggunakan dan menyukai Go. Walau bagaimanapun, ini tidak bermakna bahawa Go tidak mempunyai kecacatan.
2. Ciri bahasa Go
Go mempunyai ciri unik berbanding bahasa pengaturcaraan lain. Salah satu ciri yang paling jelas ialah model pengaturcaraan serentaknya.
Model pengaturcaraan serentak Go menggunakan pelaksanaan goroutine dan saluran, yang boleh menyediakan pemprosesan serentak yang lebih pantas dan lebih cekap, menghapuskan sejumlah besar kunci, penyegerakan dan masalah lain yang wujud dalam model pengaturcaraan berbilang benang tradisional. Ia juga mempunyai kelebihan kerana dapat menangani isu penyekatan dengan mudah. Ini menjadikan Go sebagai bahasa pengaturcaraan serentak yang berkuasa, lebih sesuai untuk membina perkhidmatan konkurensi tinggi.
Pada masa yang sama, Go juga mempunyai ciri keselamatan jenis dan generik. Go menyediakan sokongan generik melalui refleksi, tetapi berbanding dengan bahasa lain, generiknya masih agak lemah, jadi dalam sesetengah kes, pengguna perlu melaksanakan sendiri struktur data dan algoritma secara manual.
Walau bagaimanapun, sistem jenis Go sememangnya agak lemah, dan dalam kebanyakan kes penukaran jenis manual diperlukan, yang juga mengurangkan sedikit kesan pemeriksaan jenis statik. Pada masa yang sama, tiada konsep seperti kelas dalam bahasa, dan penghitungan hanya boleh digantikan dengan pemalar. Ini boleh menjadikan Go agak menyusahkan dalam sesetengah situasi.
Go juga tidak memberikan warisan dan kaedah lebihan beban dalam pengaturcaraan berorientasikan objek. Walaupun Go menyediakan jenis antara muka seperti antara muka, ia agak rumit untuk digunakan dan memerlukan penulisan kod tambahan untuk mencapai fungsi yang sama.
3. Ekosistem Go
Selain ciri-ciri bahasa itu sendiri, ekosistem juga merupakan kriteria penting untuk mengukur penilaian bahasa pengaturcaraan. Walaupun ekosistem Go adalah agak baharu, komuniti sumber terbukanya sentiasa berkembang.
Dalam bidang pembangunan back-end web, Go terkenal dengan model pengaturcaraan serentak yang cekap. Terdapat banyak aplikasi terkenal yang dibangunkan menggunakan bahasa Go, seperti: Docker, Kubernetes, Etcd, Caddy, InfluxDB, dll. Pada masa yang sama, dalam bidang pengkomputeran awan, Go juga berkembang dengan sangat pesat.
Walau bagaimanapun, berbanding dengan bahasa mapan seperti Java, ekosistem Go nampaknya masih di peringkat awal. Berbanding dengan bahasa pengaturcaraan dinamik seperti Java atau Python, nampaknya tidak begitu banyak perpustakaan dan rangka kerja yang tersedia dalam ekosistem Go, yang mungkin membawa beberapa had semasa membangunkan aplikasi tertentu, atau memerlukan anda membina beberapa roda sendiri.
Kesimpulan
Ringkasnya, Go ialah bahasa pengaturcaraan yang sangat baik yang digunakan secara meluas dalam pembinaan dan pembangunan sistem teragih berskala besar. Kesederhanaan dan kecekapan bahasa Go memberikan kelebihan yang jelas dalam senario aplikasi tertentu.
Walau bagaimanapun, Go bukanlah bahasa pengaturcaraan yang paling sesuai untuk semua senario. Contohnya, Node.js mungkin merupakan pilihan yang lebih baik apabila membangunkan aplikasi intensif I/O. Pada masa yang sama, untuk pembangun dengan aplikasi besar yang dibenamkan secara mendalam dalam bahasa seperti C++ atau Java, menerima pakai Go mungkin memerlukan pemikiran semula dan pemfaktoran semula kod mereka. Selain itu, kerana ekosistem Go belum begitu besar dan lengkap, anda mungkin perlu menulis lebih banyak kod tersuai, yang mungkin menyusahkan dalam sesetengah senario.
Ringkasnya, kejayaan Go akan bergantung pada pelbagai faktor seperti senario aplikasi, kemahiran pasukan dan pilihan peribadi pembangun. Untuk Go, adalah tidak wajar untuk terlalu bersemangat atau terlalu kritis Kita perlu memilih bahasa pengaturcaraan yang paling sesuai berdasarkan keperluan sebenar.
Atas ialah kandungan terperinci golang tidak lebih dari itu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!