Edamagit นำ Interface Git ที่เป็นที่รักของ Emacs มาสู่ VSCode ก่อให้เกิดการถกเถียงเรื่องการย้าย Tool

BigGo Editorial Team
Edamagit นำ Interface Git ที่เป็นที่รักของ Emacs มาสู่ VSCode ก่อให้เกิดการถกเถียงเรื่องการย้าย Tool

การเปิดตัว Edamagit ซึ่งเป็น extension ของ VSCode ที่นำฟังก์ชัน Git แบบ Magit มาสู่ editor ยอดนิยมของ Microsoft ได้จุดประกายการถกเถียงอย่างร้อนแรงเกี่ยวกับความจงรักภักดีต่อ editor และความท้าทายในการสร้าง tool ที่เป็นที่รักขึ้นมาใหม่บนแพลตฟอร์มที่แตกต่างกัน แม้ว่า extension นี้จะมีเป้าหมายเพื่อให้การใช้งาน Git แบบขับเคลื่อนด้วยคีย์บอร์ดคล้ายกับ package Magit ที่มีชื่อเสียงของ Emacs แต่การตอบสนองจากชุมชนกลับเผยให้เห็นคำถามที่ลึกซึ้งกว่าเกี่ยวกับสิ่งที่ทำให้ tool บางตัวไม่สามารถถูกแทนที่ได้

ความท้าทายในการสร้าง Magic ของ Magit ขึ้นมาใหม่

Edamagit เสนอการใช้งาน Git ที่คุ้นเคยผ่าน keyboard shortcuts รวมถึงฟังก์ชัน staging, committing, branching และ rebasing อย่างไรก็ตาม ผู้ใช้ Magit ที่มีประสบการณ์ชี้ให้เห็นข้อจำกัดพื้นฐานในการทำงานของ VSCode extensions เมื่อเปรียบเทียบกับ Emacs packages ปัญหาหลักอยู่ที่การแยกตัว - VSCode extensions ไม่สามารถโต้ตอบกันโดยตรงหรือเข้าถึงฟังก์ชันภายในได้ ในขณะที่ Emacs packages สามารถผสานรวมและขยายความสามารถของกันและกันได้อย่างราบรื่น

ความแตกต่างทางสถาปัตยกรรมนี้หมายความว่าแม้ว่า Edamagit จะสามารถทำซ้ำ interface ของ Magit ได้ แต่ก็ไม่สามารถสร้างการผสานรวมที่ลึกซึ้งซึ่งทำให้ตัวต้นฉบับมีพลังมากได้ ผู้ใช้จะสูญเสียความสามารถในการรวมฟังก์ชัน Magit กับ tool อื่น ๆ สร้าง workflow ที่กำหนดเอง หรือขยายฟังก์ชันผ่านการเปลี่ยนแปลงการกำหนดค่าง่าย ๆ

คุณสมบัติหลักของ Edamagit :

  • อินเทอร์เฟซ Git แบบใช้คีย์บอร์ดที่ได้แรงบันดาลใจจาก Emacs Magit
  • ทางลัดเริ่มต้น: Alt+X+G สำหรับสถานะ, Alt+X+Ctrl+G สำหรับการส่งคำสั่ง
  • รองรับการ staging, committing, branching, rebasing และการดำเนินการ Git อื่นๆ
  • รองรับการใช้คีย์ Vim ผ่านการปรับแต่ง keybindings.json ของ VSCode
  • รองรับ Monorepo ด้วยการตรวจจับ .git หลัก
  • การตั้งค่าสำหรับฟังก์ชัน forge, การจัดตำแหน่งบัฟเฟอร์ และการยืนยันการสลับอย่างรวดเร็ว

ภาวะกลืนไม่เข้าคายไม่ออกของการย้าย Editor

การถกเถียงได้เผยให้เห็นรูปแบบที่น่าสนใจในหมู่นักพัฒนาที่พยายามย้ายจาก Emacs ไปยัง editor หลักกระแสมากขึ้น หลายคนอ้างว่า Magit เป็นเหตุผลหลักที่ทำให้พวกเขายังคงผูกติดอยู่กับ Emacs แม้จะถูกดึงดูดโดย ecosystem และ interface ที่ใช้งานง่ายของ VSCode ผู้ใช้บางคนรายงานว่าใช้ Edamagit สำหรับ Git workflows ที่ง่ายกว่าได้สำเร็จ ในขณะที่ยังคงเปลี่ยนกลับไปใช้ Emacs สำหรับงาน version control ที่ซับซ้อน

คุณสมบัติเด่นคือการทำให้ git รู้สึกเหมือนเป็นส่วนขยายธรรมชาติของการแก้ไขข้อความแทนที่จะเป็น tool แยกต่างหาก UI ของ git อื่น ๆ มีอยู่ แต่ไม่มีตัวไหนที่ผสานรวม cycle การแก้ไข-ตรวจสอบ-commit ได้อย่างราบรื่นเท่านี้

การปรากฏของ tool ที่คล้ายกันเช่น Neogit สำหรับ Neovim และทางเลือก TUI ต่าง ๆ แสดงให้เห็นว่าอิทธิพลของ Magit ขยายไปไกลเกินกว่าชุมชน Emacs โดยสร้างแรงบันดาลใจให้กับการออกแบบ interface ในแพลตฟอร์มต่าง ๆ

ทางเลือกที่ได้รับแรงบันดาลใจจาก Magit:

  • Neogit - การใช้งานบน Neovim
  • Gitu - แอปพลิเคชันส่วนต่อประสานผู้ใช้แบบเทอร์มินัล
  • GitSavvy - ส่วนขยายสำหรับ Sublime Text
  • Jjui - ส่วนต่อประสานสำหรับระบบควบคุมเวอร์ชัน Jujutsu
  • Stage - แอปพลิเคชันแบบสแตนด์อโลนสำหรับ Linux (อยู่ระหว่างการพัฒนา)

ทางเลือกในตัวที่กำลังได้รับความนิยม

เรื่องราวย่อยที่ไม่คาดคิดในการถกเถียงเกี่ยวข้องกับผู้ใช้ที่ค้นพบว่าฟังก์ชัน Git blame ในตัวของ VSCode ได้รับการปรับปรุงอย่างมีนัยสำคัญ ทำให้หลายคนถอนการติดตั้ง extension GitLens ที่ได้รับความนิยมแต่มีโฆษณามากขึ้นเรื่อย ๆ การตกแต่ง blame แบบ native มีรายงานว่าเร็วกว่าและรบกวนน้อยกว่า แม้ว่าผู้ใช้บางคนจะพบว่ามันตอบสนองเกินไปและรบกวนสมาธิระหว่างการนำทางโค้ดอย่างรวดเร็ว

แนวโน้มนี้ที่หันไปใช้ฟังก์ชันในตัวแทนที่จะใช้ extension ของบุคคลที่สามสะท้อนถึงความปรารthนาที่กว้างขึ้นสำหรับสภาพแวดล้อมการพัฒนาที่สะอาดและไม่รกรุงรัง ผู้ใช้ให้ความสำคัญกับประสิทธิภาพและความเรียบง่ายมากกว่า extension ที่มีฟีเจอร์มากมายแต่อาจมาพร้อมกับเนื้อหาโปรโมชันที่ไม่ต้องการ

คุณสมบัติ Git ที่มีมาพร้อมกับ VSCode:

  • การแสดง blame decorations แบบดั้งเดิม (เร็วกว่า GitLens )
  • เทมเพลตแถบสถานะ blame ที่ปรับแต่งได้: ${authorName} (${authorDate}) ${subject}
  • ความสามารถในการ diff และ merge ที่มีมาพร้อม
  • แผงควบคุมซอร์สโค้ดแบบรวมเข้าด้วยกัน
  • ตัวดู Git tree และประวัติการ commit

ปรัชญาของความผูกพันต่อ Tool

การถกเถียงยังได้สัมผัสกับคำถามที่ลึกซึ้งกว่าเกี่ยวกับการเชี่ยวชาญและความผูกพันต่อ tool ผู้ใช้ Emacs มายาวนานอธิบายความสัมพันธ์ของพวกเขากับ editor ว่าเป็นมากกว่าแค่การใช้ซอฟต์แวร์ - มันกลายเป็นแพลตฟอร์มสำหรับสร้าง workflow ส่วนบุคคลที่พัฒนาไปตลอดหลายทศวรรษ ระดับของการปรับแต่งและการผสานรวมนี้ยากที่จะทำซ้ำใน editor ที่มีสถาปัตยกรรม extension ที่เข้มงวดกว่า

สำหรับนักพัฒนาที่กำลังพิจารณาว่าจะลงทุนเวลาในการเรียนรู้ tool ที่ซับซ้อนเช่น Emacs หรือยึดติดกับตัวเลือกที่เข้าถึงได้ง่ายกว่า การถกเถียงแสดงให้เห็นว่าการเลือกมักจะขึ้นอยู่กับลำดับความสำคัญของแต่ละบุคคล: ประสิทธิภาพในทันทีเทียบกับศักยภาพในการปรับแต่งระยะยาว

การเปิดตัว Edamagit แสดงถึงทั้งความน่าดึงดูดของหลักการออกแบบของ Magit และความท้าทายที่ต่อเนื่องในการสร้าง tool ที่ผสานรวมลึกซึ้งขึ้นมาใหม่ในแพลตฟอร์มต่าง ๆ แม้ว่ามันอาจไม่สามารถแทนที่ตัวต้นฉบับสำหรับ power user ได้อย่างสมบูรณ์ แต่ก็เสนอสะพานเชื่อมสำหรับผู้ที่แสวงหา Git workflows ที่คุ้นเคยในสภาพแวดล้อม editor หลักกระแสมากขึ้น

อ้างอิง: edamagit