Berapa banyak kode asli yang tersisa di produk perangkat lunak modern? [Tutup]


32

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.


37
Sebuah sungai mengalir menuruni gunung. Air menguap dan meresap ke tanah. Air baru datang dari aliran lain. Ketika sungai mencapai laut, apakah itu sungai yang sama? Bagaimana kamu bisa tahu? Bagaimana jika tidak ada satu molekul pun yang melakukan seluruh perjalanan dari puncak gunung ke laut? Jika tidak ada molekul yang sama, bagaimana kita dapat mengatakan bahwa itu adalah sungai yang sama? Dan bagaimana pertanyaan ini lebih bermakna daripada cerita bodoh tentang sungai?
S.Lott

4
Pertanyaannya dimulai dengan baik, tetapi kalimat ini "Saya benar-benar lebih suka pengalaman langsung dan kisah perang dunia nyata." hanya mengundang daftar jawaban yang mengatakan "kami masih memiliki X% dari kode asli" di mana X bervariasi dari 0 hingga 100.
ChrisF

10
@Anton Gogolev: Intinya adalah ini. Kenapa bertanya? Pengalaman dunia nyata saya mencakup dua produk dengan 80% sama dengan 1.0 dan 0% sama dengan 1.0. Itu pengalaman saya. Apa yang Anda ketahui sekarang yang tidak Anda ketahui sebelumnya? Masalah apa yang Anda miliki yang diselesaikan? Bagaimana ini membantu Anda?
S.Lott

4
@ S.Banyaknya saya bingung di sini ... Keingintahuan? Bukankah menarik mengetahui bahwa Windows 7 Ultimate ini beberapa dari kita sedang menjalankan masih memiliki kode kembali ke Windows 3.1?
Anton Gogolev

6
@Anton Gogolev: "Keingintahuan?" Maaf, itu tidak masuk akal bagi saya. Jika jawabannya 17%, lalu bagaimana? Apa yang mengikuti dari pengamatan itu?
S.Lott

Jawaban:


36

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:

* The Initial Developer of the Original Code is
* Netscape Communications Corporation.
* Portions created by the Initial Developer are Copyright (C) 1994-2000 

Misalnya dalam header kernel Linux Anda dapat menemukan hal-hal seperti:

include/linux/if_ppp.h: * Copyright (c) 1989 Carnegie Mellon University.
include/linux/quota.h: * Copyright (c) 1982, 1986 Regents of the University of California. 
include/linux/coda.h:          Copyright (c) 1987-1999 Carnegie Mellon University
include/linux/mc146818rtc.h: * derived from Data Sheet, Copyright Motorola 1984 (!).
include/net/slhc_vj.h: * Copyright (c) 1989 Regents of the University of California.

1
Firefox penuh dengan kode lama, serius.
kizzx2

1
Hei, masih berfungsi (mungkin)
Callum Rogers

1
@Callum Rogers: Berhasil, tetapi tidak baik, dan lambat ... Sayang sekali Firefox telah jatuh seperti ini.
Anto

2
MPL mensyaratkan bahwa hal "Pengembang awal" ditambahkan, tetapi itu tidak berarti saat file tersebut terakhir kali disentuh. Firefox memiliki banyak kode lama, tetapi tidak jika itu lambat - kode yang cukup lambat bagi siapa pun untuk memperhatikan ditulis ulang.
Paul Biggar

3
@ kizzx2 kode tidak berkarat ..

27

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.

Instal dialog Font Baru


+100 Saya sebenarnya menemukan ini sendiri beberapa tahun yang lalu
Nicolai Reuschling

Yap, itu ... msoOldStyleDialog (?) Baik-baik saja, masih didukung untuk program lawas yang selesai dan karenanya tetap pada 1.0.x. Seperti pemilih file sederhana. Meskipun dalam kasus ini hanya masalah dialog yang mereka lewatkan selama perbaikan GUI.
Henrik Erlandsson

6

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.


2

"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.


-2

Bahkan seolah-olah sistem 'canggih' yang digunakan untuk gim, seperti iD Tech dan Unreal, masih memiliki sedikit kode 1.0 yang adil di dalamnya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.