Python vs Bash - Dalam jenis tugas apa yang masing-masing melebihi performa lainnya?

97

Jelas Python lebih ramah pengguna, pencarian cepat di google menunjukkan banyak hasil yang mengatakan bahwa, karena Python dikompilasi byte biasanya lebih cepat. Saya bahkan menemukan ini yang mengklaim bahwa Anda dapat melihat peningkatan lebih dari 2000% pada operasi berbasis kamus.

Apa pengalaman Anda tentang masalah ini? Dalam jenis tugas apa masing-masing merupakan pemenang yang jelas?

Serupa
sumber
6
Ini sebenarnya bukan jajak pendapat, tidak ada opsi yang ditentukan sebelumnya, saya perlu beberapa wawasan tentang alat mana yang paling berhasil.
Doppelganger

Jawaban:

94

Aliran mainframe tipikal ...

Input Disk/Tape/User (runtime) --> Job Control Language (JCL) --> Output Disk/Tape/Screen/Printer
                                   |                          ^
                                   v                          |
                                   `--> COBOL Program --------' 

Aliran Linux yang khas ...

Input Disk/SSD/User (runtime) --> sh/bash/ksh/zsh/... ----------> Output Disk/SSD/Screen/Printer
                                   |                          ^
                                   v                          |
                                   `--> Python script --------'
                                   |                          ^
                                   v                          |
                                   `--> awk script -----------'
                                   |                          ^
                                   v                          |
                                   `--> sed script -----------'
                                   |                          ^
                                   v                          |
                                   `--> C/C++ program --------'
                                   |                          ^
                                   v                          |
                                   `--- Java program ---------'
                                   |                          ^
                                   v                          |
                                   :                          :

Kerang adalah perekat Linux

Kerang Linux seperti sh / ksh / bash / ... menyediakan fasilitas penunjukan input / output / flow-control seperti Mainframe Job Control Language yang lama ... tetapi pada steroid! Mereka adalah bahasa Turing lengkap dengan hak mereka sendiri sementara dioptimalkan untuk secara efisien meneruskan data dan kontrol ke dan dari proses pelaksana lain yang ditulis dalam bahasa apa pun yang didukung O / S.

Sebagian besar aplikasi Linux, terlepas dari bahasa apa sebagian besar program itu ditulis, bergantung pada skrip shell dan Bash telah menjadi yang paling umum. Mengklik ikon di desktop biasanya menjalankan skrip Bash pendek . Skrip itu, baik secara langsung atau tidak langsung, mengetahui di mana semua file yang dibutuhkan berada dan menetapkan variabel dan parameter baris perintah, akhirnya memanggil program. Itu penggunaan shell yang paling sederhana.

Namun Linux seperti yang kita kenal tidak akan menjadi Linux tanpa ribuan skrip shell yang memulai sistem, menanggapi peristiwa, mengontrol prioritas eksekusi dan mengkompilasi, mengkonfigurasi dan menjalankan program. Banyak di antaranya cukup besar dan kompleks.

Shells menyediakan infrastruktur yang memungkinkan kita menggunakan komponen yang dibuat sebelumnya yang ditautkan bersama pada waktu proses daripada waktu kompilasi. Komponen tersebut adalah program yang berdiri sendiri dengan sendirinya yang dapat digunakan sendiri atau dalam kombinasi lain tanpa kompilasi ulang. Sintaks untuk memanggil mereka tidak dapat dibedakan dari perintah Bash builtin, dan pada kenyataannya ada banyak perintah builtin yang juga dapat dieksekusi sendiri pada sistem, seringkali memiliki opsi tambahan.

Tidak ada perbedaan bahasa secara luas antara Python dan Bash dalam performa. Ini sepenuhnya tergantung pada bagaimana masing-masing dikodekan dan alat eksternal mana yang dipanggil.

Salah satu alat terkenal seperti awk, sed, grep, bc, dc, tr, dll. Akan berhenti melakukan operasi tersebut dalam bahasa apa pun. Bash kemudian lebih disukai untuk apa pun tanpa antarmuka pengguna grafis karena lebih mudah dan lebih efisien untuk memanggil dan meneruskan data kembali dari alat seperti yang ada pada Bash daripada Python .

Performa

Itu tergantung pada program mana yang dipanggil skrip shell Bash dan kesesuaiannya untuk subtugas yang diberikan, apakah keseluruhan throughput dan / atau daya tanggap akan lebih baik atau lebih buruk daripada Python yang setara . Untuk memperumit masalah Python , seperti kebanyakan bahasa, juga dapat memanggil executable lain, meskipun lebih rumit dan karenanya tidak sering digunakan.

Antarmuka pengguna

Satu area di mana Python adalah pemenangnya adalah antarmuka pengguna. Itu membuatnya menjadi bahasa yang sangat baik untuk membangun aplikasi lokal atau klien-server karena secara native mendukung grafik GTK dan jauh lebih intuitif daripada Bash .

Bash hanya mengerti teks. Alat lain harus dipanggil untuk GUI dan data dikirimkan kembali dari mereka. Sebuah Python Script adalah salah satu pilihan. Opsi yang lebih cepat tetapi kurang fleksibel adalah binari seperti YAD, Zenity, dan GTKDialog .

Sementara shell seperti Bash bekerja dengan baik dengan GUI seperti Yad , GtkDialog (antarmuka seperti XML yang disematkan ke fungsi GTK +) , dialog , dan xmessage , Python jauh lebih mumpuni dan lebih baik untuk jendela GUI yang kompleks.

Ringkasan

Membangun dengan skrip shell seperti merakit komputer dengan komponen off-the-shelf seperti PC desktop.

Membangun dengan Python , C ++ atau sebagian besar bahasa lain lebih seperti membangun komputer dengan menyolder chip (perpustakaan) dan komponen elektronik lainnya bersama-sama seperti halnya smartphone.

Hasil terbaik biasanya diperoleh dengan menggunakan kombinasi bahasa di mana masing-masing dapat melakukan yang terbaik. Salah satu pengembang menyebut ini " pemrograman poliglot ".

DocSalvager
sumber
16
Saya gagal untuk mengenali bagaimana itu bisa diterima jawaban. Itu tidak memberikan wawasan tentang tugas mana yang lebih cocok untuk keduanya.
vigilancer
2
@vigilancer Saya harap modifikasi dan tambahan yang baru saja diposting bermanfaat.
DocSalvager
1
Meskipun saya setuju dengan komentar lain, ini tidak menjawab pertanyaan secara tepat. Ini adalah salah satu jawaban terbaik yang pernah saya baca!
Jim Mitchener
71

Secara umum, bash bekerja lebih baik daripada python hanya di lingkungan di mana python tidak tersedia. :)

Serius, saya harus berurusan dengan kedua bahasa setiap hari, dan akan menggunakan python secara instan melalui bash jika diberi pilihan. Sayangnya, saya terpaksa menggunakan bash pada platform "kecil" tertentu karena seseorang (secara keliru, IMHO) telah memutuskan bahwa python "terlalu besar" untuk muat.

Meskipun benar bahwa bash mungkin lebih cepat daripada python untuk beberapa tugas tertentu, bash tidak pernah bisa secepatnya untuk dikembangkan, atau semudah untuk dipelihara (setidaknya setelah Anda melewati 10 baris kode atau lebih). Satu-satunya keunggulan Bash wrt python atau ruby ​​atau lua, dll., Adalah keberadaannya di mana-mana.

Kevin Little
sumber
4
Bukankah Python sudah ada di setiap Linux / Unix, bahkan MacOS? Saya ingin tahu operasi apa yang lebih cepat dalam bash - dari apa yang saya pahami, pemanggilan perintah terpisah yang berbeda membuatnya jauh lebih lambat daripada perintah Python osatau shutilmodul.
NoBugs
1
@NoBugs Pasti tidak akan ada di setiap distribusi Linux / Unix. Ini hampir pasti datang pada setiap distribusi linux utama (misalnya distribusi berbasis debian, slackware, dll.) Dan Mac OS X, namun, jika Anda membangun iso Anda sendiri dengan yocto ( yoctoproject.org ), maka Anda tidak dapat memilikinya, karena Anda menyesuaikan sendiri setiap paket. Tetapi mungkin aman untuk mengatakan bahwa untuk OS Unix utama sekarang-a-hari, itu akan diinstal dengan python2 (setidaknya) dan mungkin python3 juga.
dylnmc
Python adalah bahasa skrip yang sangat baik untuk tugas-tugas kompleks seperti GUI berfitur lengkap. Yang tidak kalah penting, ini menegakkan praktik pemrograman yang baik sehingga program lebih mudah dipelihara. Bash membutuhkan penerapan praktik baik yang dipelajari di tempat lain agar dapat dipertahankan. Dengan demikian, dan menggunakan utilitas dialog GUI atau Python untuk UI, memberikan kinerja yang unggul (melalui program utilitas yang sangat cepat yang dipanggil dari Bash) serta UX yang bagus.
DocSalvager
34

Efisiensi pengembang jauh lebih penting bagi saya dalam skenario di mana bash dan Python adalah pilihan yang masuk akal.

Beberapa tugas cocok untuk di-bash, dan lainnya untuk Python. Juga bukan hal yang aneh bagi saya untuk memulai sesuatu sebagai skrip bash dan mengubahnya menjadi Python saat berkembang selama beberapa minggu.

Keuntungan besar yang dimiliki Python adalah dalam kasus sudut sekitar penanganan nama file, sementara ia memiliki glob , shutil , subprocess , dan lainnya untuk kebutuhan skrip umum.

Roger Pate
sumber
5
Pertanyaan tersebut ditujukan pada perbandingan "kinerja-bijaksana" yang menyiratkan kinerja mesin dan bukan kinerja pengembang. Lihat tes kinerja saya di jawaban lain.
Grzegorz Luczywo
25

Saat Anda menulis skrip kinerja tidak masalah (dalam banyak kasus).
Jika Anda peduli dengan kinerja 'Python vs Bash' adalah pertanyaan yang salah.

Python :
+ lebih mudah untuk menulis
+ lebih mudah untuk memelihara
+ kode yang lebih mudah digunakan kembali (coba temukan cara universal yang tahan kesalahan untuk memasukkan file dengan kode umum sh, saya tantang Anda)
+ Anda juga dapat melakukan OOP dengannya!
+ parsing argumen yang lebih mudah. yah, tidak lebih mudah, tepatnya. itu masih akan terlalu bertele-tele menurut selera saya, tetapi python memiliki argparsefasilitas built in
- 'subprocess' jelek jelek. mencoba untuk merangkai perintah dan tidak menangis sungai betapa jeleknya kode Anda nantinya. terutama jika Anda peduli dengan kode keluar.

Bash :
+ di mana-mana, seperti yang dikatakan sebelumnya, memang.
+ rangkaian perintah sederhana. begitulah cara Anda merekatkan berbagai perintah dengan cara yang sederhana. Juga Bash(tidaksh ) ada beberapa peningkatan, seperti pipefail, jadi rangkaian sangat pendek dan ekspresif.
+ tidak memerlukan penginstalan program pihak ketiga. dapat langsung dijalankan.
- Tuhan, itu penuh dengan gotcha. IFS, CDPATH .. ribuan dari mereka.

Jika seseorang menulis skrip lebih besar dari 100 LOC: pilih Python
Jika seseorang membutuhkan manipulasi jalur dalam skrip: pilih Python (3)
Jika ada yang membutuhkan sepertialias tapi sedikit rumit: pilih Bash / sh

Bagaimanapun, seseorang harus mencoba kedua sisi untuk mendapatkan ide tentang apa yang mereka mampu.

Mungkin jawaban dapat diperpanjang dengan pengemasan dan poin dukungan IDE, tetapi saya tidak terbiasa dengan sisi ini.

Seperti biasa, Anda harus memilih dari sandwich kotoran dan douche raksasa. Dan ingat, beberapa tahun lalu Perl adalah harapan baru. Dimana sekarang.

penjaga
sumber
4
Ya, kode dengan bash hidup selamanya. Saya mengkodekan banyak Perl, mereka tidak berguna sekarang.
Raymond gsh
Hanya untuk perspektif ... Skrip terbesar saat ini yang saya wriiten, yang saya gunakan sepanjang hari setiap hari, berbobot 4121 baris kode bash baris yang sebenarnya, bukan komentar atau kosong. Dengan komentar yang luas dan semacamnya, menjadikannya 7261 baris. Itu disertai dengan file bantuan dari dokumen seperti halaman manual untuk setiap fungsi yaitu 6650 baris lainnya. Setiap fungsi memiliki opsi yang dapat langsung mengambil dan menampilkan teks bantuannya dalam bentuk keluaran terbaik yang tersedia yang saat ini mencakup 3 versi YAD, Zenity, dialog, atau hanya teks CLI biasa. Saya menyebutnya 'kit'. itu pada versi 44 pada tulisan ini.
DocSalvager
Ini berat! (c)
kewaspadaan
1
Saya tidak berpikir LoC benar-benar faktor penentu untuk memilih Python. Lebih lanjut, seberapa rumit tugas yang Anda lakukan? Jika Anda hanya merangkai 100 perintah, itu mungkin baik-baik saja, jika hanya 30 LoC di bash tetapi bisa lebih mudah dipahami dengan Python - gunakan python.
JFord
@Akito tidak apa-apa, bila tidak ada yang menyentuhnya. tetapi ada beberapa situasi di mana ada yang bisa salah. Anda menyetelnya ke non-default dan lupa menghapusnya. sesuatu di luar mengubahnya tetapi skrip Anda bergantung pada default, dan seterusnya. kita harus selalu mengingat IFS, karena beberapa alat secara implisit menggunakannya.
vigilancer
22

Performa bash mengungguli python dalam proses waktu startup.

Berikut beberapa pengukuran dari laptop core i7 saya yang menjalankan Linux Mint:

Starting process                       Startup time

empty /bin/sh script                   1.7 ms
empty /bin/bash script                 2.8 ms
empty python script                    11.1 ms
python script with a few libs*         110 ms

* Libs yang dimuat Python adalah: os, os.path, json, time, request, threading, subprocess

Hal ini menunjukkan perbedaan besar namun waktu eksekusi bash menurun dengan cepat jika harus melakukan sesuatu yang masuk akal karena biasanya harus memanggil proses eksternal.

Jika Anda peduli dengan kinerja, gunakan bash hanya untuk:

  • sangat sederhana dan sering disebut skrip
  • skrip yang terutama memanggil proses lain
  • ketika Anda membutuhkan sedikit gesekan antara tindakan administratif manual dan skrip - periksa dengan cepat beberapa perintah dan letakkan di file.sh
Grzegorz Luczywo
sumber
... dan /bin/echomengungguli pesta sebesar itu, sulit untuk diukur. Jadi, alih-alih menjalankan bash, Anda dapat menggunakan /bin/echo mycommand > named_pipe(perintah / pesan keluaran ke pipa atau soket bernama) ... dan memiliki latar belakang proses Python membaca perintah / instruksi dari pipa itu dan menjalankannya. Jadi bash bukanlah "pengoptimalan biaya awal" yang baik.
Cezary Baginski
Biasanya Anda seharusnya menggunakan utas alih-alih proses ketika tugasnya sangat pendek dan cepat. Banyak proses adalah hal tingkat tinggi dan selama memulai satu dalam setengah detik, itu tampaknya cukup masuk akal untuk sebagian besar, bukan begitu?
Timothy Swan
16

Bash pada dasarnya adalah bahasa skrip batch / shell dengan dukungan yang jauh lebih sedikit untuk berbagai tipe data dan semua jenis kebiasaan di sekitar struktur kontrol - belum lagi masalah kompatibilitas.

Mana yang lebih cepat? Tidak juga, karena Anda tidak membandingkan apel dengan apel di sini. Jika Anda harus mengurutkan file teks ascii dan Anda menggunakan alat seperti zcat, sort, uniq, dan sed maka Anda akan mengasapi kinerja Python dengan bijaksana.

Namun, jika Anda membutuhkan lingkungan pemrograman yang tepat yang mendukung floating point dan berbagai aliran kontrol, maka Python menang telak. Jika Anda menulis katakanlah algoritme rekursif di Bash dan Python, versi Python akan menang dalam urutan besarnya atau lebih.

Justin
sumber
13
Jadi inti dari kata-kata kasar saya adalah: gunakan alat yang tepat untuk pekerjaan yang tepat.
Justin
2
floating point didukung dengan alat seperti awk, bc dan dengan shell seperti zsh / ksh, jadi mengapa Anda mengatakan Python menang telak?
ghostdog74
4
Karena alat itu bukan Bash. Saya menunjukkan perbedaan yang nyata. Alat tersebut digunakan dalam skrip shell, tetapi Bash asli itu sendiri tidak mendukung floating point.
Justin
2
Tidak. Coba sendiri. gzip file log yang besar dan gunakan zcat, sort, dll untuk melakukan beberapa pemfilteran dan kemudian gunakan libs asli Python. Ini jauh lebih cepat menggunakan alat asli.
Justin
6
@justin, ya, alat-alat ini bukan Bash tetapi sudah ada sejak zaman kuno dan sering digunakan dalam skrip shell. jika Anda ingin floating point, gunakan awk / bc. Ini adalah kombinasi dari alat-alat ini yang membuat skrip shell sama kuatnya dengan Python.
ghostdog74
12

Jika Anda ingin menggabungkan utilitas cepat dengan sedikit usaha, bash bagus. Untuk pembungkus sebuah aplikasi, bash sangat berharga.

Apa pun yang mungkin membuat Anda berulang kali menambahkan peningkatan mungkin (meskipun tidak selalu) lebih cocok untuk bahasa seperti Python karena kode Bash yang terdiri lebih dari 1000 baris menjadi sangat sulit untuk dipertahankan. Kode Bash juga mengganggu untuk di-debug ketika menjadi panjang .......

Bagian dari masalah dengan pertanyaan semacam ini adalah, dari pengalaman saya, bahwa skrip shell biasanya merupakan tugas khusus. Ada sangat sedikit tugas skrip shell yang saya temui di mana sudah ada solusi yang tersedia secara gratis.

zamhassam
sumber
8

Ada 2 skenario di mana kinerja Bash setidaknya sama saya percaya:

  • Pembuatan skrip utilitas baris perintah
  • Skrip yang hanya membutuhkan waktu singkat untuk dieksekusi; di mana memulai penerjemah Python membutuhkan lebih banyak waktu daripada operasi itu sendiri

Karena itu, saya biasanya tidak terlalu memperhatikan kinerja bahasa skrip itu sendiri. Jika kinerja adalah masalah nyata Anda tidak membuat skrip tetapi program (mungkin dengan Python).

extraneon
sumber
4

Saya memposting jawaban yang terlambat ini terutama karena Google menyukai pertanyaan ini.

Saya yakin masalah dan konteks seharusnya tentang alur kerja, bukan alatnya. Filosofi keseluruhan selalu "Gunakan alat yang tepat untuk pekerjaan itu." Tetapi sebelum ini datang, satu hal yang sering dilupakan ketika mereka tersesat di alat: "Selesaikan pekerjaan."

Ketika saya memiliki masalah yang tidak sepenuhnya ditentukan, saya hampir selalu memulai dengan Bash. Saya telah memecahkan beberapa masalah besar dalam skrip Bash besar yang dapat dibaca dan dipelihara.

Tetapi kapan masalahnya mulai melebihi apa yang harus diminta Bash? Saya memiliki beberapa pemeriksaan yang saya gunakan untuk memberi saya peringatan:

  1. Apakah saya berharap Bash memiliki array 2D (atau lebih tinggi)? Jika ya, inilah saatnya untuk menyadari bahwa Bash bukanlah bahasa pemrosesan data yang hebat.
  2. Apakah saya melakukan lebih banyak pekerjaan menyiapkan data untuk utilitas lain daripada menjalankan utilitas tersebut? Jika ya, saatnya menyadari Bash bukanlah bahasa pemrosesan data yang bagus.
  3. Apakah skrip saya terlalu besar untuk dikelola? Jika ya, penting untuk disadari bahwa meskipun Bash dapat mengimpor pustaka skrip, ia tidak memiliki sistem paket seperti bahasa lain. Ini benar-benar bahasa "putar Anda sendiri" dibandingkan dengan kebanyakan bahasa lainnya. Kemudian lagi, ini memiliki sejumlah besar fungsionalitas bawaan (beberapa mengatakan terlalu banyak ...)

Daftarnya terus berlanjut. Intinya, ketika Anda bekerja lebih keras untuk menjaga skrip Anda tetap berjalan yang Anda lakukan menambahkan fitur, inilah saatnya untuk meninggalkan Bash.

Anggaplah Anda telah memutuskan untuk memindahkan pekerjaan Anda ke Python. Jika skrip Bash Anda bersih, konversi awal cukup mudah. Bahkan ada beberapa konverter / penerjemah yang akan melakukan pass pertama untuk Anda.

Pertanyaan selanjutnya adalah: Apa yang Anda berhenti pindah ke Python?

  1. Semua panggilan ke utilitas eksternal harus dibungkus dengan sesuatu dari subprocessmodul (atau yang setara). Ada banyak cara untuk melakukan ini, dan hingga 3,7 perlu beberapa upaya untuk memperbaikinya (3,7 ditingkatkan subprocess.run()untuk menangani semua kasus umum sendiri).

  2. Anehnya, Python tidak memiliki utilitas non-pemblokiran platform-independen standar (dengan batas waktu) untuk polling keyboard (stdin). readPerintah Bash adalah alat yang luar biasa untuk interaksi pengguna yang sederhana. Penggunaan saya yang paling umum adalah untuk menampilkan pemintal hingga pengguna menekan tombol, sementara juga menjalankan fungsi polling (dengan setiap langkah pemintal) untuk memastikan semuanya masih berjalan dengan baik. Ini adalah masalah yang lebih sulit daripada yang terlihat pada awalnya, jadi saya sering hanya menelepon ke Bash: Mahal, tapi itu melakukan apa yang saya butuhkan.

  3. Jika Anda mengembangkan pada sistem yang disematkan atau dengan memori terbatas, jejak memori Python bisa berkali-kali lebih besar daripada milik Bash (tergantung pada tugas yang ada). Selain itu, hampir selalu ada contoh Bash yang sudah ada di memori, yang mungkin tidak terjadi pada Python.

  4. Untuk skrip yang berjalan sekali dan keluar dengan cepat, waktu startup Python bisa lebih lama daripada Bash. Tetapi jika skrip berisi perhitungan yang signifikan, Python dengan cepat melangkah maju.

  5. Python memiliki sistem paket terlengkap di planet ini. Ketika Bash menjadi sedikit rumit, Python mungkin memiliki paket yang membuat seluruh bagian Bash menjadi satu panggilan. Namun, menemukan paket yang tepat untuk digunakan adalah bagian terbesar dan paling menakutkan untuk menjadi seorang Pythonista. Untungnya, Google dan StackExchange adalah teman Anda.

BobC
sumber
2

Saya tidak tahu apakah ini akurat, tetapi saya telah menemukan bahwa python / ruby ​​bekerja jauh lebih baik untuk skrip yang memiliki banyak perhitungan matematis. Jika tidak, Anda harus menggunakandc atau "kalkulator presisi sewenang-wenang" lainnya. Itu hanya menjadi rasa sakit yang sangat besar. Dengan python Anda memiliki lebih banyak kendali atas floats vs ints dan jauh lebih mudah untuk melakukan banyak komputasi dan terkadang.

Secara khusus, saya tidak akan pernah bekerja dengan skrip bash untuk menangani informasi biner atau byte. Sebagai gantinya saya akan menggunakan sesuatu seperti python (mungkin) atau C ++ atau bahkan Node.JS.

dylnmc.dll
sumber
Aritmatika Bash benar-benar integer sehingga Anda harus melakukan operasi floating point dengan memanggil sesuatu yang lain (seperti awk atau dc) dan menangkap output darinya. Hal-hal moneter sederhana sering kali dapat dilakukan secara internal hanya dengan mengalikan 100 dan menyesuaikan titik desimal pada keluaran.
DocSalvager
0

Dari segi kinerja, keduanya dapat melakukan hal yang sama, jadi pertanyaannya menjadi mana yang lebih menghemat waktu pengembangan?

Bash mengandalkan memanggil perintah lain, dan menyalurkannya untuk membuat yang baru. Ini memiliki keuntungan bahwa Anda dapat dengan cepat membuat program baru hanya dengan kode yang dipinjam dari orang lain, tidak peduli bahasa pemrograman apa yang mereka gunakan.

Ini juga memiliki efek samping menahan perubahan dalam sub-perintah dengan cukup baik, karena antarmuka di antara mereka hanyalah teks biasa.

Selain itu Bash sangat permisif tentang bagaimana Anda dapat menulis di atasnya. Ini berarti ini akan bekerja dengan baik untuk variasi konteks yang lebih luas, tetapi juga bergantung pada pemrogram yang bermaksud untuk membuat kode dengan cara yang bersih dan aman. Jika tidak, Bash tidak akan menghentikan Anda untuk membuat kekacauan.

Python lebih terstruktur pada gaya, jadi programmer yang berantakan tidak akan menjadi berantakan. Ini juga akan bekerja pada sistem operasi di luar Linux, membuatnya langsung lebih sesuai jika Anda membutuhkan portabilitas semacam itu.

Tetapi tidak sesederhana untuk memanggil perintah lain. Jadi, jika sistem operasi Anda adalah Unix, kemungkinan besar Anda akan menemukan bahwa mengembangkan di Bash adalah cara tercepat untuk berkembang.

Kapan menggunakan Bash:

  • Ini adalah program non grafis, atau mesin dari program grafis.
  • Ini hanya untuk Unix.

Kapan menggunakan Python:

  • Ini adalah program grafis.
  • Ini akan bekerja pada Windows.
Alberto Salvia Novella
sumber