Apa Yang Unggul Dari Bahasa Pemrograman Go Atau Golang?
Pada tahun 2007, frustrasi oleh beberapa inefisiensi C++ dan karakter terlampau sulit, dan inginkan bahasa pemrograman yang direncanakan khusus untuk processor multi-core dan secara efektif mengelola beberapa proyek besar, tiga insinyur Google, Robert Griesemer, Rob Pike, dan Ken Thompson, membuat bahasa Go.
Maksudnya untuk membuat C++ yang dipertingkat yang lebih gampang dipakai — Go diperkembangkan berdasar sintaks disiplin C — tapi juga ambil ide dari beberapa kesederhanaan Python dan feature bermanfaat Javascript.
Gabungan ini jadikan Go salah satunya bahasa paling efisien untuk infrastruktur jumlah besar, dan salah satunya bahasa paling simpel untuk men-debug project kompleks.
Proyek open-source Go pertama kalinya dipublikasikan di tahun 2009, dan versi 1.0 dengan cara resmi dirilis di tahun 2012. Sejumlah fitur khusus baru sudah dipertambah, seperti generik dan pengatasan kesalahan di tahun 2018.
Go versi Golang: apa yang perlu dipanggil Go
Nama resmi bahasa itu ialah Go, dengan ketidaktahuan atas namanya mayoritas karena nama domain golang.org (go.org tidak ada).
Walau istilah resminya ialah Go, sebagian orang memandang Golang semakin nyaman dipakai dan menahan ketidaktahuan dengan permainan taktik Go, hingga masih tetap bertahan sebagai nama alternative yang dicintai.
Apakah itu Go?
Go diketik secara statis
Ketidaksamaan di antara Go dan bahasa yang diketik secara aktif seperti JavaScript dan Python:
- Dalam bahasa statis, Anda perlu mengumumkan type data faktor saat sebelum memakainya.
- Dalam bahasa yang diketik secara aktif, Anda cuma lakukan pengecekan tipe saat runtime — tidak pada waktu gabungan.
Program yang diketik secara statis akan tidak berhasil untuk dikompilasi sampai kesalahan diperbarui, dan skrip aktif bisa diawali bahkan juga bila berisi kesalahan kunci yang kemungkinan macet saat digerakkan.
- Agar semakin banyak ketidaksamaan di antara Go dan bahasa yang diketik secara aktif seperti Python, baca tutorial
Pengetikan statis Go pastikan alterasi dan kompatibilitas sekalian menghindar kesalahan run-type dan kesusahan debugging yang bisa terjadi dalam bahasa yang diketik secara aktif.
Go dikompilasi dibanding didefinisikan
Sebagai bahasa yang dikompilasi, Go dilukiskan dalam perintah target machine dalam 0s dan 1s. Dan bahasa yang didefinisikan didefinisikan (tanpa mengkompilasinya jadi kode mesin), perintah program memakai mesin virtual dibanding mesin sasaran.
Ini memungkinkannya Go jalan bisa lebih cepat dan tawarkan performa yang lebih bagus dibanding program bahasa yang didefinisikan. kesalahan bahasa yang dikompilasi menahan gabungan kode, dan kesalahan dalam program bahasa yang didefinisikan diketemukan saat digerakkan, dalam bahasa yang didefinisikan bisa melakukan modifikasi kode bahkan juga saat program sedang berjalan.
Support bertepatan dan multi-core
Karena Go direncanakan semenjak awalnya untuk berjalan pada banyak core, Go mempunyai support yang kaya untuk konkurensi dan untuk mapping saat semakin banyak core dipertambah.
Go memakai "goroutine" dan aliran, peranan bertepatan yang memungkinkannya tersisa program untuk hitung saat mereka jalan, membuat management keterikatan yang efektif.
Goroutine sangatlah baik karena jadi berlanjut bila Anda mempunyai waktu nantikan jaringan atau bahkan juga semua database tidak berhasil, hingga Anda bisa menangani permasalahan apa pun itu yang ada. Penghimpunan sampah otomatis Go mengikuti Python dan jadikan pengalaman pengkodean semakin nyaman.
Modul Go ialah pengurus package simpel Golang yang bisa diedarkan memakai beberapa kumpulan kecil perintah. Alat gofmt
Go benar-benar membantu untuk memformat dan mengindentasi kode dengan cara otomatis, dengan alat lain seperti Go run, Go get, dan Godoc nyaman. Ini benar-benar serbaguna, dan gampang untuk menukar bahasa skrip Anda dengan Golang.
Go dibayarkan tinggi dan keinginan tinggi
Saat ini, lebih dari sepuluh tahun semenjak launching sumber terbuka asli Go, Go ialah bahasa berpenghasilan paling tinggi ke-2 dengan pendapatan rata-rata $140.000 di AS, sebagai salah satunya bahasa yang paling dicintai oleh programmer, dan pengembang Go mempunyai keinginan yang semakin tinggi dibanding awalnya.
Ini ialah saat yang pas untuk belajar Go, dan berikut argumennya:
Untuk Apa Go Baik?
Sintaks Simpel dan Gampang Didalami
Go berisi sebagian kecil ide terkenal yang di inspirasi oleh bahasa lain, direncanakan untuk membikin kode sesimpel mungkin. Ini mengirit waktu penyekenan kode untuk mengeceknya, dan mengirit waktu menulis semakin sedikit kode.
Misalkan, Go mempunyai tipe data yang sedikit, seperti int
, string
, bool
, float64
, dan complex128
, dan masing-masing mempunyai pilihan standar yang meliputi mayoritas pemakaian. Dengan sedikit opsi dan ide untuk didalami, pemrogram ekspert bisa pelajari Go cuma dalam sekian hari.
Bahasa tersebut serupa dengan C, namun tanpa beberapa inefisiensi C yang membuat frustrasi yang kurangi saat yang dibutuhkan untuk bersihkan kode yang kompleks. Bila Anda mempunyai pengalaman Java atau C awalnya, Anda tidak kesusahan pahami Go karena semua bahasa ini ikuti pendekatan prosedural yang serupa.
- Apabila Anda kesusahan temukan pelatihan yang mengajari Anda Mulai dari sejak awalnya, cobalah pelatihan Learn Go kami.
Go itu Cepat
Kode Go dikompilasi dan langsung ditranslate ke pola yang bisa dipahami processor. Ini membuat lebih cepat dibanding bahasa seperti Java yang pertama kali perlu dikompilasi jadi kode byte, saat sebelum digerakkan lewat mesin virtual (VM).
Tawarkan ukuran program yang kecil, file biner Go dapat memiliki ukuran sampai 10x lebih kecil dari yang sama dengan Java. Ini khususnya penting untuk program besar yang diaplikasikan di beberapa server, benar-benar kurangi waktu pemuatan file dan hasilkan performa yang lebih baik.
Program Go mudah, karena runtime Go bersihkan memori yang tidak kepakai sebagai kode tambahan dalam biner yang bisa dilakukan. Ini membuat lebih gampang untuk menulis kode Go yang irit memori karena kompiler Go mempunyai beberapa nalar kode cadangan dalam tiap program.
Bahasa seperti Rust dan C++ memakai memori yang sedikit sedikit dibanding Go, tetapi, ini karena bahasa itu memberi kontrol yang semakin lebih besar ke pengembang atas pemakaian memori, dan runtime Go dengan cara otomatis tangani ini untuk efektivitas.
Direncanakan untuk processor multi-core dan diskalakan secara baik untuk konkurensi, menjadikan bagus untuk project bertaraf besar
Banyak bahasa yang direncanakan saat sebelum pengadopsian processor multi-core (seperti Java, JavaScript, C++, dan Python) alami kesusahan mapping dan one-threaded. Sebagai bahasa yang lebih kekinian yang direncanakan untuk processor multi-core, Go berisi support efisien untuk proses paralel (seperti C#, Erlang, dan bahasa yang lain). Itu direncanakan di era internet, jadi Go tidak membutuhkan library faksi ke-3 untuk support service situs.
Goroutine bisa diskalakan dan tidak memblok, bagus untuk saat proses-proses serempak dibutuhkan — dan cuma memakai 2kb memori overhead. Goroutine ialah gabungan nyaman dari feature async Javascript dengan multi-threading Java standard. Mengakibatkan, project sumber terbuka seperti Kubernetes, Docker, InfluxDB, dan Jaeger semua pilih Go sebagai bahasa pemrograman mereka.
Gabungan Golang yang cepat dan efektif menjadikan efisien bahkan juga untuk project paling besar sekalinya. Bahkan juga project yang paling sulit juga bisa secara cepat dibuat dan ditangani secara efektif untuk kurangi bug dan membantu proses debug secara mudah.
Pada project besar di mana banyak pengembang bekerja bersama untuk memiara dan meningkatkan dalam team, penting untuk mereka agar bisa bekerja secara sesuai dan pahami jalan keluar keduanya. Go direncanakan berdasar filosofi jika harus ada sedikit jalan keluar (baiknya cuman satu) dibanding bermacam jalan keluar yang problematis hingga memiara proyek besar dan kompleks ini sesimpel mungkin.
Untuk Apa Go Dipakai?
Infrastruktur
Alat sumber terbuka terkenal seperti Kubernetes, Docker, dan Prometheus dicatat dalam Go untuk implementasi, mapping, dan management container untuk jalankan dan memaketkan program.
Alat service cloud seperti Terraform dan OpenShift dicatat dalam Go untuk tawarkan pilihan cloud dan implementasi tambahan, dengan OpenShift berjalan pada atas Kubernetes dan dipakai oleh perusahaan seperti KPMG untuk mengotomatisasi dan tingkatkan track kerja AI mereka.
Untuk operasi segi server, Netflix memakai Go untuk beberapa arsitektur servernya, menulis proxy Rend di Go. Netflix berbicara:
"Keputusan untuk memakai Go tersengaja, karena kami memerlukan suatu hal yang mempunyai latency lebih rendah dibanding Java (di mana interval penghimpunan sampah jadi permasalahan) serta lebih produktif untuk pengembang dibanding C, sementara tangani beberapa puluh ribu jaringan client. Cocokkan ruangan ini secara baik.
Dropbox berpindah dari Python ke Go di tahun 2014 untuk feature backend yang penting untuk performa.
interface baris perintah
Perusahaan seperti Comcast, GitHub, Stripe, dan Uber memakai Go untuk interface baris perintah mereka. Comcast mengurus library client sumber terbuka yang dicatat dalam Go, dan Uber memakai Go untuk CLI API untuk Jaeger.
program situs
Program situs besar seperti program perbankan online Monzo sudah dibuat di Go semenjak awalnya, dan saat ini memakainya untuk menghosting lebih dari 1.600 service micro. Monzo sudah memakai Go cuma semenjak 2015, bekerja dengan Kubernetes dan menyorot jika Go "cukuplah sederhana, diketik secara statis, dan mempermudah kami untuk mengikutsertakan orang."
SoundCloud sudah memakai Go semenjak tahun 2012 dalam mekanisme build dan aplikasinya, walau umumnya memakai Ruby on Rails. SoundCloud meningkatkan apa yang pada akhirnya jadi Prometheus di tahun 2012, yang saat ini dipakai oleh AT&T, Honeywell, JP Morgan dan Chase, dan banyak beberapa perusahaan besar yang lain.
Program situs boot.dev kami, direncanakan untuk mengajarkan Anda pengetahuan computer secara interaktif, dicatat dalam Go.
Perusahaan besar yang lain yang memakai Go terhitung Google dan YouTube (jelas), Media, BBC, Dailymotion, SendGrid, dan Badoo.
Kriptografi dan Cryptocurrency
Khususnya, implikasi Bitcoin Lightning Network dicatat dalam Go, dan Geth, implikasi khusus Ethereum.
Evaluasi mesin dan pengetahuan data
Baik Go dan Python sudah dipandang seperti bahasa pemrograman terbaik untuk AI dan evaluasi mesin, tetapi Go ketinggalan jauh ada di belakang R dan Python sebagai pengetahuan data dan bahasa evaluasi mesin yang terpopuler.
Go bisa tangani permasalahan matematika yang sulit lebih cepat dibanding Python, walau Python mempunyai keunggulan dengan keserbagunaan, keterbacaan, dan pemakaian serbaguna untuk pengetahuan data. Anda saat ini bisa jalankan mode Tensorflow di Go tidak cuma Python untuk manfaatkan beberapa keunggulan kecepatan Go.
Kami percaya jika Go bisa menjadi bahasa evaluasi mesin yang semakin banyak dipungut di periode kedepan.
Keterbatasan Go
Go tidak memberikan dukungan peranan generik - Anda tidak bisa menulis kode implisit, dan minimnya support generik menghancurkan efektivitas dan kurangi pemakaian kembali kode Anda. Kabarnya, obat generik akan datang dalam versi 2.
Kode Go memerlukan waktu semakin lama untuk menulis dibanding Python - Sintaks simpel Go membuat gampang untuk dikodekan, tapi Python kerap bisa menulis cuma dalam beberapa baris apa yang diperlukan Go lebih dari 2x lipat untuk diikuti.
Tidak pas untuk beberapa macam program - Go benar-benar baik untuk banyak hal seperti menjaga mekanisme kompleks yang layani banyak audience untuk mapping mekanisme backend, tapi feature yang serupa yang membuat benar-benar hebat untuk pemakaian ini, seperti tapak jejak memorinya yang kecil, membuat kurang bermanfaat untuk project yang lebih simpel dan bertaraf lebih kecil. Untuk membikin arketipe program secara cepat atau membuat demonstrasi seukur gigitan, Anda akan menyenangi Python dan pengetikan aktifnya dibanding Go.
Go lebih baru, dan karenanya mempunyai perlibraryan dan komune yang kurang luas dibanding beberapa bahasa, seperti Python.
Ringkasan: Haruskah Anda Membuat Kode di Go?
Pemrogram Go mempunyai upah paling tinggi, sukai menulis code dengan Go, dan perusahaan menuntut untuk mengaryakan pengembang Go.
Jadi haruskah Anda belajar Go ?
Kami betul-betul berpikiran demikian.
Kami fans berat Golang di Boot.dev, dan membuat pelatihan Belajar Go kami untuk membantu mengajari Go seefektif kemungkinan — dengan belajar sekalian lakukan. Pelajaran interaktif kami membuat Anda membuat kode di Go untuk membenahi permasalahan, membuat program, dan kami bahkan juga membuat pelatihan Penyiapan Interviu Go khusus untuk memperoleh tugas sesudah Anda mendapat ketrampilan pokok.