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 ".