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
Rekomendasi:
- Microsoft mengatakan Windows tidak akan menjadi… Microsoft Windows, meskipun merupakan salah satu perangkat lunak berpemilik paling populer di planet ini, adalah platform terbuka. Siapa pun dapat membuat dan LeBron James' 36 di Windows dan melakukannya kurang…
- Headphone Aonic 40 Shure menawarkan ANC dan EQ… Menindaklanjuti headphone Aonic 50 yang memulai debutnya di CES 2020, Shure mengumumkan opsi peredam bising yang lebih terjangkau hari ini. Dengan Aonic 40, perusahaan menawarkan desain yang mirip dengan model…
- Aplikasi web dan jasa pembuatan website Ada dua jenis utama layanan pembangunan yang perusahaan perangkat lunak difokuskan pada:Pembuatan halaman webWajar bagi setiap bisnis untuk terus meningkatkan layanannya untuk memenuhi harapan pelanggan. Terutama dengan situs web dan…
- Cahaya 'diperas' mungkin menghasilkan… Membuat perangkat berskala nano adalah satu hal, tetapi mempelajari dan memperbaikinya adalah hal lain — mereka sangat kecil sehingga tidak dapat memantulkan cahaya yang cukup untuk mendapatkan tampilan yang bagus.…
- Pixel 6 dan Pixel 6 Pro akan hadir dengan pembaruan… Dengan asumsi Anda berhasil memesan Pixel 6 atau Pixel 6 Pro, maka Anda harus tahu bahwa setelah ponsel ada di tangan Anda, Anda akan memerlukan sedikit waktu ekstra untuk menyiapkan…
- Obral Valentine: Pelajari cara membuat kode dengan… StackCommerce Pemrogram profesional mendapatkan upah yang layak. Gaji bervariasi dari satu negara bagian ke negara bagian lainnya dan bergantung pada faktor lain, tetapi mungkin saja seorang pembuat kode yang berbakat…
- Cara membuat Windows 11 berjalan lebih baik di… Microsoft sedang mengerjakan pembaruan baru untuk Windows 11 yang akan membuat sistem operasi (OS) baru berjalan lebih baik pada perangkat keras yang usang dan murah.Windows 11 Build 22526 saat ini…
- Teknologi di balik permainan kasino online favorit Anda Sejak kasino online pertama yang mengizinkan pembayaran otomatis membuka pintu virtualnya pada tahun 1996, teknologi terus berkembang. Ini membeli grafik yang lebih baik, fitur baru, dan lebih banyak permainan daripada…
- Ide besar seputar unikernels Tahukah Anda bahwa Linux mendekati usia 30 tahun? Tahukah Anda bahwa Unix berusia sekitar 50 tahun? Saya tidak bermaksud menjatuhkannya — saya telah menggunakan Linux sejak mereka didistribusikan di disket.…
- Alat Poker Digunakan oleh Pro Online pada tahun 2022 Situs poker online telah membuat poker lebih terjangkau dan meningkatkan jumlah uang yang tersedia bagi pemain untuk menang. Namun, mereka juga membuat poker lebih kompetitif. Saat ini, hanya memiliki keterampilan…
- Apa itu layanan desktop dan bagaimana cara kerjanya? Desktop sebagai layanan (DaaS) adalah model untuk mengirimkan data melalui Internet. Ini adalah cara untuk menyerahkan pengelolaan dan penyimpanan data kepada pihak ketiga. Dengan DaaS, perusahaan dapat fokus pada kompetensi…
- Aspek dasar yang termasuk dalam penetapan harga sistem SDM Saat memilih sistem SDM, harga merupakan faktor penting. Bergantung pada persyaratan pasti perusahaan Anda dan hasil yang diinginkan, ada banyak paket harga perangkat lunak SDM yang tersedia. Mereka dipengaruhi oleh…
- Tanggapan 5 Kata Elon Musk terhadap Saran Pengguna… Anda harus memberi penghargaan kepada CEO Tesla, Elon Musk. Dia mampu melakukan sesuatu dengan Tesla yang tidak dimiliki pembuat mobil lain--membangun kendaraan listrik (EV) yang ingin dibeli dan dikendarai orang.…
- Monorepo: Mengenal Konsep, Keuntungan, dan… Selamat datang di blog kami yang membahas tentang monorepo. Dalam dunia pengembangan perangkat lunak, monorepo adalah konsep yang semakin populer dalam pengelolaan kode sumber. Pada blog ini, kami akan menjelaskan…
- Foto dapat berubah dari membosankan menjadi… StackCommerce Mereka mengatakan bahwa sebuah gambar bernilai seribu kata. Kata-kata itu, bagaimanapun, dapat disalahpahami — terutama jika sebuah foto terlihat sedikit keruh. Ingin cerita foto Anda terlihat jelas? Kemudian Bundel…
- Tips untuk menjual Google Pixel 7 Pro Anda Penting untuk dicatat bahwa apakah Anda menjual Pixel 7 tergantung pada keadaan dan kebutuhan Anda masing-masing. Namun, ada beberapa alasan mengapa seseorang mempertimbangkan untuk menjual perangkatnya. Misalnya, jika seseorang ingin…
- Perangkat terbaik untuk permainan kasino online Teknologi inovatif memengaruhi perkembangan industri perjudian online dari berbagai perspektif. Pertama, mereka bergantung pada opsi dan kemampuan permainan kasino. Aspek lain dari dampak ini adalah variabilitas perangkat iGaming. Gadget ini…
- Dapatkan pemahaman yang lebih baik tentang audiens… StackCommerce Jika Anda sedang membangun bisnis, maka sangat penting untuk memahami audiens Anda. Tetapi data yang dikumpulkan oleh sebagian besar alat analitik bisa sangat sulit untuk dipahami, sehingga lebih sulit…
- Intel hybrid Alder Lake menawarkan versi non-hibrida… Intel berencana untuk menawarkan versi hibrida chip Alder Lake—tanpa inti efisiensi—dan AVX512 memang mati pada gen ke-12. Perusahaan mengkonfirmasi dengan PCWorld bahwa AVX512 tidak akan hadir dalam chip generasi ke-12…
- Bagaimana menjaga rumah pintar Anda tetap aman dan… Konsep rumah pintar menjadi semakin lazim dalam beberapa tahun terakhir, dan perangkat rumah pintar dapat menawarkan kenyamanan dan membuat segalanya menjadi lebih sederhana. Gadget seperti kamera pintar dan bel pintu…
- Langganan Windows 365 sekarang menawarkan Windows 11 Microsoft Pada bulan Juli, Microsoft meluncurkan layanan Windows 365 Windows-in-the-cloud tanpa Windows 11. Microsoft kini telah memperbaiki pengawasan itu, sebagai bisnis yang berlangganan Windows 365 sekarang memiliki opsi Windows 11…
- Mengapa permainan langsung adalah masa depan kasino online Jika Anda seorang penggemar permainan kasino online, Anda akan tahu bahwa teknologi telah membuka jalan bagi beberapa permainan baru dan klasik yang luar biasa. Ini bahkan lebih baik dari ini…
- BlackBerry lama Anda akan berhenti berfungsi pada 4 Januari BlackBerry pernah menjadi ponsel ikonik. Calon presiden AS Barack Obama adalah pengguna obsesif. Sungguh melegakan karena dia bisa terus memanfaatkannya setelah memasuki Gedung Putih pada 2009. Namun dominasi BlackBerry sebagai…
- Chip Qualcomm khusus akan mendukung masa depan… Qualcomm mengatakan pada hari Selasa di CES bahwa perusahaan tersebut bekerja sama dengan Microsoft untuk mengembangkan chip augmented-reality khusus untuk membantu kedua perusahaan mengembangkan kacamata augmented-reality yang ringan. Qualcomm, yang…
- Aplikasi web dan layanan pengembangan situs web Ada dua jenis utama dari layanan pengembangan yang: perusahaan perangkat lunak difokuskan pada:Pembuatan halaman webSetiap perusahaan berusaha memperluas wawasan mereka dan mengadaptasi platform online, yang memberi mereka dorongan tambahan. Aplikasi…
- Pra-Black Friday: Dapatkan XSplit Broadcaster… Kebocoran data Twitch baru-baru ini mengungkapkan berapa banyak uang yang diperoleh streamer teratas mereka. Dan, peringatan spoiler, itu banyak — Satu, pada kenyataannya, telah menghasilkan hampir $ 10 juta hanya…
- Hemat 70% dari bundel sertifikasi Excel ini dengan… StackCommerce Orang yang akrab dengan Microsoft Excel menghadapi peluang yang lebih baik untuk mendapatkan pekerjaan. Tidak memiliki keterampilan penting ini di resume Anda? Kemudian, dapatkan kecepatan — dan cepat —…
- Lebih Banyak Permainan Crypto Dari Sebelumnya Muncul… Jika Anda pernah bertaruh dengan Bitcoin dan mata uang kripto lainnya sebelumnya, Anda akan memahami bahwa kasino kripto baru bermunculan setiap saat. Anda mungkin juga tahu bahwa hari-hari judul homebrew…
- 5 Alat Manajemen Proyek untuk Pengembang Perangkat Lunak Ketika sebagian besar tim memikirkan perangkat lunak manajemen proyek, mereka berpikir untuk menggunakannya agar tetap teratur dan sesuai tugas. Namun, untuk pengembang perangkat lunak, alat manajemen proyek lebih dari itu.…
- Microsoft Teams akhirnya mendapatkan pembaruan yang… Bekerja sama dengan orang lain di luar organisasi Anda di Microsoft Teams akan segera dimungkinkan berkat pembaruan baru untuk alat kolaborasi online Microsoft.Kelompok kerja sering kali melampaui satu organisasi dengan…