Bash และ Python เป็นภาษาโปรแกรมมิ่งโปรดของ Automation Engineers ส่วนใหญ่ ทั้งคู่มี Pros และ Cons บางครั้งยากที่จะเลือกว่าใช้ตัวไหน คำตอบที่ซื่อสัตย์คือ: ขึ้นอยู่กับ Task, Scope, Context และ Complexity ของงาน
มาเปรียบเทียบเพื่อเข้าใจว่าแต่ละภาษาส่องสว่างที่ไหน
Bash
- เป็น Linux/Unix Shell Command Language
- เหมาะสำหรับเขียน Shell Scripts ใช้ CLI Utilities ใช้ Output จากคำสั่งหนึ่งไปอีกคำสั่ง (Piping) และ Execute Simple Tasks (ถึง 100 บรรทัด)
- ใช้ CLI Commands และ Utilities As-is ได้
- Startup Time ดีกว่า Python แต่ Execution Time Performance แย่
- ไม่ Pre-installed ใน Windows Script อาจไม่ Compatible หลาย OS แต่ Bash เป็น Default Shell บน Linux/Unix ส่วนใหญ่
- ไม่ รองรับ Shell อื่นเต็มที่ (csh, zsh, fish)
- Piping ("|") CLI Utilities เช่น sed, awk, grep ฯลฯ ทำ Performance ช้าลง
- ขาด Functions, Objects, Data Structures, Multi-threading จำกัดการใช้งาน Complex Scripting/Programming
- ขาด Debugging Tools และ Utilities ที่ดี
Python
- เป็น Object-Oriented Programming (OOP) Language จึง General Purpose กว่า Bash
- ใช้ได้เกือบทุก Task
- ทำงานบน OS หลักๆ และ Installed By Default บน Unix/Linux ส่วนใหญ่
- เขียนคล้าย Pseudocode มาก
- Syntax เรียบง่าย ชัดเจน เรียนรู้ง่าย อ่านง่าย
- Libraries, Documentation, Community เยอะและ Active
- Error Handling Features ดีกว่า Bash
- Debugging Tools และ Utilities ดีกว่า Bash เหมาะสำหรับพัฒนา Complex Software Applications หลายบรรทัด
- Applications/Scripts อาจมี Third-party Dependencies เยอะ ต้อง Install ก่อน Execute
- ต้องเขียน Code บรรทัดมากกว่า Bash สำหรับ Simple Tasks
หวังว่ารายการนี้ช่วยให้เข้าใจว่าควรใช้ภาษาไหนและเมื่อไหร่
คุณใช้ภาษาไหนบ่อยกว่าในงานประจำวัน Bash หรือ Python? แชร์ใน Comments นะครับ