มีรหัสดั้งเดิมเหลืออยู่เท่าไหร่ในผลิตภัณฑ์ซอฟต์แวร์ที่ทันสมัย [ปิด]


32

พวกคุณหลายคนทำงานกับ บริษัท ขนาดใหญ่ที่จัดส่งซอฟต์แวร์ที่มีชื่อเสียง ฉันสงสัยว่ารหัสต้นฉบับ (โดยทั่วไปคือรหัสที่ปล่อย "v1.0") เหลืออยู่ในแอปพลิเคชั่นขนาดใหญ่ที่ทันสมัยเช่นพูด Firefox, Photoshop, Windows, Linux, etc? ฉันชอบประสบการณ์มือแรกและเรื่องราวในโลกแห่งสงครามจริง ๆ

ขอบคุณสำหรับความพึงพอใจอยากรู้อยากเห็นของฉัน

แก้ไข

ปรากฎว่ามีระดับของความเข้าใจผิด สิ่งที่ฉันตามมาก็คือ: เมื่อคุณตำหนิ / คำอธิบายประกอบซอร์สโค้ดมีส่วนใดส่วนหนึ่งหรือแม้กระทั่งไฟล์ทั้งหมดมิได้ถูกแตะต้องตั้งแต่รุ่น 1.0 เริ่มต้น


37
แม่น้ำไหลลงมาจากภูเขา น้ำระเหยและซึมลงสู่พื้นดิน น้ำใหม่มาจากลำธารอื่น เมื่อแม่น้ำไปถึงทะเลมันเป็นแม่น้ำสายเดียวกันหรือไม่? คุณจะบอกได้อย่างไร จะเป็นอย่างไรถ้าไม่มีโมเลกุลเดียวที่ทำให้การเดินทางทั้งจากบนภูเขาสู่ทะเล? หากไม่มีโมเลกุลเหมือนกันเราจะพูดได้อย่างไรว่าเป็นแม่น้ำสายเดียวกัน และคำถามนี้มีความหมายมากกว่าเรื่องโง่เกี่ยวกับแม่น้ำอย่างไร
S.Lott

4
คำถามเริ่มดีขึ้น แต่วลีนี้ "ฉันชอบประสบการณ์แบบมือแรกและเรื่องราวในโลกแห่งสงครามจริง ๆ " กำลังเชิญรายการคำตอบที่บอกว่า "เรายังมี X% ของรหัสเดิม" โดยที่ X แตกต่างกันไปตั้งแต่ 0 ถึง 100
ChrisF

10
@Anton Gogolev: ประเด็นนี้คือ ทำไมต้องถาม ประสบการณ์ในโลกแห่งความจริงของฉันมีสองผลิตภัณฑ์ที่มี 80% เหมือนกับ 1.0 และ 0% เหมือนกับ 1.0 นั่นคือประสบการณ์ของฉัน ตอนนี้คุณรู้อะไรที่คุณไม่เคยรู้มาก่อน คุณมีปัญหาอะไรที่แก้ไขได้? สิ่งนี้ช่วยคุณได้อย่างไร
S.Lott

4
@ S.Lott ฉันอยู่ที่การสูญเสียที่นี่ ... อยากรู้อยากเห็น? เป็นเรื่องน่าสนใจใช่ไหมที่รู้ว่า Windows 7 Ultimate สิ่งนี้บางอย่างที่เรากำลังทำงานอยู่ยังมีรหัสย้อนหลังกลับไปเป็น Windows 3.1?
Anton Gogolev

6
@Anton Gogolev: "อยากรู้อยากเห็น?" ขออภัยที่ทำให้ฉันรู้สึกเล็กน้อย ถ้าคำตอบคือ 17% แล้วจะเป็นอย่างไร? อะไรต่อจากการสังเกตนั้น
S.Lott

คำตอบ:


36

มากกว่าที่คุณคาดหวังและแก่กว่าที่คุณคาดหวัง แม้ว่าจะมี "การเขียนซ้ำทั้งหมด" และตัวสร้างซ้ำขนาดใหญ่ แต่ก็มีโมดูลจำนวนมากที่ไม่ถูกแตะต้อง

ปีเตอร์แนะนำว่าตัวอย่างเช่นคุณจะไม่พบรหัส Netscape เก่าใน Firefox ซึ่งเป็นสิ่งที่ผิดถ้าคุณค้นหาจากซอร์สโค้ดคุณจะพบไฟล์บางไฟล์ที่มีข้อจำกัดความรับผิดชอบเช่น:

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

ตัวอย่างเช่นในส่วนหัวของเคอร์เนล Linux คุณสามารถค้นหาสิ่งต่าง ๆ เช่น:

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 นั้นเต็มไปด้วยรหัสเก่าที่มีมานานนับทศวรรษ
kizzx2

1
เฮ้มันยังใช้งานได้ (อาจ)
Callum Rogers

1
@Callum Rogers: มันใช้งานได้ แต่ไม่ดีและมันช้า ... มันเป็นความอัปยศที่ Firefox ตกลงมาเช่นนี้
Anto

2
MPL ต้องการให้มีการเพิ่มสิ่ง "เริ่มต้นของนักพัฒนา" แต่ไม่ได้หมายความว่าเมื่อไฟล์ถูกสัมผัสครั้งสุดท้าย Firefox มีรหัสเก่ามากมาย แต่ไม่ใช่ถ้ามันช้า - รหัสที่ช้าพอที่ใครก็ตามที่สังเกตเห็นจะได้รับการเขียนใหม่
Paul Biggar

3
รหัส @ kizzx2 ไม่เป็นสนิม ..

27

ฉันไม่ทราบว่ามี แต่รหัสเก่าอย่างแน่นอน แต่จะถูกลบออกอย่างช้าๆ เช่นใน windows 2008 หรือ vista ไปที่ c: \ windows \ fonts โดยใช้ explorer คลิกขวาที่บานหน้าต่างด้านซ้ายแล้วเลือก "ติดตั้งฟอนต์ใหม่" กล่องโต้ตอบที่แสดงนั้นมาจาก windows 3.1 วัน (ตรวจสอบภาพหน้าจอ) หากคุณเห็นสิ่งเดียวกันใน Windows 7 ตอนนี้ก็กลายเป็นแผงควบคุมที่ดีกว่าอย่าง UI

ติดตั้งกล่องโต้ตอบแบบอักษรใหม่


+100 ฉันพบสิ่งนี้ด้วยตัวเองไม่กี่ปีที่ผ่านมา
Nicolai Reuschling

ใช่นั่นคือ ... msoOldStyleDialog (?) ถูกต้องทั้งหมดยังคงได้รับการสนับสนุนสำหรับโปรแกรมรุ่นเก่าที่เสร็จสิ้นและอยู่ที่ 1.0.x เหมือนตัวเลือกไฟล์อย่างง่าย ถึงแม้ว่าในกรณีนี้มันเป็นเพียงเรื่องของการสนทนาที่พวกเขาพลาดในระหว่างการยกเครื่อง GUI
Henrik Erlandsson

6

ฉันไม่สามารถบอกได้ว่ารหัสในที่ทำงานมีอายุเท่าไหร่ ฉันสามารถย้อนกลับไปได้เฉพาะตอนที่มันถูกโค่นล้มและมีหลายอย่างที่ย้อนไปไกล

อย่างไรก็ตามฉันมีเพื่อนที่ทำงานกับรหัส Microsoft Office ไม่กี่ปีที่ผ่านมาเขาบอกฉันว่าเขาลบสาย SaveA5World บางส่วนออกไป การโทรดังกล่าวมีวัตถุประสงค์ในเครื่อง Macintoshes รุ่นเก่าที่มีโปรเซสเซอร์ M680? 0 และไม่ได้มีวัตถุประสงค์ใด ๆ ตั้งแต่ Apple ไปที่ PowerPC Mac ในช่วงต้นยุค 90

ในการสังเกตของฉันระบบซอฟต์แวร์ที่ทรงพลังใด ๆ ที่ บริษัท พึ่งพานั้นสร้างขึ้นด้วยเทคโนโลยีที่ไม่มีใครต้องการใช้อีกต่อไป


2

“ ถ้าพวกเขาทำงานได้ดีมากตั้งแต่เริ่มต้นส่วนใหญ่หรือส่วนเล็ก ๆ ”

ภาษาที่เข้มงวดแสดงลักษณะนี้ มีน้อยมากที่จะต้องเปลี่ยนในภาษาของ Nicklaus Wirth เพราะพวกเขาวางแผนด้วยความแม่นยำ (สิ่งนี้มีการเปลี่ยนแปลงจริง ๆ เมื่อเร็ว ๆ นี้สำหรับ Delphi และจะเปลี่ยนแปลงมากขึ้นด้วยเวอร์ชันการนำไปใช้งานสากลที่กำลังจะมาถึง)

นอกจากนี้ยังมีอีกด้านพลิกนี้แน่นอน การตัดสินใจว่ารหัสต้นฉบับนั้นดีพอเช่นในกรณีของ Microsoft Windows หรือแอพพลิเคชั่นที่น่ารักเช่น ACDSee, text editor หรือแอพพลิเคชั่นบรรทัดคำสั่ง "spirit of Linux" ที่รู้จักกันดี

แม้ว่าแอปพลิเคชั่นเหล่านี้อาจดูไม่น่าสนใจสำหรับผู้ที่อาจไม่ได้รักในตอนแรก แต่ก็แสดงคุณลักษณะที่ได้รับการวางแผนมาเป็นอย่างดี แม้ว่าพวกเขาจะไม่มีระฆังและเสียงหวีด พวกเขาทำสิ่งที่อยู่ในกระป๋องความเข้ากันได้แบบย้อนหลังนั้นยอดเยี่ยมและมีแนวโน้มที่จะทำงานได้ดีในอนาคต

Photoshop จะมีรหัสเดียวกัน 90% ตั้งแต่ 5.0 ถ้าคุณไปตามฟีเจอร์ ; P ไม่ทำไม? ขายการปรับปรุง วันนี้คุณไม่สามารถทำอะไรได้มากขึ้น

ชุดคุณลักษณะของตัวจัดการไฟล์จนถึงจุดที่ต้องการทำ FTP เว็บและคลาวด์นั้นส่วนใหญ่จะเหมือนกันสำหรับแพลตฟอร์มใด ๆ สำหรับ Decennia เหตุผลเดียวที่แอปพลิเคชันดังกล่าวยังคงไม่อยู่ที่ 1.0 เนื่องจากการวางแผนที่ไม่ดีต้องการกระตุ้นให้อัปเดต - และอย่างน้อยที่สุดในโลกที่มีการเปลี่ยนแปลงแอปพลิเคชัน

คำตอบก็คืออัญมณีบางตัวอยู่ที่ 1.0 หรือ 1.0.x เพราะนักพัฒนาได้ตัดสินใจเลือกฟีเจอร์เสร็จสมบูรณ์โปรแกรมที่ไม่มีข้อบกพร่องและไม่ได้กำไรจากการเพิ่มสิ่งต่าง ๆ อย่างไม่สิ้นสุดและแก้ไขข้อบกพร่องในสิ่งที่เพิ่มเข้ามาหรือย้ายไปแล้ว เพื่อพัฒนาอัญมณีมากขึ้น

สิ่งอื่นไม่น่าจะอยู่ที่ใดก็ได้ใกล้กับรหัสใน 1.0 และทำไมคุณไม่ควรเขียนแอปพลิเคชันใหม่ถ้าคุณมีความคิดที่ดี? คุณควรจะสนุกกับการเขียนโค้ด! :) ยกเว้นว่าไม่ใช่สิ่งที่เกิดขึ้นในผลิตภัณฑ์ซอฟต์แวร์ที่ทันสมัยมากมาย การเปลี่ยนแปลงเพื่อการเปลี่ยนแปลง (ยอดขาย) และไม่ได้รับแรงบันดาลใจจากฟีเจอร์เซ็ตและการอัปเดตในระดับที่เล็กลงเพื่อให้สอดคล้องกับแพลตฟอร์มที่เปลี่ยนแปลงคือลำดับของวัน

และในส่วนของการโต้ตอบชิ้นส่วนของการปรับปรุงอย่างต่อเนื่องไม่กี่รหัสฐานซอฟต์แวร์แก้ไขการหลบหนี บางคนยังคงสานต่อความฝันของมูลนิธิและการทำให้เป็นโมดูล (และไม่ปล่อยก่อนกำหนด) แต่ส่วนใหญ่ติดอยู่ในวงจรการแก้ไขการเปิดตัว


-2

แม้แต่ระบบ 'ล้ำสมัย' ที่ใช้สำหรับเกมเช่น iD Tech และ Unreal ก็ยังคงมีรหัส 1.0 อยู่พอสมควร

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.