Sebuah framework web Ruby baru bernama Brut telah muncul, memposisikan dirinya sebagai jalan tengah antara Sinatra yang ringan dan Rails yang berfitur lengkap. Namun, proyek ini telah memicu diskusi signifikan di komunitas tidak hanya tentang keunggulan teknisnya, tetapi juga tentang pilihan lisensi yang kontroversial dan keputusan desain yang opinionated.
Fitur Utama Framework Brut:
- Tanpa controller, verb, atau resource - fokus pada halaman, form, dan handler aksi tunggal
- Instrumentasi OpenTelemetry bawaan
- Lapisan akses data bertenaga Sequel
- Menggunakan Phlex untuk pembuatan HTML
- Menyertakan RSpec dengan matcher khusus
- Lingkungan pengembangan berbasis Docker
- Content Security Policy diaktifkan secara default
- Penanganan waktu yang sadar zona waktu
Kekhawatiran Lisensi Mengalahkan Fitur Teknis
Diskusi paling hangat berpusat pada penggunaan lisensi First, Do No Harm oleh Brut alih-alih lisensi open source tradisional. Anggota komunitas telah menyuarakan kekhawatiran serius tentang pilihan ini, menunjukkan bahwa hal tersebut secara teknis membuat proyek ini bukan open source menurut definisi resmi dan tidak kompatibel dengan lisensi populer seperti GPL. Adopsi bisnis bisa sangat terbatas karena tim legal perlu mengevaluasi lisensi khusus yang tidak familiar.
Biasanya ini adalah sinyal dari proyek personal/hobi yang tidak perlu diambil serius.
Penulis framework tersebut membela keputusan lisensi, menyatakan mereka memilih lisensi terbaik untuk mengkomunikasikan keinginan mereka dan merasa nyaman jika bisnis semi-serius tidak ingin menggunakan software tersebut. Respons ini telah membagi komunitas antara mereka yang menghargai sikap etis dan mereka yang melihatnya sebagai tidak praktis untuk adopsi dunia nyata.
Masalah Lisensi:
- Menggunakan lisensi " First, Do No Harm " alih-alih lisensi open source tradisional
- Tidak kompatibel dengan GPL dan lisensi copyleft serupa
- Secara resmi tidak termasuk "open source" menurut definisi standar
- Dapat membatasi adopsi bisnis karena ketentuan hukum yang tidak familiar
Pilihan Framework Testing Memicu Perdebatan Teknis
Selain lisensi, developer telah terlibat dalam diskusi sengit tentang penggunaan RSpec yang wajib di Brut untuk testing. Framework ini mengambil pendekatan opinionated, mengharuskan RSpec daripada Minitest bawaan Ruby. Kritikus berargumen bahwa Minitest lebih selaras dengan filosofi Brut tentang kesederhanaan dan menghindari dependensi yang tidak perlu, sementara pendukung menghargai sintaks RSpec yang lebih intuitif dan kemampuan mocking yang robust.
Penulis menjelaskan alasan mereka, mengutip sistem mocking RSpec yang superior dan kemampuan untuk membuat custom matcher sebagai faktor kunci. Namun, beberapa developer berpengalaman mempertanyakan apakah mocking ekstensif diperlukan ketika bekerja dengan plain Ruby objects, menyarankan bahwa pendekatan testing yang lebih sederhana mungkin lebih tepat.
Alternatif Komunitas yang Disebutkan:
- Roda: Sistem berbasis plugin dengan routing tree, direkomendasikan sebagai pilihan jalan tengah
- Sinatra: Disebutkan sebagai opsi tingkat rendah/sederhana
- Rails: Berfitur lengkap namun dikritik karena terlalu banyak boilerplate
- Minitest: Alternatif yang disarankan untuk menggantikan persyaratan wajib RSpec
Filosofi Framework Bertemu Kekhawatiran Praktis
Filosofi desain Brut menekankan pages dan forms daripada controller MVC tradisional, yang telah beresonansi dengan developer yang lebih menyukai model mental yang sederhana. Framework ini berjanji untuk menghilangkan frustrasi Rails yang umum seperti keputusan arsitektur yang tidak ada habisnya dan perdebatan routing yang kompleks. Namun, developer berpengalaman telah mempertanyakan apakah pendekatan ini benar-benar dapat berkembang melampaui proyek personal.
Anggota komunitas telah mengekspresikan baik kegembiraan tentang potensi framework untuk mengembalikan kesenangan dalam pengembangan web maupun skeptisisme tentang viabilitas jangka panjangnya untuk aplikasi bisnis. Perdebatan ini mencerminkan ketegangan yang lebih luas di komunitas Ruby antara inovasi dan konvensi yang sudah mapan.
Diskusi ini mengungkap komunitas yang bergulat dengan pertanyaan fundamental tentang desain framework, etika lisensi, dan keseimbangan antara kebahagiaan developer dan kepraktisan bisnis. Meskipun Brut mungkin tidak mencapai adopsi luas karena batasan lisensinya, framework ini telah berhasil memicu percakapan penting tentang arah masa depan pengembangan web Ruby.
Referensi: Brut: A New Web Framework for Ruby