Pengembang Mempertanyakan Pendekatan Berbasis YAML dalam Alat Skrip Shell Baru "Shef"

BigGo Editorial Team
Pengembang Mempertanyakan Pendekatan Berbasis YAML dalam Alat Skrip Shell Baru "Shef"

Sebuah alat command-line baru bernama Shef telah memicu perdebatan di antara para pengembang tentang manfaat pendekatan berbasis YAML untuk skrip shell. Alat ini, yang mendeskripsikan dirinya sebagai alat CLI yang kuat untuk membuat resep shell, menggabungkan elemen dari Make, GitHub Actions, dan CyberChef untuk menciptakan antarmuka berbasis YAML untuk perintah shell.

Kelelahan YAML Di Antara Pengembang

Respons komunitas terhadap Shef telah menyoroti sentimen yang berkembang tentang kelelahan YAML DSL di antara pengembang berpengalaman. Banyak komentator mengekspresikan skeptisisme tentang nilai membungkus perintah shell dalam bahasa domain-spesifik berbasis YAML lainnya. Perbandingan dengan upaya sebelumnya dengan pendekatan serupa langsung muncul, dengan seorang pengembang menarik paralel ke Maven 1 dan Apache Jelly, menggambarkan bagaimana skrip berbasis XML semacam itu akhirnya ditinggalkan.

Saya tidak melihat kasus penggunaan untuk menulis resep dalam YAML alih-alih menggunakan fungsi shell (atau Python, yang multiplatform)... itu akan cepat berakhir menjadi bahasa pemrograman semu tanpa manfaat dari sintaks komposisi yang lebih baik.

Sentimen ini bergema di beberapa komentar, dengan pengembang yang bekerja secara teratur dengan Kubernetes dan alat-alat berat YAML lainnya yang mengekspresikan resistensi khusus untuk menambahkan lapisan YAML lain ke alur kerja mereka.

Skrip Shell Mentah vs. Pendekatan Terstruktur

Tema sentral dalam diskusi adalah apakah Shef memberikan cukup keuntungan dibandingkan skrip shell tradisional untuk membenarkan keberadaannya. Sementara pembuat alat ini membela prompt pengguna interaktifnya dan fitur tambahan sebagai manfaat di luar skrip bash dasar, banyak pengembang berpendapat bahwa dengan sedikit usaha, skrip shell sebenarnya tidak terlalu rumit.

Beberapa komentator menyarankan bahwa ketika skrip shell menjadi terlalu kompleks, pendekatan yang lebih baik adalah beralih ke bahasa pemrograman lengkap seperti Python daripada memperkenalkan lapisan abstraksi baru. Yang lain menunjuk ke alat yang sudah ada seperti Taskfile yang menawarkan fungsionalitas serupa tetapi di mana pengembang sering kembali ke perintah shell mentah.

Fitur Utama dari Shef

  • Prompt pengguna interaktif
  • Menggabungkan perintah bersama
  • Struktur kontrol dan perulangan yang kompleks
  • Alur kerja yang dapat digunakan kembali dengan logika kondisional
  • Format resep berbasis YAML

Kekhawatiran Komunitas

  • YAML sebagai bahasa pemrograman semu
  • Kompleksitas dibandingkan dengan skrip shell biasa
  • Persyaratan instalasi (awalnya memerlukan alat Go)
  • Pola serupa dengan pendekatan yang sebelumnya ditinggalkan (misalnya, Apache Jelly)

Hambatan Instalasi dan Pertimbangan Praktis

Rilis awal Shef menghadapi kritik atas proses instalasinya, yang mengharuskan pengguna untuk menginstal alat Go untuk mencoba perangkat lunak tersebut. Pengembang mengakui keterbatasan ini dan dengan cepat memperbarui proyek untuk menyertakan aset biner dalam rilis, menunjukkan responsivitas terhadap umpan balik komunitas.

Beberapa pengguna menghargai aspek tertentu dari alat ini, seperti namanya yang cerdik (permainan kata dari chef dan shell) dan potensi untuk menggunakan kembali resep dalam resep lain. Seorang komentator menyarankan untuk menambahkan rekaman asciinema ke README untuk lebih baik mendemonstrasikan fungsionalitas alat, saran yang segera diimplementasikan oleh pengembang.

Pendekatan Alternatif

Diskusi seputar Shef mendorong beberapa pengembang untuk berbagi pendekatan alternatif mereka sendiri untuk masalah serupa. Beberapa menggambarkan alat berbasis Python yang terinspirasi oleh Ansible tetapi dirancang untuk operasi skala yang lebih kecil. Yang lain menyebutkan manfaat pendekatan bertipe kuat seperti CDK dibandingkan kombinasi Go dan YAML.

Alternatif-alternatif ini menyoroti keragaman pendapat tentang bagaimana cara terbaik menangani operasi shell yang kompleks, dengan banyak pengembang lebih memilih untuk memanfaatkan bahasa pemrograman yang ada daripada menciptakan bahasa domain-spesifik baru.

Sementara Shef mewakili pendekatan menarik untuk membuat skrip shell lebih mudah diakses dan interaktif, respons komunitas pengembang menunjukkan bahwa selera untuk solusi skrip berbasis YAML mungkin memudar untuk mendukung pendekatan pemrograman yang lebih tradisional. Namun demikian, pembuat alat ini tetap antusias tentang proyek tersebut dan responsif terhadap umpan balik, menunjukkan bahwa Shef mungkin terus berkembang berdasarkan masukan komunitas.

Referensi: Shef: A Powerful CLI Tool for Cooking Up Shell Recipes