Pembengkakan perangkat lunak

**Pembengkakan perangkat lunak** adalah suatu proses di mana versi-versi program komputer secara berturut-turut menjadi terasa lebih lambat, menggunakan lebih banyak memori, ruang cakram, atau daya pemrosesan, atau memiliki persyaratan perangkat keras yang lebih tinggi dibandingkan versi sebelumnya, sementara hanya melakukan perbaikan yang terlihat jelas oleh pengguna atau mengalami perayapan fitur. Istilah ini tidak diterapkan secara konsisten; ini sering digunakan sebagai kata yang merendahkan oleh pengguna akhir(perangkat pembengkak) untuk menggambarkan perubahan antarmuka pengguna yang tidak diinginkan meskipun perubahan tersebut hanya berdampak kecil atau tidak sama sekali pada persyaratan perangkat keras. Dalam perangkat lunak yang berumur panjang, pembengkakan perangkat lunak dapat terjadi karena perangkat lunak tersebut melayani pasar yang besar dan beragam dengan banyak persyaratan yang berbeda. Sebagian besar pengguna akhir akan merasa bahwa mereka hanya memerlukan sebagian terbatas dari fungsi yang tersedia, dan akan menganggap fungsi lainnya tidak perlu, bahkan jika pengguna akhir dengan persyaratan berbeda memerlukan fungsi tersebut.

Pembengkakan yang sebenarnya (dapat diukur) dapat terjadi karena tidak menekankan efisiensi algoritmik demi kepentingan lain seperti produktivitas pengembang, atau mungkin melalui pengenalan lapisan abstraksi baru seperti mesin virtual atau mesin skrip lainnya untuk tujuan kenyamanan ketika kendala pengembang tidak ada. berkurang. Persepsi peningkatan produktivitas pengembang, dalam hal mempraktikkan pengembangan dalam lingkungan mesin virtual, berasal dari pengembang yang tidak lagi mempertimbangkan kendala dan penggunaan sumber daya selama desain dan pengembangan; hal ini memungkinkan produk diselesaikan lebih cepat tetapi hal ini mengakibatkan peningkatan kebutuhan perangkat keras pengguna akhir sebagai kompensasinya.

Istilah "perangkat pembengkak" juga digunakan untuk menggambarkan perangkat lunak prapasang yang tidak diinginkan atau program bawaan.

## Jenis pembengkakan

### Pembengkakan program
Dalam pemrograman komputer, kode pembengkak mengacu pada keberadaan kode program (kode sumber atau kode mesin) yang dianggap terlalu panjang, lambat, atau membuang-buang sumber daya.

## Penyebab

### Ketidaksangkilan perangkat lunak
Pengembang perangkat lunak yang terlibat dalam industri ini selama tahun 1970an memiliki keterbatasan yang parah pada ruang cakram dan memori. Setiap byte dan siklus jam diperhitungkan, dan banyak pekerjaan yang dilakukan untuk menyesuaikan program dengan sumber daya yang tersedia. Mencapai kesangkilan ini adalah salah satu nilai tertinggi dari pemrogram komputer, dan program terbaik sering disebut " elegan ", sebuah istilah yang digunakan oleh ahli matematika untuk menggambarkan suatu pembuktian yang rapi, dan kuat.

Pada abad ke-21, situasinya berbalik. Sumber daya dianggap murah, dan kecepatan pengkodean serta fitur judul untuk pemasaran dipandang sebagai prioritas.  Hal ini sebagian disebabkan oleh kemajuan teknologi yang telah meningkatkan kapasitas pemrosesan dan kepadatan penyimpanan sebanyak beberapa kali lipat, sekaligus mengurangi biaya relatif sebanyak kali lipat (lihat hukum Moore ). Selain itu, penyebaran komputer ke seluruh tingkat bisnis dan kehidupan rumah tangga telah menghasilkan industri perangkat lunak yang berkali-kali lipat lebih besar dibandingkan pada tahun 1970an. Program sekarang biasanya dibuat oleh tim, diarahkan oleh komite di studio pengembangan perangkat lunak (juga dikenal sebagai rumah perangkat lunak atau pabrik perangkat lunak) di mana setiap pemrogram bekerja hanya pada sebagian dari keseluruhan, pada satu atau lebih subrutin.

Terakhir, alat dan pendekatan pengembangan perangkat lunak sering kali menghasilkan perubahan di seluruh program untuk menyediakan setiap fitur, yang mengarah pada penyertaan kode dalam lingkup besar yang memengaruhi pengoperasian utama perangkat lunak, dan diperlukan untuk mendukung fungsi-fungsi yang mungkin hanya ada. jarang digunakan. Secara khusus, kemajuan dalam sumber daya yang tersedia telah menghasilkan alat yang memungkinkan pengembangan kode lebih mudah, sekali lagi dengan lebih sedikit prioritas yang diberikan pada kesangkilan akhir.

Penyebab lain dari pembengkakan adalah persaingan standar dan produk secara independen, yang dapat menciptakan permintaan untuk integrasi. Sekarang terdapat lebih banyak sistem operasi, browser, protokol, dan format penyimpanan dibandingkan sebelumnya, menyebabkan program membengkak karena masalah interoperabilitas. Misalnya, sebuah program yang dulunya hanya bisa menyimpan dalam format teks, kini dituntut untuk menyimpan dalam format HTML, XML, XLS, CSV, PDF, DOC, dan format lainnya.

### Perangkat pembengkak
Istilah "**bloatware**" atau **perangkat pembengkak** dapat diterapkan pada perangkat lunak yang membengkak karena inefisiensi atau bertambahnya fitur seperti diuraikan di atas.  Istilah ini juga biasanya mengacu pada perangkat lunak yang sudah dipasang sebelumnya pada perangkat, biasanya oleh produsen perangkat keras, yang sebagian besar tidak diinginkan oleh pembeli ataupun penguna.

Istilah ini juga dapat diterapkan pada akumulasi elemen perangkat lunak yang tidak diinginkan dan tidak terpakai yang tersisa setelah penghapusan pemasangan sebagian dan tidak lengkap. Elemen-elemen ini dapat mencakup seluruh program, perpustakaan, informasi konfigurasi terkait, atau data lainnya. Kinerja dapat menurun secara keseluruhan sebagai akibat dari sisa-sisa tersebut, karena perangkat lunak atau komponen perangkat lunak yang tidak diinginkan dapat menempati ingatan, membuang waktu pengolahan, menambah masukan/keluaran cakram, menghabiskan penyimpanan, dan menyebabkan penundaan saat startup dan mati daya sistem. Dalam kasus terburuk, perangkat lunak yang tersisa dapat mengganggu pengoperasian perangkat lunak yang diinginkan. Perangkat pembengkak dapat dengan mudah dihapus jika pengguna memiliki akses izin pada perangkatnya, meskipun proses perizinan memiliki kelebihan dan kekurangannya sendiri,  seperti membatalkan garansi pabrik, dan perangkat lunak tertentu menolak untuk dijalankan pada perangkat yang diizinkan.

## Alternatif
Beberapa aplikasi, seperti GIMP, dan perangkat lunak dengan fungsionalitas tambahan dari colok-masuk, menggunakan ekstensi atau pengaya yang diunduh secara terpisah dari aplikasi utama. Ini dapat dibuat oleh pengembang perangkat lunak atau pengembang pihak ketiga. Colok-masuk, ekstensi, dan pengaya menambahkan fungsionalitas tambahan yang mungkin telah dikemas dalam program utama.

Mengizinkan colok-masuk, ekstensi, dan/atau pengaya ini akan mengurangi ruang yang digunakan pada satu mesin, karena meskipun aplikasi, "antarmuka colok-masuk", dan semua colok-masuk yang digabungkan lebih besar dari fungsi yang sama dikumpulkan menjadi satu aplikasi monolitik, ini memungkinkan setiap pengguna untuk memasang hanya fitur tambahan tertentu yang mereka perlukan, daripada memaksa setiap pengguna untuk menginstal aplikasi monolitik yang jauh lebih besar yang mencakup semua fitur yang tersedia. Hal ini menghasilkan aplikasi "diluar kotak" yang dikirimkan dalam paket ringkas tetapi siap bagi pengguna untuk menambahkan fungsionalitas apa pun yang hilang.

Perangkat lunak sumber terbuka dapat menggunakan teknik serupa menggunakan arahan prapengolah untuk menyertakan fitur pada waktu pengumpulan secara selektif. Hal ini lebih mudah diterapkan dan lebih aman dibandingkan sistem colok-masuk, tetapi memiliki kelemahan yaitu pengguna yang menginginkan serangkaian fitur tertentu harus mengkompilasi program dari sumber.

Terkadang perangkat lunak menjadi membengkak karena " perayapan fitur "  ( hukum selubung perangkat lunak Zawinski ). Salah satu cara untuk mengurangi pembengkakan seperti itu dijelaskan oleh filosofi Unix yaitu "menulis program yang melakukan satu hal dan melakukannya dengan baik," dan memecah perangkat lunak yang awalnya rumit menjadi beberapa komponen sederhana yang dapat dirangkai bersama menggunakan pipa, skrip syel, atau bentuk komunikasi interapplikasi lainnya.

## Referensi