Panduan pengembang tentang pro dan kontra Python

Python ditagih oleh Python Software Foundation karena mudah dipelajari dan dijalankan di mana-mana. Ini berguna untuk berbagai jenis aplikasi, termasuk pengembangan Web, komputasi ilmiah, dan pendidikan. Google dan Instagram termasuk di antara banyak pengguna Python, dan bahasanya mendapat skor bagus dalam indeks popularitas.

Tetapi Python memiliki masalah, dengan pertanyaan yang muncul tentang kinerja dan desainnya yang unik. Untuk mengetahui apa yang benar - dan mungkin tidak begitu benar - tentang Python, Editor di Large Paul Krill meminta masukan dari orang-orang terkemuka di komunitas Python.

Pro Python

Bacalah, gunakan dengan mudah. "Karakteristik utama program Python adalah mudah dibaca," kata Pierre Carbonnelle, programmer dan blogger Python yang menjalankan indeks bahasa PyPL. "Ini bermanfaat bagi Anda dan orang lain. Ini membantu Anda berpikir lebih jernih saat menulis program, dan membantu orang lain yang akan mempertahankan atau meningkatkan program Anda. Dalam kedua kasus, menulis program Python lebih sedikit daripada menulis program. dalam bahasa lain seperti C ++ atau Java. " Keterbacaan Python memfasilitasi pengembangan open source, Carbonnelle menambahkan.

Python mudah digunakan dan sangat populer di dunia akademis, menciptakan kumpulan bakat yang besar, kata Sumit Chachra, CTO di Tivix, sebuah perusahaan konsultan perangkat lunak yang berspesialisasi dalam pengembangan Python / Django. Django dan Python dimanfaatkan oleh Tivix dalam pengembangan Web dan seluler, katanya.

Python adalah cara yang sangat produktif untuk menulis kode, kata Stephen Deibel, dari Wingware, yang membuat Wing Python IDE. "Beberapa di antaranya berasal dari sintaksis sederhana dan keterbacaan - hampir tidak ada 'boilerplate' sama sekali. Beberapa di antaranya berasal dari pustaka standar dan bawaan yang kaya dan dirancang dengan baik serta ketersediaan banyak sumber terbuka pihak ketiga perpustakaan dan modul. " Dengan mudah dipahami, kode lebih mudah dipelihara, tambahnya. 

Python, kata Chachra, diketik secara dinamis dan fleksibel, dengan kode yang tidak terlalu bertele-tele. Namun, ia mengutip pengetikan dinamis sebagai potensi negatif (lihat di bawah).

Peluang Internet of Things. Python mungkin menjadi populer untuk Internet of things, karena platform baru seperti Raspberry Pi didasarkan padanya, kata Carbonnelle. Dokumentasi Raspberry Pi mengutip bahasa tersebut sebagai "bahasa pemrograman yang hebat dan kuat yang mudah digunakan (mudah dibaca dan ditulis) dan dengan Raspberry Pi memungkinkan Anda menghubungkan proyek Anda ke dunia nyata."

Manfaat pengkodean asinkron. Python, kata Deibel, "sangat bagus untuk menulis kode asynchronous, yang mana daripada threading menggunakan satu event loop untuk bekerja dalam unit kecil." Kode ini, katanya, seringkali lebih mudah untuk ditulis dan dipelihara tanpa membingungkan sumber daya, kebuntuan, dll. "Generator Python adalah cara yang bagus untuk melakukan interleave menjalankan banyak loop pemrosesan dalam pendekatan ini." 

Pendekatan multiparadigma mengalahkan Java. Pendekatan pemrograman Python tidak terbatas seperti Java, kata Carbonnelle. "Misalnya, Anda tidak perlu membuat kelas OO untuk mencetak 'Hello world' dengan Python - Anda harus melakukannya di Java." Tidak seperti Java, Python adalah multiparadigma dan mendukung gaya pemrograman OO, prosedural, dan fungsional, katanya. (Java baru-baru ini menambahkan kemampuan fungsional di Java 8.)

"Dengan Python, semuanya adalah sebuah objek," kata Brian Curtin, anggota dewan direksi Python Software Foundation dan kontributor inti CPython. "Dimungkinkan untuk menulis aplikasi dengan Python menggunakan beberapa paradigma pemrograman, tetapi itu membuat penulisan kode berorientasi objek sangat jelas dan dapat dimengerti."

Kontra Python

Kecepatan bisa menjadi masalah. "Karena ini adalah bahasa yang ditafsirkan, sering kali lebih lambat daripada bahasa yang dikompilasi," kata Curtin. "Namun, ini kembali untuk memisahkan bahasa dari runtime. Tolok ukur tertentu dari kode Python yang dijalankan di bawah PyPy berjalan lebih cepat daripada kode C yang setara atau lainnya."

"Kemungkinan kerugian dari Python adalah kecepatan eksekusinya yang lambat," kata Carbonnelle. Tetapi banyak paket Python telah dioptimalkan selama bertahun-tahun dan dijalankan dengan kecepatan C, katanya.

Performa, kata Chachra, "lebih lambat dibandingkan dengan bahasa lama seperti C / C ++ dan bahkan yang lebih baru seperti Go."

Absen dari komputasi seluler dan browser. "Python hadir di banyak platform server dan desktop, tetapi lemah dalam komputasi seluler; sangat sedikit aplikasi ponsel cerdas yang dikembangkan dengan Python," kata Carbonnelle. "Ini juga jarang terlihat di sisi klien aplikasi Web."

Python tidak ada di browser Web, catatan Deibel. "Benar-benar memalukan. Ada brython, tapi menurutku itu tidak bisa digunakan di dunia nyata." Python sulit diamankan, dan itulah mengapa tidak ada di browser, tambahnya. "Masih belum ada sandbox / jail aman yang baik untuk Python, dan saya pikir itu pada dasarnya dianggap tidak mungkin untuk CPython (implementasi standar). 

Batasan desain. Penggemar Python mengutip beberapa masalah dengan desain bahasa. Karena bahasa ini diketik secara dinamis, itu membutuhkan lebih banyak pengujian dan memiliki kesalahan yang hanya muncul saat runtime, kata Chachra.

Kunci interpreter global Python, sementara itu, berarti hanya satu utas yang dapat mengakses internal Python pada satu waktu, kata Deibel. "Ini mungkin kurang penting hari ini, karena Anda dapat dengan mudah mengeluarkan tugas ke proses terpisah menggunakan modul multiprosesing, atau menulis kode asinkron sebagai gantinya." 

Curtin mengatakan ada beberapa konvensi seputar penggunaan Python, tetapi spasi yang signifikan adalah salah satu yang diberlakukan oleh penerjemah. "Struktur program Python harus konsisten, jadi jika tanda kurung atau pengenal lain memungkinkan pengguna lebih bebas dalam bahasa lain, indentasi adalah hal yang penting dalam hal Python."