Panduan pemaju untuk kebaikan dan keburukan Python

Python ditagih oleh Python Software Foundation kerana mudah dipelajari dan dijalankan di mana sahaja. Ia berguna untuk pelbagai jenis aplikasi, termasuk pengembangan Web, pengkomputeran saintifik, dan pendidikan. Google dan Instagram telah menjadi antara banyak pengguna Python, dan bahasa mendapat markah yang baik dalam indeks populariti.

Tetapi Python mempunyai masalah, dengan pertanyaan yang timbul mengenai prestasi dan kebiasaan reka bentuknya. Untuk mengetahui apa yang betul - dan mungkin tidak betul - mengenai Python, Editor di Large Paul Krill meminta orang-orang kenamaan di komuniti Python untuk memberi input.

Pro Python

Bacalah, gunakannya dengan senang. "Ciri utama program Python adalah bahawa ia mudah dibaca," kata Pierre Carbonnelle, pengaturcara dan blogger Python yang menjalankan indeks bahasa PyPL. "Ini memberi manfaat kepada anda dan orang lain. Ini membantu anda berfikir dengan lebih jelas ketika menulis program, dan membantu orang lain yang akan mengekalkan atau meningkatkan program anda. Dalam kedua kes ini, memerlukan lebih sedikit usaha untuk menulis program Python daripada menulisnya dalam bahasa lain seperti C ++ atau Java. " Kebolehbacaan Python memudahkan pembangunan sumber terbuka, tambah Carbonnelle.

Python mudah digunakan dan sangat popular di akademik, mewujudkan kumpulan bakat yang besar, kata Sumit Chachra, CTO di Tivix, sebuah syarikat perunding perisian yang mengkhususkan diri dalam pengembangan Python / Django. Django dan Python dimanfaatkan oleh Tivix dalam pengembangan Web dan mudah alih, katanya.

Python adalah cara yang sangat produktif untuk menulis kod, kata Stephen Deibel, dari Wingware, yang menjadikan Wing Python IDE. "Sebahagian daripadanya berasal dari sintaks dan kebolehbacaan yang mudah - hampir tidak ada 'boilerplate' sama sekali. Sebahagiannya berasal dari perpustakaan binaan dan standard yang kaya dan direka dengan baik dan terdapat banyak sumber terbuka pihak ketiga perpustakaan dan modul. " Dengan mudah difahami, kodnya lebih mudah dijaga, tambahnya. 

Python, kata Chachra, ditaip secara dinamik dan fleksibel, dengan kod yang kurang verbose. Namun, dia menyebut penaipan dinamik sebagai potensi negatif (lihat di bawah).

Peluang Internet perkara. Python mungkin menjadi popular di Internet, kerana platform baru seperti Raspberry Pi berdasarkannya, kata Carbonnelle. Dokumentasi Raspberry Pi menyebut bahasa sebagai "bahasa pengaturcaraan yang hebat dan hebat yang mudah digunakan (senang dibaca dan ditulis) dan dengan Raspberry Pi membolehkan anda menghubungkan projek anda ke dunia nyata."

Manfaat pengekodan segerak. Python, kata Deibel, "sangat bagus untuk menulis kod tak segerak, yang lebih baik daripada mengikat menggunakan gelung acara tunggal untuk melakukan kerja dalam unit kecil." Kod ini, katanya, lebih mudah ditulis dan dikekalkan tanpa membingungkan pertikaian sumber, kebuntuan, dan lain-lain. "Penjana Python adalah cara yang baik untuk mengganggu menjalankan banyak gelung pemprosesan dalam pendekatan ini." 

Pendekatan multiparadigm mengungguli Java. Pendekatan pengaturcaraan Python tidak sebatas Java, kata Carbonnelle. "Sebagai contoh, anda tidak perlu membuat kelas OO untuk mencetak 'Hello world' di Python - anda harus di Java." Tidak seperti Java, Python adalah multiparadigm dan menyokong gaya pengaturcaraan OO, prosedur, dan fungsional, katanya. (Java baru-baru ini menambahkan kemampuan berfungsi di Java 8.)

"Di Python, semuanya adalah objek," kata Brian Curtin, ahli lembaga pengarah Python Software Foundation dan penyumbang utama CPython. "Adalah mungkin untuk menulis aplikasi di Python menggunakan beberapa paradigma pengaturcaraan, tetapi itu menjadikan penulisan kod berorientasikan objek yang sangat jelas dan mudah difahami."

Kekurangan Python

Kelajuan boleh menjadi masalah. "Kerana bahasa itu ditafsirkan, seringkali lebih lambat daripada bahasa yang disusun," kata Curtin. "Namun, ia kembali untuk memisahkan bahasa dari runtime. Tanda aras tertentu kod Python dijalankan di bawah PyPy berjalan lebih cepat daripada kod C yang setara atau yang lain."

"Kelemahan Python yang mungkin berlaku adalah kelajuan pelaksanaannya yang perlahan," kata Carbonnelle. Tetapi banyak pakej Python telah dioptimumkan selama bertahun-tahun dan dilaksanakan pada kelajuan C, katanya.

Prestasi, Chachra mengatakan, "lebih perlahan berbanding dengan bahasa lama seperti C / C ++ dan bahkan yang lebih baru seperti Go."

Ketiadaan dari pengkomputeran mudah alih dan penyemak imbas. "Python hadir di banyak platform pelayan dan desktop, tetapi lemah dalam pengkomputeran mudah alih; sangat sedikit aplikasi telefon pintar yang dikembangkan dengan Python," kata Carbonnelle. "Ini juga jarang dilihat di sisi pelanggan aplikasi Web."

Python tidak ada dalam penyemak imbas Web, nota Deibel. "Itu sungguh memalukan. Ada brython, tetapi saya rasa ia tidak boleh digunakan di dunia nyata." Python sukar diamankan, dan itulah sebabnya ia tidak ada di penyemak imbas, tambahnya. "Masih belum ada kotak pasir / penjara yang selamat untuk Python, dan saya rasa pada dasarnya dianggap mustahil untuk CPython (pelaksanaan standard). 

Sekatan reka bentuk. Pemuja Python memetik beberapa masalah dengan reka bentuk bahasa. Oleh kerana bahasa itu ditaip secara dinamik, ia memerlukan lebih banyak ujian dan mempunyai kesalahan yang hanya muncul pada waktu runtime, kata Chachra.

Kunci jurubahasa global Python, sementara itu, bermaksud hanya satu utas yang dapat mengakses dalaman Python pada satu masa, kata Deibel. "Ini mungkin kurang penting hari ini, kerana anda dapat dengan mudah memunculkan tugas untuk memisahkan proses menggunakan modul multiprosesan, atau menulis kod tak segerak." 

Curtin mengatakan terdapat beberapa konvensyen mengenai penggunaan Python, tetapi ruang kosong yang signifikan adalah yang dikuatkuasakan oleh jurubahasa. "Struktur program Python mesti konsisten, jadi di mana tanda kurung atau pengecam lain membolehkan pengguna lebih banyak kebebasan dalam bahasa lain, lekukan adalah yang penting ketika datang ke Python."