2026-08-27

Asisten yang mampu diandalkan untuk pekerjaan Ruby on Rails pada 2026 adalah asisten yang secara default menggunakan Ruby idiomatis — Enumerable, block, guard clause, dan API gem terkini — bukan autocomplete yang menempelkan pola yang umum secara statistik tetapi tidak sesuai dengan gaya Ruby. Ruby Coding Assistant milik Jenova dibuat sebagai partner pengembangan khusus bahasa untuk standar tersebut. GitHub Copilot, Cursor, dan Claude Code tetap menjadi lingkungan coding umum yang kuat, terutama ketika tugasnya adalah penyelesaian kode inline atau pengeditan seluruh repositori.
Faktor utama yang membedakan bantuan AI Ruby yang efektif dari pair-programming generik:
✅ Default idiomatis — map/filter_map dibandingkan loop berbasis indeks, Data.define dibandingkan hash mentah, refinement dibandingkan monkey patch pada open class
✅ Penguasaan ekosistem — Rails, Sinatra, Hanami, Sidekiq, RSpec, ActiveRecord, Sequel, Bundler, serta konvensi gem terkini, bukan API yang sudah deprecated
✅ Disiplin debugging — menelusuri backtrace hingga ke akar masalah dan mengembalikan method yang sudah diperbaiki, bukan membuat ulang seluruh file
✅ Kesadaran versi — fitur Ruby 2.7 hingga 3.3+ ditandai berdasarkan runtime dan Gemfile yang dinyatakan oleh proyek
✅ Bentuk hasil — snippet yang dapat langsung disalin-tempel untuk perbaikan; file lengkap hanya ketika permintaannya memang script baru atau penulisan ulang secara eksplisit
Untuk membandingkan berbagai alat ini secara bermakna, evaluasi perlu dilakukan berdasarkan kualitas idiom, kemutakhiran ekosistem, dan perilakunya ketika stack trace, konflik versi, atau konvensi Rails menjadi masalah sebenarnya.
Bantuan Ruby khusus penting karena hampir setiap developer kini memiliki alat coding AI, tetapi peningkatan produktivitas yang terukur masih sederhana — dan konvensi Ruby lebih menghukum output generik dibandingkan banyak bahasa lain. Analisis survei developer tahun 2026 melaporkan bahwa 92,6% developer menggunakan asisten coding AI, sementara peningkatan produktivitas berada di sekitar 10%. Stack Overflow Developer Survey 2025, yang dikutip dalam rangkaian penelitian yang sama, menemukan bahwa hanya 16,3% developer yang menyatakan AI meningkatkan produktivitas mereka secara signifikan.
Kesenjangan tersebut tidak misterius dalam codebase Rails. Ruby mengandalkan duck typing, alur kontrol yang berpusat pada block, dan gaya komunitas; model yang dilatih menggunakan korpus GitHub multibahasa juga dapat menghasilkan loop bergaya Java, rescue Exception, kebocoran variabel kelas, dan API gem yang sudah usang. Tulisan Thoughtbot tahun 2026 tentang kode Rails yang dibuat AI membingkai respons praktisnya sebagai harness engineering: aturan, linter, dan hook di sekeliling model, karena model yang kapabel saja tidak otomatis menghasilkan Ruby yang sesuai dengan bentuk tim.
Rangkuman alat AI untuk Ruby on Rails tahun 2026 masih mencantumkan produk umum — Copilot, Cursor, Claude Code, Cody, Codeium — sebagai stack default. Developer Rails di
mengajukan pertanyaan yang sama ketika memulai aplikasi baru: IDE AI mana yang benar-benar membantu, dibandingkan IDE yang menghasilkan kode yang kemudian harus dibongkar oleh RuboCop dan code review.Implikasinya untuk 2026 bukanlah “gunakan AI atau jangan.” Pertanyaannya adalah apakah asisten tersebut dibatasi pada Ruby terkini, graph Bundler proyek, serta perbedaan antara perbaikan worker satu baris dan penulisan ulang file 400 baris.
Asisten AI Ruby yang efektif sebaiknya dinilai berdasarkan enam dimensi: kualitas idiom, kemutakhiran ekosistem, kedalaman debugging, kesadaran terhadap versi dan dependensi, memori proyek, serta disiplin penyampaian hasil. IDE coding umum dapat memperoleh nilai tinggi dalam hal kecepatan dan pengeditan seluruh repositori, tetapi tetap gagal pada dimensi yang menentukan apakah output tersebut merupakan Ruby yang siap dikirim ke produksi.
1. Kualitas idiom. Utamakan Enumerable (map, select, tally, filter_map) dibandingkan iterasi manual, guard clause dibandingkan conditional bertingkat, keyword argument, pattern matching pada Ruby 3.0+, serta Struct/Data.define dibandingkan hash ad hoc. Tandai antipola: rescue Exception, method_missing tanpa respond_to_missing?, and/or untuk logika boolean, konstanta mutable yang tidak dibekukan, dan anggapan bahwa GVL otomatis menjamin keamanan thread.
2. Kemutakhiran ekosistem. Rails, Sinatra, dan Hanami harus mengikuti idiom terkini, bukan pola yang “masih berfungsi.” Background job (Sidekiq, GoodJob, Resque), RSpec atau Minitest, ActiveRecord atau Sequel, Faraday, Devise/Pundit, serta Bundler/RubyGems harus sesuai dengan dokumentasi yang benar-benar dijalankan proyek.
3. Kedalaman debugging. Asisten yang berguna membedakan baris yang memunculkan error dari penyebab dalam rantai pemanggilan, mengembalikan hanya bagian yang dikoreksi, dan memeriksa efek samping pada pemanggilnya.
4. Kesadaran terhadap versi dan dependensi. Pattern matching, Ractors, Hash#except, dan Data.define dibatasi oleh versi. Rails 7.1 yang membutuhkan Ruby 2.7+ memiliki batasan berbeda dari sintaks yang memerlukan 3.2. Penambahan gem harus muncul sebagai catatan Gemfile, bukan saran gem install yang diberikan secara diam-diam.
5. Memori proyek. Versi Ruby, framework, library pengujian, dan ORM harus tetap tersimpan lintas sesi agar asisten tidak menanyakan ulang atau diam-diam beralih dari RSpec ke Minitest.
6. Disiplin penyampaian hasil. Permintaan debugging dan patch seharusnya menghasilkan snippet siap pakai dengan konteks yang cukup (class, method, require) agar lokasinya mudah ditemukan. Pembuatan ulang file lengkap ditujukan untuk file baru atau permintaan eksplisit seperti “berikan seluruh script-nya.”
Autocomplete inline merupakan dimensi ketujuh yang bersifat ortogonal. Copilot dan Cursor dibuat untuk itu. Agen Ruby percakapan bukan pengganti ghost-text di RubyMine atau VS Code; alurnya berbeda, lebih mirip rekan senior di Slack daripada plugin editor.
Ruby Coding Assistant milik Jenova paling unggul ketika pekerjaannya berupa kode Ruby atau Rails idiomatis untuk produksi, debugging terarah, dan pembuatan kode yang memahami stack; Copilot, Cursor, dan Claude Code lebih kuat ketika tugasnya adalah penyelesaian kode di editor atau pengeditan agentic di seluruh repositori. Tidak ada satu pun dari keempatnya yang secara konsisten paling unggul dalam setiap dimensi.
| Fitur / Dimensi | GitHub Copilot | Jenova Ruby Coding Assistant | Cursor | Claude Code |
|---|---|---|---|---|
| Default Ruby idiomatis | Model serbaguna; gaya bergantung pada prompt dan file di sekitarnya | Khusus bahasa: pola yang berorientasi pada Enumerable, block, RuboCop, dan stdlib terkini | Model umum yang memahami repositori; kualitas mengikuti konteks dan aturan proyek | Kuat ketika CLAUDE.md / hook menyandikan konvensi Rails |
| Penguasaan ekosistem | Data pelatihan luas lintas bahasa; API gem dapat tertinggal | Rails, Sinatra, Hanami, Sidekiq, RSpec, ActiveRecord, Sequel, Bundler sebagai medan default | Mengindeks repositori yang terbuka; secara desain tidak dikhususkan untuk Ruby | Sangat baik dengan aturan proyek; Thoughtbot menerbitkan harness khusus Rails |
| Penyelesaian inline di IDE | Ya; penyelesaian tak terbatas pada paket berbayar | Tidak — agen percakapan, bukan ghost-text | Ya; penyelesaian Tab plus pengeditan agentic | Agen terminal/CLI, bukan autocomplete inline klasik |
| Pendekatan debugging | Chat dan pengeditan inline di IDE | Backtrace → akar masalah; secara default hanya method yang telah di-patch | Agen dapat mereproduksi, mempersempit, dan melakukan patch di repositori | Agen plus Stop hook opsional (misalnya gate RuboCop) |
| Memori proyek | Instruksi khusus, kebijakan organisasi; konteks chat terikat pada sesi | Memori lintas sesi yang persisten untuk versi Ruby, stack, gem, dan konvensi | Rules, Skills, memory, MCP | CLAUDE.md, rules, memory, hook |
| Eksekusi kode lokal | Berjalan dalam alur kerja editor/CLI pengguna | Tidak mengeksekusi Ruby; pengguna menjalankan dan memverifikasi secara lokal | Berjalan di proyek lokal | Berjalan di proyek lokal / terminal |
| Harga (individu, per 2026) | Free; Pro $10/bulan; Pro+ $39/bulan; Max $100/bulan | Paket gratis dengan penggunaan terbatas; Plus $20/bulan (30×); tier lebih tinggi $50–$500/bulan | Hobby gratis; Pro umumnya $20/bulan; Teams $40/pengguna/bulan | Pro $20/bulan termasuk Claude Code; Max 5× $100; Max 20× $200 |
| Paling cocok untuk | Autocomplete cepat di dalam VS Code, JetBrains, dan GitHub | Ruby/Rails idiomatis, debugging yang memahami versi, RSpec, API gem yang akurat | Fitur multi-file di dalam workspace Cursor | Agen terminal pada repositori Rails dengan harness yang jelas |
Copilot tetap menjadi pair-programmer IDE default: Free mencakup 2.000 penyelesaian per bulan, Pro seharga [**$10 per pengguna per bulan**](https://docs.github.com/en/copilot/get-started/plans) dengan penyelesaian tak terbatas, sedangkan penggunaan chat/agen mengambil [**GitHub AI Credits**](https://github.com/features/copilot/plans) (Pro mencakup kredit senilai $15; penyelesaian itu sendiri tidak menggunakan kredit). Harga tersebut sulit dikalahkan untuk ghost-text di RubyMine atau VS Code.
Keterbatasannya adalah spesialisasi. Copilot merupakan produk coding umum. Copilot dapat menyelesaikan kode Ruby, tetapi tidak selalu mengutamakan filter_map daripada loop for, memperingatkan bahwa Data.define membutuhkan 3.2+, atau menolak membuat ulang seluruh worker ketika Anda hanya memintanya memperbaiki satu FrozenError. GitHub juga mengarahkan Copilot menuju penagihan berbasis penggunaan pada 2026, sehingga sesi agentic yang lebih berat tidak lagi selalu berupa pengalaman flat $10 tanpa batas.
Cursor adalah editor AI-native: memahami repositori, merencanakan fitur, memperbaiki bug, dan meninjau diff, dengan Agent mode, Plan Mode, Rules, Skills, dan MCP. Bagi tim Rails yang sudah bekerja dalam satu workspace, loop seluruh repositori tersebut adalah inti produknya. Pro Individual dilaporkan secara luas seharga $20 per bulan pada 2026](https://cursor.com/pricing), sedangkan Teams seharga [$40 per pengguna per bulan.
Cursor bukan spesialis Ruby. Kualitas idiom mengikuti apa yang sudah ada di repositori dan Rules yang Anda tulis. Aplikasi baru dengan konvensi yang lemah akan menghasilkan Ruby yang lemah. Pool kredit juga membuat pekerjaan agentic berkelanjutan lebih mahal daripada yang disiratkan oleh harga Pro di judul. Cursor merupakan lingkungan yang kuat untuk Ruby, bukan reviewer yang secara default fasih dalam Ruby.
Claude Code adalah agen coding terminal milik Anthropic, yang disertakan dalam Claude Pro seharga $20 per bulan](https://claude.com/pricing) serta tier Max yang lebih tinggi seharga $100 dan $200. [Panduan biaya resmi Anthropic](https://code.claude.com/docs/en/costs) memperkirakan penggunaan enterprise sekitar [**$13 per developer per hari aktif dan $150–$250 per developer per bulan**. Bentuk biaya tersebut berbeda dari satu seat Copilot seharga flat $10.
Keunggulan Claude Code untuk Rails adalah kemudahan pembuatan harness. Stop hook RuboCop dari Thoughtbot menjalankan linter pada file yang disentuh agen, menghentikan proses jika masih ada pelanggaran, dan mengirimkan panduan cop kembali ke giliran yang sama. Ini merupakan kontrol kualitas Ruby yang nyata — dan harus Anda bangun sendiri. Secara bawaan, Claude Code adalah agen umum dengan file CLAUDE.md, bukan spesialis Ruby 3.3/Rails 7.1.
Ruby Coding Assistant milik Jenova adalah partner Ruby senior percakapan: kode siap produksi dan idiomatis di seluruh MRI 2.7–3.3+, pemahaman mendalam terhadap stdlib, serta lanskap gem utama. Asisten ini menyesuaikan kepadatan penjelasan dengan pengguna, secara default menggunakan RSpec, melacak implikasi Gemfile, dan memperlakukan konflik versi sebagai hal utama (snippet pattern matching tidak boleh secara diam-diam mengasumsikan 3.0+ jika aplikasi berjalan pada 2.7).
Keterbatasan yang perlu disampaikan dengan jujur: ini bukan IDE. Tidak ada penyelesaian inline, interpreter lokal, git push, atau pemantau CI. Bahasa yang muncul di dalam proyek Ruby (SQL, ERB, Dockerfile, GitHub Actions YAML, sedikit Stimulus JS) masih termasuk cakupan; service Python lengkap atau microservice Go tidak termasuk. Untuk itu, saudara khusus bahasa seperti Python Coding Assistant lebih sesuai. Tim yang menginginkan penyelesaian tab sambil mengetik tetap membutuhkan Copilot atau Cursor di sampingnya.
Penguasaan ekosistem mengubah kualitas karena sebagian besar kegagalan Ruby dalam output AI bukanlah error sintaks — melainkan API usang, abstraksi yang salah, atau gaya pengujian yang tidak digunakan repositori. Model yang masih menghasilkan update_attributes, before_filter, atau pengujian yang sarat fixture ke dalam aplikasi RSpec/FactoryBot menambah beban review meskipun kodenya “berjalan.”
Meninjau desain yang khusus untuk bahasa menghasilkan default yang berbeda. Asisten yang fasih dalam Ruby seharusnya memilih Sidekiq atau GoodJob sesuai cara aplikasi memproses job, memilih Faraday daripada client Net::HTTP sekali pakai ketika proyek telah menstandarkan Faraday, serta menulis block describe/context/it yang mendokumentasikan perilaku, bukan satu method test_ jika RSpec merupakan gaya yang digunakan tim. Ketika pengguna belum menyebutkan framework pengujian, RSpec adalah default mayoritas ekosistem; ketika mereka menyebut Minitest, tetap beralih ke RSpec merupakan cacat.
Perubahan API gem adalah mode kegagalan lainnya. Grape, GraphQL-Ruby, Devise, Pundit, aws-sdk, dan interface enkripsi ActiveRecord terus berubah. Asisten yang menjawab berdasarkan data pelatihan yang sudah tidak mutakhir akan mengarang parameter. Pola yang lebih andal adalah mencari dokumentasi terkini untuk API gem yang sensitif terhadap versi dan mencantumkan halaman tersebut, termasuk versinya, ketika perilaku bergantung padanya. Proses ini lebih lambat daripada autocomplete. Ini juga alasan tim Rails yang membuat harness agen menempatkan RuboCop dan aturan proyek di sekeliling model, bukan mempercayai kefasihan token pertama.
SQL berada tepat di sebelah masalah ini. ActiveRecord dan Sequel sama-sama dapat merembes ke SQL mentah, window function, dan desain indeks. Asisten Ruby yang menulis loop each yang rentan terhadap N+1 di sekitar find sedang menimbulkan masalah pada tingkat bahasa; memasangkan pekerjaan tersebut dengan SQL Coding Assistant khusus sering menjadi jalur yang lebih cepat ketika pertanyaannya sebenarnya adalah query plan, bukan pembungkus PORO di sekitarnya.
Pekerjaan frontend dalam aplikasi Rails memiliki pembagian yang sama. Hotwire, Stimulus, dan React-on-Rails semuanya menghasilkan JavaScript/TypeScript yang dapat disentuh agen Ruby pada tingkat dasar, tetapi UI non-trivial sebaiknya ditangani oleh JavaScript/TypeScript Coding Assistant, bukan oleh spesialis Ruby yang mengimprovisasi client bundle.
Asisten Ruby yang kompeten seharusnya memperlakukan backtrace sebagai masalah rantai pemanggilan, hanya mengembalikan bagian yang dikoreksi, dan memeriksa versi Ruby proyek sebelum menggunakan sintaks 3.x. Kegagalan umum — membuat ulang seluruh file atau “memperbaiki” baris 42 ketika nil sebenarnya berasal dari presenter tiga frame sebelumnya — adalah cara debugging AI menciptakan regresi.
Dalam praktiknya, urutan yang berguna adalah:
NoMethodError pada nil adalah gejalanya; association yang tidak dimuat atau hash key yang tidak memiliki guard adalah penyebabnya.require yang relevan agar snippet dapat langsung ditempatkan.Konflik versi membutuhkan kejelasan yang sama. Jika pengguna menggunakan Ruby 2.7, pattern matching dan parameter block bernomor tidak tersedia secara cuma-cuma. Jika mereka menggunakan 3.2, Data.define dapat digunakan dan sebaiknya diprioritaskan daripada value object buatan sendiri. Penambahan gem harus disertai catatan Gemfile dan strategi constraint (~> untuk library, pin lockfile untuk aplikasi) — bukan gem install ke system Ruby.
Cursor dan Claude Code dapat menerapkan patch tersebut langsung di working tree, yang lebih cepat ketika repositori sudah terbuka. Namun, keduanya juga dapat mengedit terlalu banyak. Perbaikan inline Copilot paling cepat untuk typo satu baris dan paling lemah untuk bug GVL/thread-safety yang hanya muncul dalam konkurensi Sidekiq. Ruby Coding Assistant milik Jenova tidak dapat menjalankan spec; asisten ini dapat menghasilkan contoh RSpec (WebMock/VCR, FactoryBot, instance double) yang Anda jalankan. Batasan tersebut nyata. Batasan itu juga mencegah asisten mengklaim bahwa pengujian berhasil ketika sebenarnya tidak dijalankan.
Sebagian besar setup hanya membutuhkan beberapa menit: nyatakan stack, arahkan asisten ke alat style/test yang sudah digunakan, dan mulai dengan masalah nyata, bukan “buatkan aplikasi untuk saya.” Detailnya berbeda-beda menurut produk.
Untuk Ruby Coding Assistant milik Jenova, tetapkan konteks proyek dalam pesan pertama agar pilihan versi dan gem tetap konsisten:
"Ruby 3.2, Rails 7.1, PostgreSQL, Sidekiq, RSpec, FactoryBot, RuboCop. Gunakan Sequel di job lib/ jika memungkinkan. Jangan membuat ulang seluruh file — patch method yang saya sebutkan."
Giliran debugging dapat terlihat seperti ini:
"Ganti hanya
Orders::Fulfillment#perform. Kami mendapatkan FrozenError setelah mengaktifkan frozen string literal. Berikut worker dan 30 baris terakhir log Sidekiq."
Untuk GitHub Copilot, instal ekstensi editor, masuk, lalu tambahkan instruksi khusus yang menyebutkan versi Ruby, RuboCop, dan RSpec. Nilai utamanya adalah penyelesaian kode; penggunaan chat/agen pada Pro berasal dari pool kredit yang disertakan. Batasi cakupan Copilot ke *.rb jika Anda tidak ingin asisten menyelesaikan YAML dan lockfile.
Untuk Cursor, buka root Rails agar Agent mode dapat melihat app/, spec/, dan Gemfile. Masukkan konvensi stack ke dalam Rules (TDD, strong params, jangan gunakan update_columns tanpa komentar). Gunakan Plan Mode untuk fitur multi-file; gunakan Tab untuk 80% pekerjaan rutin.
Untuk Claude Code, ikuti pola harness yang didokumentasikan oleh Thoughtbot: sekumpulan aturan .claude/ untuk konvensi Rails, ditambah Stop hook yang menjalankan bundle exec rubocop pada file Ruby yang disentuh dan mengembalikan pelanggaran kepada agen sebelum agen berhenti. Ini merupakan jalur dengan tingkat jaminan tertinggi jika Anda sudah bekerja di terminal dan bersedia memelihara hook tersebut.
Terlepas dari alat yang digunakan, default siap produksi harus konsisten: frozen_string_literal: true pada file baru, tanpa secret hardcode, SQL berparameter, Logger alih-alih puts pada apa pun yang bukan scratch script, serta YARD atau RBS/Sorbet pada API publik ketika proyek memang sudah menggunakannya.
Praktisi Ruby yang memperlakukan AI sebagai rekan kerja, bukan compiler, menempatkan pemeriksaan deterministik di sekitar model — RuboCop, spec, dan aturan proyek — karena pembuatan kode generik masih menghasilkan Ruby yang umum tetapi salah. Pekerjaan Thoughtbot tentang harness adalah contoh publik yang paling jelas: aturan diberikan kepada agen sebelum agen menulis, dan hook linter menangkap hal-hal yang lolos akibat nondeterminisme.
"Mode kegagalan yang paling sering kami lihat adalah Ruby bergaya Java: loop berbasis indeks, state variabel kelas, rescue Exception, dan monkey patch yang bocor ke seluruh gem. Model yang telah membaca jutaan snippet publik akan meniru pola tersebut karena pola itu umum secara statistik, bukan karena benar untuk MRI pada 2026."
"Hal yang benar-benar meningkatkan kualitas Rails adalah constraint. API gem terkini, versi Ruby proyek, resolusi Bundler, serta aturan penyampaian hasil yang melakukan patch pada method yang rusak alih-alih membuat ulang file. Memori persisten mengenai stack — Rails 7.1, Sidekiq, Sequel bukan ActiveRecord — mencegah lebih banyak defect daripada context window yang lebih besar tetapi melupakan Gemfile di setiap sesi."
"Autocomplete inline dan reviewer khusus bahasa adalah dua pekerjaan yang berbeda. Copilot dan Cursor unggul pada pekerjaan pertama. Keduanya tidak menggantikan asisten yang mengetahui kapan Ractor merupakan primitive konkurensi yang salah, kapan GVL tidak membuat urutan check-then-act menjadi aman, atau kapan cop ThreadSafety RuboCop sedang menunjukkan bug Sidekiq yang nyata."
— Tim Produk Jenova, agen developer AI khusus bahasa
Pandangan tersebut sejalan dengan penelitian produktivitas yang lebih luas: adopsi hampir universal, tetapi hasilnya tidak merata, terutama pada codebase brownfield dan bahasa yang kurang terwakili. Ruby diajarkan dan digunakan secara luas, tetapi volume data pelatihannya bukan Python atau JavaScript. Mengharapkan model umum menghasilkan Rails 7 yang idiomatis tanpa harness adalah cara tim menghabiskan peningkatan produktivitas 10% untuk proses review.
Agen Ruby khusus lebih sesuai ketika hambatannya adalah correctness, idiom, dan memori stack — men-debug worker, merancang API gem, membuat RSpec yang sesuai dengan gaya tim, atau menelusuri konflik Bundler — bukan kecepatan mengetik di dalam editor. IDE AI lebih sesuai ketika hambatannya adalah pengeditan multi-file pada repositori yang sudah terbuka.
Pilih agen khusus Ruby ketika:
Process.fork.Pilih Copilot, Cursor, atau Claude Code ketika:
Banyak tim produksi akan menggunakan keduanya. Copilot atau Cursor untuk loop pengetikan; agen yang fasih dalam Ruby untuk pertanyaan yang biasanya ditujukan kepada engineer senior yang masih ingat alasan aplikasi belum dapat menggunakan pattern matching. Harga Jenova dimulai dari paket gratis dengan penggunaan terbatas dan Plus seharga $20/bulan dengan kuota 30× lebih besar, sebanding dengan Claude Pro atau Cursor Pro dari sisi harga utama, tanpa menggantikan integrasi editor yang dimiliki produk-produk tersebut.
Evaluasi yang tetap relevan pada 2026 bukanlah “AI mana yang terbaik,” melainkan lapisan alur kerja mana yang bermasalah: kecepatan penyelesaian, pengeditan seluruh repositori, atau Ruby idiomatis yang memahami versi. Nilai alat berdasarkan lapisan tersebut, dan tabel perbandingan di atas sudah cukup untuk memilih default tanpa berpura-pura bahwa salah satunya mencakup semua kebutuhan.