ป้ายกำกับ: Neovim

TUI: Text User Interface ?TUI: Text User Interface ?

TUI (Text User Interface) ถือเป็นขวัญใจของเหล่าโปรแกรมเมอร์และสาย System Admin มาอย่างยาวนาน เพราะมันอยู่ตรงกลางระหว่างความดิบเถื่อนของ CLI (Command Line Interface) และความสวยงามใช้งานง่ายของ GUI (Graphical User Interface)


ทำความรู้จัก TUI (Text User Interface): ความคลาสสิกที่ทรงพลังในโลกยุคใหม่

ในยุคที่เราคุ้นชินกับหน้าจอแอปพลิเคชันที่สวยงาม มีปุ่มกด เว็บไซต์สีสันสดใส (GUI) ทราบหรือไม่ว่าในโลกของนักพัฒนาซอฟต์แวร์และผู้ดูแลระบบ ยังมีอินเทอร์เฟซอีกรูปแบบหนึ่งที่ได้รับความนิยมอย่างเงียบๆ แต่ทรงพลังมาก นั่นคือ TUI หรือ Text User Interface


TUI คืออะไร?

TUI (Text User Interface) คือ อินเทอร์เฟซรูปแบบหนึ่งที่แสดงผลบนหน้าจอ Terminal หรือ Command Line แต่แทนที่จะเป็นเพียงบรรทัดคำสั่ง (CLI) ที่ต้องพิมพ์ทีละคำสั่ง TUI จะเปลี่ยนหน้าจอตัวอักษรเหล่านั้นให้กลายเป็น “หน้าต่างสี่เหลี่ยม” ที่มีเมนู มีปุ่ม มีแถบสี และสามารถใช้ปุ่มลูกศรบนคีย์บอร์ด (หรือบางครั้งก็ใช้เมาส์) เพื่อเลื่อนเลือกเมนูต่างๆ ได้ ถ้าเป็นคนที่มีอายุหน่อย หรือสนใจคอมพิวเตอร์โบราณ อาจจะคุ้นกับ cu writer, word ราชวิถี, turbo pascal ที่มันมีหน้าจอแบบไม่ใช้ command line (CLI) แต่ก็ไม่ได้สวยงาม ละเอียดเหมือน windows GUI

สรุปง่ายๆ: TUI คือการเอาความรู้สึกแบบแอปพลิเคชันกราฟิก (GUI) ไปยัดไว้ในหน้าจอ Terminal ตัวอักษร (CLI) นั่นเอง


ตัวอย่าง TUI ที่หลายคนอาจเคยผ่านตา

ถ้าคุณเคยใช้คำสั่งเหล่านี้ใน Terminal แสดงว่าคุณเคยสัมผัส TUI มาแล้ว

  • htop / btm (bottom): โปรแกรมดูการทำงานของ CPU/RAM ที่มีกราฟแท่งเป็นตัวอักษรวิ่งๆ
  • Vim / Neovim / Nano: โปรแกรมแก้ไขข้อความ (Text Editor) ยอดฮิต
  • GitUI / Lazygit: เครื่องมือจัดการ Git ที่ถอดคำสั่งยากๆ ออกมาเป็นเมนูให้กดง่ายขึ้น
  • Midnight Commander (mc): โปรแกรมจัดการไฟล์แบบสองหน้าต่างยุคเก๋า

ทำไม TUI ถึงยังไม่ตาย? (ข้อดีที่ยากจะปฏิเสธ)

แม้ว่าโลกจะก้าวไปสู่ยุค 3D หรือ VR แล้ว แต่ TUI ยังคงเติบโตและถูกพัฒนาขึ้นเรื่อยๆ ด้วยเหตุผลหลัก ๆ ดังนี้

  • เบาและเร็วขั้นสุด (Lightweight & Fast): TUI ไม่ต้องการการประมวลผลกราฟิกที่ซับซ้อน กินทรัพยากรเครื่อง (RAM/CPU) ต่ำมาก เหมาะกับคอมพิวเตอร์สเปกต่ำ หรือ Server ที่ไม่มีหน้าจอการ์ดจอ
  • ทำงานผ่าน Remote ได้ลื่นไหล: เวลาที่ต้องรีโมทเข้าไปจัดการ Server ผ่าน SSH การเปิดหน้าจอ GUI เป็นเรื่องที่กินอินเทอร์เน็ตและดีเลย์มาก แต่ TUI ส่งผ่านแค่ข้อมูลตัวอักษร ทำให้ควบคุม Server ได้อย่างลื่นไหลแม้อินเทอร์เน็ตจะช้า
  • ไม่ต้องละมือจากคีย์บอร์ด (Keyboard-Driven): สำหรับโปรแกรมเมอร์ การละมือไปจับเมาส์ทำให้ความเร็วในการทำงานลดลง TUI ส่วนใหญ่ถูกออกแบบมาให้ควบคุมด้วยคีย์บอร์ด 100% ทำให้ทำงานได้รวดเร็วต่อเนื่อง

ข้อจำกัดของ TUI

  • Learning Curve สูงกว่า GUI: แม้จะง่ายกว่า CLI แต่ผู้ใช้ยังจำเป็นต้องจำคีย์ลัด (Hotkeys) สัญลักษณ์ หรือรูปแบบการกดปุ่มเพื่อข้ามไปหน้าต่างต่างๆ
  • แสดงผลภาพและมัลติมีเดียไม่ได้: ไม่สามารถแสดงรูปภาพความละเอียดสูง วิดีโอ หรือแผนภูมิกราฟิกที่ซับซ้อนได้ (ทำได้ดีที่สุดคือเอาตัวอักษรมาเรียงกันเป็นรูป หรือ ASCII Art)

การสร้าง TUI ในยุคปัจจุบัน

หากคุณเป็นนักพัฒนาและอยากลองสร้าง TUI ของตัวเอง ปัจจุบันมีคลังรหัส (Libraries) เทพๆ ให้เลือกใช้มากมาย เช่น

  • Python: Textual, Urwid
  • Go (Golang): Bubble Tea (ยอดฮิตในตอนนี้), tview
  • Rust: Ratatui (พัฒนาต่อจาก tui-rs ที่โด่งดัง)
  • Node.js / JavaScript: Blessed

สรุป

TUI ไม่ใช่เทคโนโลยีที่ล้าหลัง แต่เป็น “เครื่องมือที่ถูกออกแบบมาเพื่อความคล่องตัวและประสิทธิภาพสูงสุด” มันตอบโจทย์กลุ่มคนที่ต้องการความเร็วในการทำงาน และต้องยุ่งเกี่ยวกับระบบหลังบ้าน (Backend/Server) เป็นหลัก หากคุณยังไม่เคยลอง ลองเปลี่ยนจาก top มาใช้ htop หรือลองเล่น lazygit ดู แล้วคุณจะหลงรักเสน่ห์ของ Text User Interface ครับ


อ่านเพิ่มเติม