Peluncuran terbaru Microsoft Multilspy telah memicu diskusi menarik di kalangan komunitas pengembang tentang implementasi language server dan pertimbangan lisensi. Sementara Multilspy bertujuan untuk menyederhanakan pembuatan klien language server, tanggapan komunitas telah menyoroti beberapa aspek yang perlu diperhatikan dalam pemilihan dan implementasi language server.
Bahasa Pemrograman yang Saat Ini Didukung dalam Multilspy:
- Java
- Python
- C
- Rust
- JavaScript
Kompleksitas Lisensi Language Server
Sebuah poin diskusi penting telah muncul seputar pemilihan language server, khususnya untuk pengembangan Python dan C#. Anggota komunitas mencatat bahwa meskipun Microsoft Pylance adalah alat yang kuat, lisensinya yang terbatas hanya memungkinkan penggunaan pada produk resmi Microsoft. Hal ini mendorong pemilihan alternatif seperti Jedi Language Server untuk implementasi Python di Multilspy. Demikian pula, transisi dari OmniSharp ke Roslyn Language Server untuk C# telah memunculkan pertanyaan tentang pemilihan server.
Tidak ada persyaratan lisensi khusus untuk menggunakan Roslyn Language Server, yang digunakan oleh ekstensi dasar C# di VSC. Yang bersifat closed-source adalah debugger-nya, dan persyaratan lisensi khusus sebagian besar berlaku untuk debugger tersebut dan ekstensi Dev Kit yang memerlukan langganan.
Server Bahasa Utama yang Dibahas:
- Pylance (Terbatas-Microsoft)
- Jedi Language Server (Terbuka)
- Pyright (Lisensi MIT)
- Roslyn Language Server (Terbuka)
- OmniSharp (Tidak Digunakan Lagi)
Alternatif Open Source dan Solusi Komunitas
Komunitas telah menyoroti alternatif open-source yang layak, terutama menekankan Pyright sebagai pengganti yang mampu untuk Pylance. Pyright, yang beroperasi di bawah lisensi MIT, menawarkan fungsionalitas yang sebanding dengan Pylance, yang sebenarnya dibangun di atasnya. Ini merupakan solusi praktis bagi pengembang yang mencari implementasi language server tanpa batasan.
Tantangan Implementasi di Dunia Nyata
Para pengembang telah berbagi pengalaman mereka dengan implementasi language server, terutama mencatat kesulitan dalam inisialisasi dan konfigurasi server. Pengalaman seorang pengembang yang berjuang dengan integrasi Java language server menyoroti nilai pendekatan terstandarisasi Multilspy. Penulis proyek telah aktif terlibat dengan komunitas, menawarkan dukungan dan menekankan pentingnya dokumentasi yang tepat dan berbagi konfigurasi.
Implikasi Masa Depan
Diskusi seputar Multilspy mengungkapkan kebutuhan industri yang lebih luas akan pendekatan terstandarisasi dan terdokumentasi dengan baik untuk implementasi language server. Tujuan proyek untuk menciptakan repositori pusat untuk konfigurasi language server dapat secara signifikan mengurangi hambatan implementasi dan meningkatkan pengalaman pengembangan lintas platform.
Catatan: Language Server Protocol (LSP) adalah protokol terstandarisasi yang memungkinkan alat pengembangan berkomunikasi dengan server yang menyediakan fitur bahasa seperti penyelesaian otomatis, pergi ke definisi, dan dokumentasi saat hover.
Referensi: Multilspy: LSP client library in Python to build applications around language servers