3 poin oleh GN⁺ 2024-02-11 | 1 komentar | Bagikan ke WhatsApp

Seruan untuk Perangkat Lunak Ringkas untuk 2024

  • Fenomena membengkaknya perangkat lunak, yaitu 'bloat', masih menjadi salah satu kerentanan terbesar dalam perangkat lunak.
  • Mengembangkan perangkat lunak yang ringkas penting untuk meningkatkan pengalaman pengguna, mengurangi risiko keamanan, dan meningkatkan efisiensi sistem.
  • Pengembang harus merancang perangkat lunak ke arah yang mampu menyediakan lebih banyak fungsi dengan lebih sedikit kode.

Opini GN⁺

  • Fenomena 'bloat' pada perangkat lunak dapat menyebabkan penurunan kinerja sistem dan kerentanan keamanan, sehingga pengembang perlu berfokus pada optimalisasi kode dan desain yang efisien.
  • Karena pengguna menginginkan pengalaman perangkat lunak yang lebih cepat dan aman, perangkat lunak yang ringkas dapat memiliki daya saing di pasar.
  • Artikel ini dapat membantu pengembang meninjau kembali tren pengembangan perangkat lunak saat ini dan memberikan motivasi untuk membuat perangkat lunak yang lebih baik.

1 komentar

 
GN⁺ 2024-02-11
Komentar Hacker News
  • Dalam novel Vernor Vinge "A Deepness in the Sky", umat manusia telah tersebar di antara bintang-bintang meski belum memiliki teknologi yang melampaui kecepatan cahaya. Pesawat antariksa sangat tua dan memadukan teknologi dari beragam sistem serta peradaban.

    • Sistem komputer telah berevolusi dalam waktu yang sangat lama sehingga hampir tak ada seorang pun yang benar-benar memahami sebagian besar kodenya. Orang-orang hanya memakai kode itu dan membangun hal baru di atasnya.
    • Salah satu karakter telah bepergian sangat lama dan berada dalam keadaan stasis, sehingga mungkin menjadi salah satu manusia tertua. Ia adalah mantan system engineer dari masa lalu, dan karena memahami cara kerja serta kelemahan sistem dari zamannya, ia memiliki keuntungan besar untuk memanfaatkannya di masa depan ketika orang lain telah menumpuk banyak lapisan di atasnya tanpa benar-benar tahu apa yang mereka lakukan.
    • Saya rasa Vernor punya poin yang penting.
  • Sebagian besar library di npm memiliki terlalu banyak fitur yang tidak perlu. Para penulisnya tidak memahami desain yang baik, dan setiap library berusaha melakukan segalanya.

    • Misalnya, library untuk konversi encoding string ikut memuat fungsi untuk memuat file, menyimpan file, mengunduh lewat internet, menyediakan alat command line, dan sebagainya. Library seharusnya hanya melakukan satu hal.
    • Bahkan di Rust pun tampaknya keadaannya tidak lebih baik. Jika ingin mengedit dokumentasi Rust, Anda harus memasang sekitar 1000 crate.
    • Masalahnya bukan pada bahasanya, melainkan siapa pun bisa menerbitkan library dan memang benar-benar melakukannya. Orang-orang yang "ingin cepat selesai" memilih library dengan fitur terbanyak, lalu meminta lebih banyak fitur karena malas menulis beberapa baris kode yang sebenarnya bisa diselesaikan di luar library.
    • Saya tidak tahu bagaimana masalah ini harus diselesaikan. Salah satu idenya adalah memulai kelompok yang mendorong "dependensi rendah", memberi lencana itu pada library bagi yang menginginkannya, dan mendorong orang untuk mencari lencana tersebut saat memilih library.
  • Dalam "Terre des Hommes" karya Antoine de Saint-Exupéry, ada pertanyaan apakah Anda pernah melihat pesawat modern, mengikuti garis evolusinya dari tahun ke tahun, lalu memikirkan segala sesuatu yang dibuat manusia.

    • Semua upaya industri, perhitungan, desain, dan kerja semalam atas blueprint pada akhirnya terfokus pada pembuatan benda yang memiliki prinsip kesederhanaan tertinggi.
    • Diperlukan percobaan dari beberapa generasi pengrajin agar lengkungan furnitur, lunas kapal, dan badan pesawat secara bertahap menjadi seperti lengkungan dasar yang murni pada dada atau bahu manusia.
    • Kesempurnaan dicapai bukan ketika tidak ada lagi yang bisa ditambahkan, melainkan ketika tidak ada lagi yang bisa dihilangkan.
  • Jumlah kode yang kita gunakan saat ini sangat besar. Misalnya, bisa saja dibutuhkan lebih dari 50 juta baris kode aktif hanya untuk membuka pintu garasi.

    • Kita menjalankan kode sebanyak itu, tetapi kemungkinan besar sebagian besar darinya tidak pernah melalui review yang mendalam.
    • Meski begitu, kita tetap kembali ke rutinitas harian memasang dependensi npm.
  • Software dianggap berbahaya, sehingga orang disarankan untuk tidak menjalankannya sendiri dan menyerahkannya kepada penyedia "X as a service" atau "cloud".

    • Ini seperti mengatakan bahwa karena mobil mudah terbakar, maka Anda harus menyerahkan tugas mengemudi kepada seorang profesional yang didampingi ahli dan pemadam kebakaran profesional.
  • Alasan software tidak menjadi lebih ringkas adalah karena itu membutuhkan waktu, keterampilan, dan tenaga mahal.

    • Sebagai pengembang independen, orang yang baru belajar node.js tahun lalu bisa menggabungkan node.js, container, berbagai layanan database hosting AWS, layanan lambda, object storage, Cloudflare, yaml, react, vite, dan lain-lain untuk membuat web app yang rapuh dalam sehari.
    • Software yang cepat dan murah biaya pemeliharaannya sulit ditulis dengan cara yang tetap menghasilkan keuntungan.
  • Dulu ada upaya untuk menstandarkan hook yang disediakan sistem agar semua pengembang memakainya untuk interface dan sebagainya, sementara tugas utama pengembang adalah menulis logika program.

    • System call semacam itu akan tetap menjalankan tugas yang sama meskipun kodenya berubah, dan memungkinkan kode lama tetap bisa dikompilasi serta dijalankan tanpa masalah sambil memberi lebih banyak fitur pada software baru.
    • Mimpi ini cepat runtuh (misalnya masalah DLL), dan banyak pengelolaan paket berfokus pada cara agar library yang tepat bisa digunakan.
    • Kini banyak pengalaman telah terkumpul, tetapi muncul pertanyaan apakah mimpi itu memang dapat diwujudkan, atau apakah dari situasi kacau saat ini kita benar-benar sedang bergerak menuju software yang cepat, ringkas, stabil, dan lebih aman.
  • Soal Rust, bahkan jika Rust memiliki 70% lebih sedikit kerentanan per baris dibanding C++, jika di Rust Anda menarik ratusan paket dan jumlah baris kodenya 10 kali lebih banyak, jumlah kerentanan absolutnya bisa jadi lebih tinggi.

  • Jika 20 tahun lalu saya tahu software akan menjadi seperti sekarang, saya mungkin tidak akan memilih menjadi programmer. Semuanya serba besar, hardware dan software terlibat dalam perlombaan tanpa akhir, dan keadaan tidak menjadi lebih baik, lebih mudah, atau lebih sederhana.

  • Begitu saya mengklik tautan, langsung muncul banner CTA, iklan Google, dan banner cookie. Begitu banner cookie ditutup, muncul lagi iklan Google lain, lalu mengikuti saat saya scroll ke bawah. Selama membaca artikelnya, saya melihat setidaknya tiga iklan lagi.

    • Dalam situasi seperti ini, sulit untuk menanggapi isinya dengan serius.