Ah, Pergi, bahasa pengaturcaraan. Anda mungkin pernah mendengar tentangnya, mungkin daripada seorang pembangun yang terlalu bersemangat di pejabat yang tidak pernah berhenti bercakap tentang betapa "sangat pantas" API mereka sekarang. Sudah tentu, anda telah berkecimpung dalam bahasa lain, dan mungkin anda terfikir, "Adakah saya benar-benar memerlukan bahasa lain dalam pinggan saya?" Makluman spoiler: ya, ya anda lakukan. Dan Go adalah bahasa itu. Biar saya pecahkan untuk anda dengan cara yang paling sarkastik yang ikhlas.
Sintaks Go sangat mudah sehingga hampir menghina. Jika anda telah menghabiskan masa bertahun-tahun untuk menguasai kerumitan rangka kerja JavaScript, bergelut dengan penghias Python atau menari di sekitar pengurusan ingatan C seperti bom tangan langsung, Go akan berasa seperti seseorang menghulurkan buku pewarna kepada anda. Tidak, serius. Go adalah minimalistik dengan sengaja, dengan falsafah yang menjerit, "Kami tidak memerlukan semua ciri mewah itu, mari kita selesaikan sahaja."
Walaupun bahasa lain memberi anda semua alatan untuk membentuk kod anda menjadi karya seni yang rumit dan tidak boleh dibaca, pereka Go’s berfikir, "Nah, mari kita buat kerja itu." Tiada hierarki warisan yang kompleks, tiada bebanan fungsi yang berbelit-belit, tiada templat yang kelihatan seperti algebra dari mimpi buruk. Hanya lurus ke atas, kod ke-titik. Seolah-olah mereka berkata, "Sini, berhenti berfikir keras."
Jika anda pernah cuba menangani konkurensi dalam bahasa tradisional, anda tahu betapa sakitnya perkara itu. Kolam benang, mutex, kebuntuan—hanya pemikiran yang membuatkan anda ingin melengkung menjadi bola dan menangis. Tetapi Pergi? Oh tidak, Go berkata, "Benang? Pfft. Sini, ada goroutine." Hampir tidak menghormati betapa mudahnya untuk memutarkan benang ringan dalam Go. Anda hanya membuang kata kunci go di hadapan panggilan fungsi, dan BAM, ia berjalan serentak.
Dan jangan biarkan saya bermula di saluran Go. Ia seolah-olah Go melihat setiap percubaan bahasa lain untuk konkurensi dan berkata, "Kamu terlalu merumitkan, tonton ini." Saluran membenarkan goroutine berkomunikasi seperti kanak-kanak yang berkelakuan baik menghantar nota di dalam kelas—tidak menjerit, tidak kecoh. Anda mungkin berasa terhina kerana ia berfungsi dengan lancar.
Anda tahu perasaan apabila anda perlu memasang 47 pakej hanya untuk membuat permintaan HTTP yang mudah? Bukan dalam Go. Perpustakaan standard Go adalah seperti pisau Swiss Army yang anda tidak tahu anda perlukan tetapi kini tidak boleh hidup tanpanya. Mahu memutarkan pelayan web? Selesai. Perlu mengendalikan JSON? Mudah. Ingin menulis program serentak yang berkomunikasi melalui rangkaian? Ia sudah ada dalam kotak alat.
Pustaka standard Go mempunyai keyakinan senyap ini, seolah-olah ia berkata, “Oh, anda mahu membina perkhidmatan web? Anda boleh, tanpa menarik 200 kebergantungan pihak ketiga dan mengorbankan jiwa anda.” Ia seperti mendapatkan semua ciri premium bahasa tanpa kos langganan yang meningkat. Dan sejujurnya, itu hanya kurang ajar.
Ingat semua masa anda duduk di sana, mengetuk kaki anda, menunggu kod Python atau JavaScript anda dijalankan? Pergi tidak mempunyai masa untuk perkara karut itu. Ia disusun, dan ia pantas. Seperti, kejap-dan-selesai dengan pantas. Sudah tentu, bahasa lain mencuba yang terbaik, tetapi Go hanya melemparkan binari sepantas kilatnya kepada anda seperti, “Apa? Anda masih di sini? Ia sudah selesai.”
Bahagian terbaik? Anda tidak perlu memahami semua keajaiban di bawah hud yang berlaku. Anda hanya tahu bahawa Go menghasilkan laksana yang berjalan seperti Usain Bolt pada espreso. Walaupun bahasa lain mengambil masa untuk memanaskan badan dan memakai kasut larian mereka, Go telah pun melepasi garisan penamat, mandi dan menikmati smoothie selepas perlumbaan.
Pernah cuba membuat skrip Python berfungsi pada Windows dan Linux? Ya, ia seperti cuba mengatur projek kumpulan di kolej—penuh dengan kekeliruan, ralat pelik dan banyak menuding jari. Tetapi Pergi? Go tidak peduli pada platform yang anda gunakan. Susunnya sekali, dan ia akan berjalan hampir di mana-mana sahaja. Ia adalah sikap "Pasti, apa pun" dunia pengaturcaraan.
Dan jika anda seorang yang gemar menulis bekas Docker (dan mari kita nyata, siapa yang tidak suka kontena yang bagus?), binari Go adalah impian yang menjadi kenyataan. Perduaan tunggal yang dipautkan secara statik yang tidak bergantung pada persekitaran masa jalan yang "betul" adalah sama dengan mempunyai rakan sebilik yang benar-benar memasak hidangan mereka tanpa diminta. Ia terlalu bagus untuk menjadi kenyataan, tetapi inilah kita.
Sekarang, saya tahu apa yang anda fikirkan—"Tetapi bagaimana jika saya hanya mahu membina projek sampingan kecil?" Pasti, anda boleh. Tetapi mari kita menjadi nyata. Sebaik sahaja anda mendengar bahawa Google, syarikat yang mengawal kebanyakan internet, mencipta Go, anda akan berasa seperti anda menggunakan alat kuasa yang direka untuk penguasaan dunia. Sudah tentu, anda mungkin akan bermula dengan pelayan web kecil atau beberapa API, tetapi jauh di lubuk hati, anda tahu anda boleh membina sistem berskala Google seterusnya dengan perkara ini jika anda benar-benar mahu.
Betul—Go direka untuk skala, tetapi jangan risau, tiada siapa yang akan menilai anda jika projek pertama anda ialah apl senarai tugasan. (Sebenarnya, saya mungkin. Sikit sahaja.)
Kita semua suka projek sumber terbuka, bukan? Ia memberikan kita perasaan kabur hangat sebagai sebahagian daripada "komuniti". Nah, Go ialah sumber terbuka, dan anda boleh menggali kod itu jika anda mahu. Adakah anda benar-benar akan menyumbang apa-apa kepadanya? Mungkin tidak. Tetapi hanya mengetahui bahawa anda boleh jika anda rasa ia sudah memadai, bukan?
Anda boleh memberitahu orang semasa pertemuan, "Ya, saya bekerja dengan Go—sumber terbuka sepenuhnya, ia bagus untuk komuniti." Kemudian hanya duduk dan nikmati anggukan hormat daripada rakan sebaya anda. Tiada siapa yang perlu tahu sumbangan sebenar anda kebanyakannya terdiri daripada repo membintangi GitHub.
Lihat, kita semua pernah menjadi sebahagian daripada komuniti pengaturcaraan yang… baiklah, katakan mereka boleh menjadi "bersemangat". Sesetengah komuniti bahasa (kami tidak menamakan nama, tetapi anda tahu siapa anda) boleh menjadi sedikit menakutkan dengan "amalan terbaik" mereka dan sentiasa memilih cara yang betul untuk menulis gelung for. Tetapi komuniti Go? Ia seperti menghirup udara segar. Mereka menyokong, membantu dan tidak akan membuatkan anda berasa seperti orang bodoh kerana bertanya soalan mudah. Ia hampir mengganggu betapa sejuknya mereka.
Mungkin kerana bahasa itu sendiri tidak cuba menjadi terlalu rumit, jadi tiada siapa yang merasakan perlu untuk bertindak lebih baik. Walau apa pun alasannya, komuniti Go ialah jenis tempat di mana anda akan mendapat sokongan sebenar dan bukannya penjaga pintu yang menyamar sebagai "nasihat".
Jadi, mengapa semua orang perlu belajar Go? Kerana ia mudah tanpa menjadi bodoh, pantas tanpa membuat kekecohan, dan cukup berkuasa untuk mengendalikan apa sahaja projek gila yang anda lemparkan. Ia seperti rakan yang sentiasa tenang, terkumpul, dan entah bagaimana berjaya menjadi sangat produktif tanpa menjadikannya kelihatan seperti kerja keras.
Jika anda bosan dengan bahasa yang sama ada memanjakan anda atau menuntut anda mengorbankan kewarasan anda, Go adalah tempat yang menarik untuk anda. Cubalah, dan siapa tahu—anda mungkin menjadi pembangun yang terlalu bersemangat di pejabat. Dan secara jujur, bukankah itu menyeronokkan?
Atas ialah kandungan terperinci Mengapa Semua Orang Perlu Belajar Pergi (Walaupun Anda Rasa Anda Tidak Memerlukan Bahasa Lain dalam Hidup Anda). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!