Perangkat Lunak yang Dapat Dihuni

19 Sep 2016

Dari “Kelayakhunian dan Pertumbuhan Sedikit demi sedikit,” oleh Richard Gabriel:

Ada karakteristik perangkat lunak yang mungkin belum pernah Anda pikirkan dan mungkin memiliki pengaruh terhadap desain bahasa pemrograman dan tentu saja metodologi perangkat lunak. Ini adalah kelayakan huni .

Habitability adalah karakteristik dari kode sumber yang memungkinkan programmer, coders, bug-fixer, dan orang-orang yang datang ke kode di kemudian hari untuk memahami konstruksi dan niatnya dan untuk mengubahnya dengan nyaman dan percaya diri.

Kelayakhunian membuat tempat layak huni, seperti rumah. Dan inilah yang kami inginkan dalam perangkat lunak—yang membuat para pengembang betah, dapat menempatkan tangan mereka pada item apa pun tanpa harus berpikir mendalam tentang di mana letaknya.

Saya pernah mendengar Gregor Kiczales—salah satu desainer CLOS—mengatakan bahwa dia berharap praktik ilmu komputer dapat mencapai tingkat keunggulan teknik yang menciptakan bangunan seperti Superdome di New Orleans. Dia menunjukkan bahwa desain Superdome menyatukan potongan-potongan yang terbuat dari berbagai bahan dan dari berbagai disiplin ilmu teknik dan bangunan. Hasilnya adalah monumen untuk keterampilan teknik itu. Ini adalah gambar yang menggoda, tapi menurut saya itu tidak masuk akal.

Bangunan seperti Superdome kurang layak huni. Dalam hal ini orang-orang menghuni bangunan tersebut, tetapi hanya untuk jangka waktu yang sangat singkat, dan untuk acara-acara yang sangat khusus—dan bangunan seperti itu tidak mudah tumbuh atau diubah. Superdome adalah bangunan statis, dan karena itu dapat berdiri sebagai monumen, menjadi sedikit lain.

Sebuah gedung pencakar langit modern, untuk mengambil contoh lain, memiliki interior tetap yang tidak fleksibel, yang merupakan sekunder dari keindahan desain eksterior. Sedikit perhatian diberikan pada cahaya alami, dan seringkali interiornya dibangun sebagai “ruang kantor fleksibel”, yang berarti bilik. Fleksibilitas bagi manajemen untuk mendirikan kantor untuk perusahaan, bukan untuk penghuni—karyawan—untuk menyesuaikan ruang mereka sendiri. Ketika Anda kehabisan ruang di gedung pencakar langit, Anda membangun yang lain; Anda tidak mengubah yang sudah ada atau menambahkannya.

Bandingkan ini dengan rumah pertanian New England. Ini dimulai sebagai rumah kecil dengan gudang di belakang. Saat keluarga tumbuh dan kebutuhan pertanian tumbuh, ruang belakang ditambahkan ke rumah, lalu ruang pengalengan, lalu ruang untuk nenek; kandang ditambahkan ke gudang, kemudian sayap untuk memerah susu lebih banyak sapi. Akhirnya rumah dan gudang terhubung karena terlalu sulit untuk pergi dari rumah ke gudang dalam badai salju. Hasilnya bertele-tele, tetapi setiap bagian sesuai dengan kebutuhannya, setiap bagian cocok dengan yang lain, dan hasilnya indah karena merupakan struktur hidup dengan orang-orang yang hidup di dalamnya. Penduduk dapat memodifikasi lingkungan mereka karena setiap bagian dibangun sesuai dengan pola desain, penggunaan, dan konstruksi yang sudah dikenal dan karena pola tersebut mengandung benih untuk pertumbuhan sedikit demi sedikit.

Saya pikir ini harus menjadi tujuan praktik ilmu komputer. Sebagian besar bahasa pemrograman sangat bagus untuk membangun program yang merupakan monumen untuk merancang kecerdikan—sangat efisien, tepat, dan jelas—tetapi orang tidak membuat program seperti itu. Program hidup dan berkembang, dan penghuninya—para pemrogram—perlu bekerja dengan program itu seperti cara petani bekerja dengan wisma.

Apa saja hal-hal yang berkontribusi pada program tidak layak huni? Terlalu sering menggunakan abstraksi dan kompresi yang tidak tepat muncul di pikiran..

Baca Lagi