Banyak dari Anda di luar sana bekerja untuk perusahaan besar yang mengirimkan perangkat lunak terkenal. Saya bertanya-tanya, berapa banyak kode asli (pada dasarnya, kode yang merupakan rilis "v1.0") tersisa di aplikasi besar modern, seperti, katakanlah, Firefox, Photoshop, Windows, Linux, dll? Saya benar-benar lebih suka pengalaman langsung dan kisah perang dunia nyata.
Terima kasih telah memuaskan keingintahuan saya.
EDIT
Ternyata ada tingkat kesalahpahaman. Apa yang saya kejar pada dasarnya adalah sebagai berikut: ketika Anda menyalahkan / membubuhi keterangan kode sumber, apakah ada bagian atau bahkan seluruh file tidak tersentuh sejak rilis awal 1.0.
source-code
history
Anton Gogolev
sumber
sumber
Jawaban:
Lebih dari yang Anda harapkan dan jauh lebih tua dari yang Anda harapkan. Bahkan dengan "total penulisan ulang" dan refaktor besar ada banyak modul yang tetap tidak tersentuh.
Péter menyarankan agar misalnya Anda tidak akan menemukan kode Netscape lama di Firefox. Yang salah, jika Anda mencari melalui kode sumber Anda akan menemukan beberapa file dengan disclaimer seperti:
Misalnya dalam header kernel Linux Anda dapat menemukan hal-hal seperti:
sumber
Saya tidak tahu berapa banyak tapi kode lama sudah pasti ada tetapi perlahan-lahan dihapus. Misalnya di windows 2008 atau vista pergi ke c: \ windows \ font menggunakan explorer, klik kanan pada panel kiri dan pilih "instal font baru". Kotak dialog yang ditampilkan adalah dari windows 3.1 hari (periksa tangkapan layar). Jika Anda melihat hal yang sama pada Windows 7 sekarang panel kontrol yang jauh lebih baik seperti UI.
sumber
Saya tidak tahu berapa umur kode itu. Saya hanya bisa kembali ketika dimasukkan ke Subversion, dan ada banyak yang tanggal sejauh itu.
Namun, saya punya teman yang telah bekerja pada kode Microsoft Office. Beberapa tahun yang lalu, dia memberi tahu saya bahwa dia telah menghapus beberapa panggilan SaveA5World dari situ. Panggilan itu memiliki tujuan pada Macintoshes lama dengan prosesor M680? 0, dan tidak ada gunanya sejak Apple pergi ke PowerPC Mac pada awal 90-an.
Dalam pengamatan saya, setiap sistem perangkat lunak yang kuat yang diandalkan perusahaan dibangun dengan teknologi yang benar-benar tidak ingin digunakan lagi.
sumber
"Jika mereka melakukan pekerjaan mereka dengan sangat baik sejak awal, sebagian besar, atau sebagian kecil."
Bahasa yang ketat menampilkan sifat ini. Sangat sedikit yang harus diubah dalam bahasa Nicklaus Wirth, karena mereka dirancang dengan presisi. (Ini sebenarnya telah berubah akhir-akhir ini untuk Delphi, dan akan berubah lebih banyak dengan versi penyebaran universal yang akan datang.)
Tentu saja ada sisi lain dari hal ini. Memutuskan bahwa kode asli cukup baik, seperti dalam kasus Microsoft Windows, atau aplikasi yang bagus seperti ACDSee, editor teks, atau aplikasi baris perintah "semangat Linux" yang terkenal.
Meskipun aplikasi-aplikasi ini mungkin kelihatan kikuk bagi mereka yang mungkin tidak menyukainya pada awalnya, mereka menampilkan sifat yang terencana dengan baik serta set fitur yang terdefinisi dengan baik; bahkan jika mereka tidak memiliki bel dan peluit, itu mungkin lebih disukai; mereka melakukan apa yang ada di kaleng, kompatibilitas ke belakang sangat bagus, dan kemungkinan akan terus berfungsi dengan baik di masa depan.
Photoshop akan memiliki 90% kode yang sama sejak 5.0, jika Anda menggunakan fitur set. ; P Apakah itu? Tidak Memangnya kenapa? Jual pembaruan. Anda tidak bisa berbuat lebih banyak dengan itu hari ini.
Set fitur dari manajer file, sampai pada titik di mana ia ingin melakukan FTP, web, dan cloud sebagian besar sama untuk platform apa pun untuk decennia. Satu-satunya alasan aplikasi seperti itu masih belum di 1.0 adalah karena perencanaan yang buruk, keinginan, keinginan untuk memperbarui - dan setidaknya sebagian kecil dunia berubah di sekitar aplikasi.
Jawabannya adalah bahwa beberapa permata tetap pada 1,0 atau 1.0.x karena pengembang telah memutuskan fitur set, menyelesaikan program bebas bug, dan tidak mendapat untung dari menambahkan barang tanpa henti dan memperbaiki bug pada barang yang ditambahkan, atau telah pindah untuk mengembangkan lebih banyak permata.
Semua yang lain tidak akan tinggal di dekat kode dalam 1.0. Dan mengapa Anda tidak menulis ulang aplikasi jika Anda punya ide bagus? Anda harus, itu menyenangkan untuk kode! :) Kecuali bukan itu yang terjadi di banyak produk perangkat lunak modern. Perubahan demi perubahan (penjualan) dan tidak termotivasi oleh featureet, dan pada tingkat yang lebih kecil memperbarui untuk mematuhi platform yang berubah, adalah urutan hari ini.
Dan dalam sup potongan-potongan yang saling berinteraksi dari perangkat lunak yang terus diperbarui, beberapa basis kode lolos dari revisi. Beberapa masih mempertahankan impian yayasan dan modularisasi (dan tidak merilis sebelum waktunya), tetapi sebagian besar terjebak dalam siklus rilis-perbaiki-pembaruan.
sumber
Bahkan seolah-olah sistem 'canggih' yang digunakan untuk gim, seperti iD Tech dan Unreal, masih memiliki sedikit kode 1.0 yang adil di dalamnya.
sumber