Mana yang akan Anda pilih antara Python dan Go? Jika Anda memiliki pemahaman lebih dalam tentang Go (Golang), Anda pasti akan memilih GO terlebih dahulu. Jika Anda tidak yakin, Anda akan memilih Python. Kalau begitu mari kita bahas. Memilih mitra Python, 5 alasan akan membuat Anda memilih Go. Mari kita baca artikelnya bersama-sama. Benar!

“Python sangat kuat, terutama Python 3 yang memiliki kemampuan asynchronous, namun GO akan sepenuhnya menggantikan kehadirannya di perusahaan besar…”

Jika Anda benar-benar memahami kutipannya, Anda bisa mencoba bahasa pemrograman Go. Menurut saya Go adalah bahasa pemrograman yang sangat sederhana, dan beradaptasi dengan lingkungan aplikasi apa pun, bahkan lebih sederhana daripada pemrograman Javascript. Ini mungkin alasan mengapa bahasa pemrograman GO menjadi populer dalam beberapa tahun terakhir.



Pada artikel ini, saya akan membandingkan aspek-aspek berikut dari kedua bahasa tersebut. Parameter dari aspek-aspek ini akan membantu Anda menentukan bahasa mana yang lebih cocok untuk proyek Anda.

  • pertunjukan
  • Skalabilitas
  • Aplikasi praktis
  • cara eksekusi
  • Perpustakaan program
  • Keterbacaan kode

Beranda situs web TreeScale.com dan API adalah aplikasi web yang didasarkan pada beberapa alat analisis. Inilah tumpukan teknologi mereka:

Ujung depan beranda React.js

Backend beranda Django Python dan layanan otentikasi

Layanan API Node.js

Basis data PostgreSQL, sistem pencatatan Cassandra

Registri kontainer khusus menggunakan bahasa Rust

ular piton

Repustate hampir seluruhnya merupakan toko Python. Mereka menggunakan Django untuk mengimplementasikan API dan situs web. Jadi (saat ini) masuk akal untuk menggunakan Python untuk mengimplementasikan mesin emosi Arab agar kodenya tetap konsisten. Hanya untuk pembuatan prototipe dan implementasi, Python adalah pilihan yang baik. Kemampuan ekspresifnya sangat kuat, perpustakaan kelas pihak ketiga dan sebagainya juga sangat bagus. Jika Anda menyukai layanan web, Python adalah pilihan yang tepat. Namun saat Anda melakukan penghitungan tingkat rendah dan sangat bergantung pada tabel hash (tipe kamus dengan Python) sebagai perbandingan, semuanya menjadi lambat. Kami dapat memproses sekitar dua hingga tiga dokumen berbahasa Arab per detik, namun ini terlalu lambat. Sebagai perbandingan, mesin emosi berbahasa Inggris mereka dapat memproses sekitar lima ratus dokumen per detik.

Dari penjelasan di atas, Anda dapat melihat bahwa kerangka dasar sepenuhnya didasarkan pada pemisahan layanan mikro dan logika (pemisahan front-end dan back-end), dan bahkan teknologi yang sama sekali berbeda untuk mencapainya.

Alasan utama mereka mengintegrasikan layanan API dan backend ke dalam satu proyek adalah karena keduanya serupa di banyak tempat dan dikodekan melalui berbagai bahasa atau teknologi, dan terdapat banyak kode duplikat. Pada akhirnya, mereka perlu menghabiskan banyak waktu mempersonalisasikan layanan API Django, khususnya dalam menyesuaikan respons JSON.

Saya merasa bahwa ketika Anda mengembangkan beberapa aplikasi biasa, menggunakan Django adalah hal yang bagus, tetapi ketika Anda memerlukan kinerja yang lebih tinggi dan beberapa modul yang dipersonalisasi, penggunaan Django akan membuatnya lebih rumit.

Mengapa memilih pemrograman Go?

1. Kompilasi ke biner tunggal

Golang adalah bahasa yang dikompilasi dan pengembang Googe berupaya keras untuk mewujudkannya. Ini menggunakan tautan statis untuk benar-benar menggabungkan semua file dan modul perpustakaan yang bergantung ke dalam satu biner berdasarkan jenis dan lingkungan sistem operasi, yang juga berarti bahwa jika Anda ingin mengkompilasi aplikasi back-end ke sistem operasi Linux dan Dalam X86- berbasis CPU, Anda hanya perlu mengunduh aplikasi biner yang dikompilasi ke server, dan kemudian aplikasi back-end dapat berfungsi, yang tidak memerlukan file dependen apa pun.

2. Sistem tipe statis

Sistem tipe sangat penting untuk aplikasi skala besar. Python adalah bahasa yang bagus dan menarik, tetapi terkadang Anda akan melihat beberapa pengecualian yang tidak biasa karena ketika Anda mencoba menggunakan variabel sebagai variabel integer, ternyata variabel tersebut bertipe string.

Django akan menghentikan proses karena def some_view (permintaan) ini: user_id = request.POST.get ('id', 0)

Go mengkompilasi dan memberi tahu Anda bahwa ini adalah kesalahan kompiler, dan di sinilah ia memenangkan waktu untuk masalah-masalah bodoh.

3. optimalisasi

Yang mengejutkan, Go lebih cepat daripada Python (versi 2 atau 3) di sebagian besar skenario aplikasi. Hasil perbandingannya bisa dilihat di Benchmarking Game yang tentunya tidak adil, tergantung jenis aplikasi dan use case pengguna.

Untuk kasus kami, Go mendapatkan kinerja yang lebih baik karena modul multi-thread dan skalabilitas CPU-nya sendiri. Kapan pun kita perlu menjalankan beberapa permintaan internal, kita dapat menggunakan Goroutine untuk mengeksekusinya secara terpisah, yang sepuluh kali lebih hemat sumber daya dibandingkan Threads dengan Python. Berkat fitur bahasa bawaan ini, kita dapat menghemat banyak sumber daya (memori dan CPU).

4. Go tidak lagi memerlukan kerangka web

Ini adalah hal yang sangat keren untuk bahasa pemrograman. Pembuat dan komunitas bahasa Go memiliki banyak alat asli bawaan yang didukung oleh bahasa inti, dan dalam banyak kasus, Anda tidak lagi memerlukan perpustakaan pihak ketiga. Misalnya, ia memiliki templat Http, JSON, dan HTML bawaan. Anda bahkan dapat membangun layanan API yang sangat kompleks tanpa harus khawatir menemukan perpustakaan pihak ketiga di Github.

Tentu saja, Go juga memiliki banyak perpustakaan dan kerangka kerja untuk membangun proyek web, tetapi saya menyarankan Anda untuk tidak menggunakan perpustakaan pihak ketiga untuk membangun proyek web atau layanan API Anda karena dalam banyak kasus menggunakan paket asli akan membuat hidup Anda lebih mudah.

5. dukungan IDE dan debugging yang lebih baik

Dukungan IDE adalah salah satu pertimbangan terpenting ketika Anda mencoba mengubah bahasa pemrograman Anda. IDE yang ramah dapat menghemat rata-rata 80% waktu pemrograman Anda. Go Plugin For JetBrains IDEA, juga menyediakan dukungan lain, seperti (Webstorm, PHPStorm, dll…). Plugin ini menyediakan layanan apa pun yang Anda perlukan dalam pengembangan proyek. JetBrains IDEA yang kuat dapat membuat pengembangan Anda menjadi lebih hebat.

Pilih Pergi, atau pulang saja?

Mozilla secara internal mengalihkan arsitektur logging besarnya ke Go, sebagian karena [goroutine] yang kuat. Bahasa Go dirancang oleh orang-orang di Google, dan dukungan untuk konkurensi adalah prioritas utama di awal desain, daripada menambahkannya setelahnya seperti pada berbagai solusi Python. Jadi kami mulai beralih dari Python ke Go.

Meskipun Go code belum menjadi produk yang diluncurkan secara resmi, namun hasilnya sangat menggembirakan. Kami sekarang dapat memproses seribu dokumen per detik, menggunakan lebih sedikit memori, dan tidak perlu men-debug masalah yang Anda temui dengan Python: multi-proses / peristiwa / "mengapa Control-C tidak dapat mematikan proses" yang jelek.

Mengapa kami menyukai GO?

Siapa pun yang memiliki sedikit pemahaman tentang cara kerja bahasa pemrograman (ditafsirkan vs dikompilasi, dinamis vs statis) akan berkata, “Potong, tentu saja, Go lebih cepat”. Ya, kami juga dapat menulis ulang semuanya di java, dan kami dapat melihat peningkatan serupa dan lebih cepat, namun bukan itu alasan mengapa bahasa Go unggul. Kode yang Anda tulis di Go sepertinya benar. Saya tidak tahu apa yang terjadi, tetapi setelah kode dikompilasi (kecepatan kompilasi cepat), Anda akan merasakan bahwa kode tersebut akan berfungsi (tidak hanya akan berjalan tanpa kesalahan, tetapi bahkan benar secara logis). Saya tahu ini kedengarannya tidak bisa diandalkan, tetapi memang demikian. Ini sangat mirip dengan Python dalam hal redundansi (atau non-redundansi). Dibutuhkan fungsi sebagai tujuan pertama, sehingga pemrograman fungsional akan mudah dipahami. Dan tentu saja, thread dan saluran membuat hidup Anda lebih mudah, Anda bisa mendapatkan peningkatan kinerja yang besar dari pengetikan statis, dan Anda dapat mengontrol alokasi memori dengan lebih baik, namun Anda tidak perlu membayar terlalu banyak untuk ekspresi bahasa. biaya.

Berdasarkan statistik kode kami, kami menulis kode 64% lebih sedikit setelah menulis ulang proyek di Go.

Anda tidak perlu men-debug kode yang tidak ada. Semakin sedikit kode, semakin sedikit kesalahan!

Kesimpulannya

Go memberi kita fleksibilitas yang luar biasa. Satu bahasa dapat digunakan di semua skenario pengguna, dan berfungsi dengan baik di semua skenario pengguna. Di layanan Backend dan API kami, kami mendapatkan optimasi kinerja 30%. Dan sekarang saya dapat memproses log secara real-time, mengonversi ke database, dan memproses satu atau lebih layanan melalui Websocket! Ini adalah fitur yang sangat kuat yang disediakan oleh fitur bahasa Go.