ชุมชนนักพัฒนาถกเถียงทางเลือกของ Language Server ขณะที่ Multilspy ของ Microsoft ได้รับความนิยมเพิ่มขึ้น

BigGo Editorial Team
ชุมชนนักพัฒนาถกเถียงทางเลือกของ Language Server ขณะที่ Multilspy ของ Microsoft ได้รับความนิยมเพิ่มขึ้น

การเปิดตัวล่าสุดของ Multilspy จาก Microsoft ได้จุดประเด็นการถกเถียงที่น่าสนใจในชุมชนนักพัฒนาเกี่ยวกับการใช้งานและข้อพิจารณาด้านลิขสิทธิ์ของ Language Server ในขณะที่ Multilspy มุ่งเน้นที่จะทำให้การสร้าง Language Server Client ง่ายขึ้น การตอบรับจากชุมชนได้เน้นย้ำถึงแง่มุมที่ละเอียดอ่อนในการเลือกและการใช้งาน Language Server

ภาษาโปรแกรมมิ่งที่รองรับใน Multilspy ในปัจจุบัน:

  • Java
  • Python
  • C
  • Rust
  • JavaScript

ความซับซ้อนด้านลิขสิทธิ์ของ Language Server

ประเด็นสำคัญที่ถูกหยิบยกขึ้นมาคือเรื่องการเลือก Language Server โดยเฉพาะสำหรับการพัฒนาด้วยภาษา Python และ C# สมาชิกในชุมชนได้สังเกตว่าแม้ Pylance ของ Microsoft จะเป็นเครื่องมือที่ทรงพลัง แต่ข้อจำกัดด้านลิขสิทธิ์ทำให้สามารถใช้ได้เฉพาะกับผลิตภัณฑ์อย่างเป็นทางการของ Microsoft เท่านั้น ส่งผลให้มีการเลือกใช้ทางเลือกอื่นอย่าง Jedi Language Server สำหรับการพัฒนา Python ใน Multilspy เช่นเดียวกับการเปลี่ยนจาก OmniSharp ไปเป็น Roslyn Language Server สำหรับ C# ที่ได้สร้างคำถามเกี่ยวกับการเลือก Server

Roslyn Language Server ซึ่งเป็นส่วนที่ใช้ใน C# Extension พื้นฐานใน VSC ไม่มีข้อกำหนดพิเศษด้านลิขสิทธิ์ ส่วนที่เป็น Closed-source คือ Debugger และข้อกำหนดลิขสิทธิ์พิเศษส่วนใหญ่จะใช้กับ Debugger และส่วนขยาย Dev Kit ที่ต้องสมัครสมาชิก

เซิร์ฟเวอร์ภาษาโปรแกรมมิ่งที่สำคัญที่กล่าวถึง:

  • Pylance (ลิขสิทธิ์จำกัดโดย Microsoft)
  • Jedi Language Server (แบบเปิด)
  • Pyright (ใช้ลิขสิทธิ์ MIT)
  • Roslyn Language Server (แบบเปิด)
  • OmniSharp (ยกเลิกการพัฒนาแล้ว)

ทางเลือก Open Source และแนวทางแก้ไขจากชุมชน

ชุมชนได้นำเสนอทางเลือกที่เป็น Open Source โดยเฉพาะ Pyright ซึ่งเป็นตัวเลือกที่สามารถทดแทน Pylance ได้ Pyright ที่ใช้ลิขสิทธิ์แบบ MIT นั้นมีความสามารถใกล้เคียงกับ Pylance ซึ่งจริงๆ แล้วถูกสร้างขึ้นบน Pyright นี่เป็นทางออกที่เหมาะสมสำหรับนักพัฒนาที่ต้องการใช้ Language Server โดยไม่มีข้อจำกัด

ความท้าทายในการนำไปใช้งานจริง

นักพัฒนาได้แบ่งปันประสบการณ์เกี่ยวกับการใช้งาน Language Server โดยเฉพาะปัญหาในการเริ่มต้นและการกำหนดค่า Server ประสบการณ์ของนักพัฒนาคนหนึ่งที่พบปัญหาในการผสานการทำงานกับ Java Language Server แสดงให้เห็นถึงคุณค่าของแนวทางที่เป็นมาตรฐานของ Multilspy ผู้พัฒนาโครงการได้มีส่วนร่วมกับชุมชนอย่างแข็งขัน โดยให้การสนับสนุนและเน้นย้ำความสำคัญของเอกสารประกอบที่ดีและการแบ่งปันการตั้งค่า

ผลกระทบในอนาคต

การถกเถียงเกี่ยวกับ Multilspy แสดงให้เห็นถึงความต้องการในวงการที่จะมีแนวทางที่เป็นมาตรฐานและมีเอกสารที่ดีสำหรับการใช้งาน Language Server เป้าหมายของโครงการในการสร้างที่เก็บรวบรวมการตั้งค่า Language Server แบบรวมศูนย์อาจช่วยลดอุปสรรคในการนำไปใช้และปรับปรุงประสบการณ์การพัฒนาข้ามแพลตฟอร์ม

หมายเหตุ: Language Server Protocol (LSP) คือโปรโตคอลมาตรฐานที่ช่วยให้เครื่องมือพัฒนาสามารถสื่อสารกับ Server ที่ให้บริการคุณสมบัติด้านภาษา เช่น การเติมคำอัตโนมัติ การไปยังคำจำกัดความ และการแสดงเอกสารเมื่อชี้เมาส์

อ้างอิง: Multilspy: LSP client library in Python to build applications around language servers