.NET 10 Preview 6 Memicu Perdebatan Developer Terkait Masalah Tooling dan Arah Ekosistem

Tim Komunitas BigGo
.NET 10 Preview 6 Memicu Perdebatan Developer Terkait Masalah Tooling dan Arah Ekosistem

Microsoft merilis .NET 10 Preview 6 pada 15 Juli 2024, membawa beberapa peningkatan penting termasuk generasi kode JIT yang lebih baik dan eksekusi tool sekali pakai. Meskipun pembaruan ini memperkenalkan fitur-fitur berguna, respons komunitas developer mengungkapkan kekhawatiran berkelanjutan tentang keandalan tooling dan arah strategis platform yang dapat memengaruhi keputusan adopsi.

Fitur Utama .NET 10 Preview 6

  • Peningkatan JIT: Peningkatan generasi kode untuk argumen struct dengan anggota yang dipromosikan dalam register bersama
  • Eksekusi Tool Sekali Jalan: Perintah dotnet tool exec untuk menjalankan tool tanpa instalasi
  • Dukungan Tool Multi-Platform: Tool kini dapat menggabungkan binari untuk berbagai RuntimeIdentifiers (RIDs)
  • Penerbitan Executable Native: Aplikasi berbasis file mendukung penerbitan ke executable native melalui dotnet publish app.cs
  • Peningkatan Keamanan JSON: Opsi baru untuk melarang properti JSON duplikat selama deserialisasi
  • Output Skema CLI: Opsi cli-schema baru menyediakan representasi JSON dari pohon perintah CLI
Gambaran umum rilis .NET 10 Preview 6 dan fitur-fitur utamanya
Gambaran umum rilis .NET 10 Preview 6 dan fitur-fitur utamanya

Eksekusi Tool Sekali Pakai Mengatasi Kebutuhan Scripting yang Sudah Lama Ada

Pengenalan dotnet tool exec memungkinkan developer menjalankan tool .NET tanpa menginstalnya secara lokal atau global. Fitur ini sangat menguntungkan pipeline CI/CD dan skenario penggunaan sementara. Anggota komunitas menyambut baik penambahan ini, mencatat bahwa hal ini membawa C# lebih dekat dengan kemampuan scripting yang telah dinikmati F# melalui dotnet fsi. Fitur ini memungkinkan developer mengeksekusi file C# sebagai script tanpa langkah build, membuat bahasa ini lebih cocok untuk tugas otomasi cepat dan utilitas sekali pakai.

Masalah Tooling yang Persisten Membuat Frustrasi Pengalaman Development

Meskipun ada fitur baru, developer terus melaporkan masalah signifikan dengan pengalaman development. Fungsionalitas hot reload di dotnet watch tetap tidak dapat diandalkan, dengan perubahan CSS terkadang tidak terdeteksi bahkan ketika menggunakan flag --no-hot-reload. Pengguna Visual Studio melaporkan masalah berkelanjutan dengan syntax highlighting dan IntelliSense untuk komponen Blazor, masalah yang telah bertahan di beberapa versi. Masalah tooling ini menciptakan ketidakpastian selama development, membuat sulit untuk membedakan antara kesalahan coding sebenarnya dan malfungsi tool.

Yang saya inginkan hanyalah agar dotnet watch berperilaku dengan cara yang dapat diprediksi. Di .NET 9, bahkan ketika menggunakan —no-hot-reload, terkadang perubahan CSS pada komponen tidak diambil di komponen Blazor.

Tool Formatting Kode Tertinggal dari Standar Industri

Ekosistem .NET masih kekurangan formatter kode beropini yang diadopsi secara luas yang sebanding dengan Prettier di dunia JavaScript. Meskipun tool seperti CSharpier ada dan telah mendapat beberapa daya tarik, banyak tim enterprise tetap ragu untuk mengadopsi formatting otomatis. Perintah dotnet format bawaan menawarkan opsi konfigurasi ekstensif tetapi memerlukan setup signifikan untuk mencapai formatting yang konsisten. Fragmentasi ini memaksa tim untuk sangat bergantung pada formatting khusus IDE, menciptakan tantangan di lingkungan development campuran di mana anggota tim menggunakan editor yang berbeda.

Tool Pemformatan Kode yang Disebutkan Komunitas

Tool Tipe Tingkat Adopsi Fitur Utama
CSharpier Pihak ketiga Berkembang (2k bintang GitHub) Pemformatan yang opinionated dan deterministik
dotnet format Resmi Microsoft Bawaan Sangat dapat dikonfigurasi, terintegrasi dengan analyzer
StyleCop Legacy Menurun Penegakan tata letak file dan penamaan
Roslynator Analyzer Aktif Analisis kode dan perbaikan

Kekhawatiran Adopsi Platform di Tengah Pilihan Teknologi Microsoft Sendiri

Diskusi komunitas mengungkapkan kekhawatiran yang berkembang tentang adopsi masa depan .NET, terutama mengingat pilihan teknologi Microsoft sendiri dalam layanan Azure. Banyak proyek CNCF yang dikontribusi Microsoft ditulis dalam Go atau Rust daripada .NET, menimbulkan pertanyaan tentang dukungan internal platform. Keputusan untuk menulis ulang tooling TypeScript dalam Go alih-alih membuat versi .NET telah mengecewakan beberapa developer yang melihatnya sebagai kesempatan yang terlewat untuk menunjukkan kemampuan platform.

Perdebatan Siklus Hidup Framework Berlanjut

Komunitas tetap terbagi pada siklus dukungan tiga tahun Microsoft untuk versi .NET. Sementara beberapa developer menghargai pembaruan reguler dan menemukan upgrade relatif tidak menyakitkan, yang lain lebih memilih stabilitas .NET Framework 4.8 dengan timeline dukungan yang lebih panjang. Perbedaan ukuran deployment tetap menjadi kekhawatiran praktis, dengan aplikasi .NET Framework sering menghasilkan executable yang lebih kecil karena framework sudah terinstal di sistem Windows, sementara aplikasi .NET Core dapat mencapai 70-80MB ketika self-contained.

Penerimaan campuran .NET 10 Preview 6 menyoroti kemampuan teknis platform di samping tantangan persisten dalam pengalaman developer dan posisi strategis. Meskipun peningkatan performa dan fitur baru menunjukkan inovasi berkelanjutan, mengatasi keandalan tooling dan konsistensi ekosistem mungkin penting untuk mempertahankan kepercayaan developer dan menarik pengguna baru ke platform.

Referensi: .NET 10 Preview 6 brings JIT improvements, one-shot tool execution