Bao nhiêu mã gốc còn lại trong các sản phẩm phần mềm hiện đại? [đóng cửa]


32

Nhiều người trong số bạn làm việc cho các công ty lớn vận chuyển phần mềm nổi tiếng. Tôi đã tự hỏi, bao nhiêu mã gốc (về cơ bản, mã được phát hành "v1.0") còn lại trong các ứng dụng lớn hiện đại, chẳng hạn như, Firefox, Photoshop, Windows, Linux, v.v.? Tôi thực sự thích trải nghiệm trực tiếp và những câu chuyện chiến tranh trong thế giới thực.

Cảm ơn đã thỏa mãn trí tò mò của tôi.

CHỈNH SỬA

Hóa ra có một mức độ hiểu lầm. Những gì tôi theo sau về cơ bản như sau: khi bạn đổ lỗi / chú thích mã nguồn, có bất kỳ phần nào hoặc thậm chí toàn bộ tệp chưa được xử lý kể từ khi phát hành 1.0 ban đầu.


37
Một dòng sông chảy xuống một ngọn núi. Nước bay hơi và ngấm vào lòng đất. Nước mới đến từ các dòng khác. Khi sông đến biển, nó có phải là cùng một dòng sông? Làm thế nào bạn có thể nói? Điều gì sẽ xảy ra nếu không có một phân tử nào thực hiện toàn bộ hành trình từ đỉnh núi đến biển? Nếu không có phân tử nào giống nhau, làm sao chúng ta có thể nói đó là cùng một dòng sông? Và câu hỏi này có ý nghĩa gì hơn câu chuyện ngớ ngẩn về dòng sông?
S.Lott

4
Câu hỏi bắt đầu OK, nhưng cụm từ này "Tôi thực sự thích trải nghiệm trực tiếp và những câu chuyện chiến tranh trong thế giới thực." chỉ mời một danh sách các câu trả lời rằng "chúng tôi vẫn có X% mã gốc" trong đó X thay đổi từ 0 đến 100.
ChrisF

10
@Anton Gogolev: Vấn đề là đây. Hỏi làm gì? Trải nghiệm trong thế giới thực của tôi bao gồm hai sản phẩm với 80% giống với 1.0 và 0% giống với 1.0. Đó là kinh nghiệm của tôi. Bây giờ bạn biết gì mà trước đây bạn không biết? Vấn đề nào bạn đã giải quyết? Điều này giúp bạn như thế nào?
S.Lott

4
@ S.Lott Tôi thua lỗ ở đây ... Tò mò? Thật thú vị khi biết rằng Windows 7 Ultimate này, một số người trong chúng ta đang chạy vẫn có mã có từ Windows 3.1?
Anton Gogolev

6
@Anton Gogolev: "Tò mò?" Xin lỗi, điều đó rất ít ý nghĩa với tôi. Nếu câu trả lời là 17% thì sao? Điều gì sau quan sát đó?
S.Lott

Câu trả lời:


36

Nhiều hơn bạn mong đợi và nhiều tuổi hơn bạn mong đợi. Ngay cả với "tổng số viết lại" và các nhà tái cấu trúc lớn, vẫn có nhiều mô-đun không bị ảnh hưởng.

Péter đề xuất rằng ví dụ bạn sẽ không tìm thấy mã Netscape cũ trong Firefox. Điều này là sai, nếu bạn tìm kiếm thông qua mã nguồn, bạn sẽ tìm thấy khá nhiều tệp có từ chối trách nhiệm như:

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

Ví dụ: trong các tiêu đề kernel Linux, bạn có thể tìm thấy những thứ như:

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 đầy mã thập kỷ cũ, nghiêm túc.
kizzx2

1
Hey, nó vẫn hoạt động (có lẽ)
Callum Rogers

1
@Callum Rogers: Nó hoạt động, nhưng không tốt, và nó chậm ... Thật xấu hổ khi Firefox đã sụp đổ như thế này.
Anto

2
MPL yêu cầu điều "Nhà phát triển ban đầu" được thêm vào, nhưng điều đó không có nghĩa là khi tập tin được chạm lần cuối. Firefox có rất nhiều mã cũ, nhưng nếu nó chậm - mã đủ chậm để bất kỳ ai chú ý sẽ được viết lại.
Paul Biggar

3
Mã @ kizzx2 không bị rỉ ..

27

Tôi không biết bao nhiêu nhưng mã cũ chắc chắn ở đó nhưng dần dần bị xóa. Ví dụ: trong windows 2008 hoặc vista, hãy truy cập c: \ windows \ phông chữ bằng trình thám hiểm, nhấp chuột phải vào khung bên trái và chọn "cài đặt phông chữ mới". Hộp thoại được hiển thị là từ windows 3.1 ngày (kiểm tra ảnh chụp màn hình). Nếu bạn thấy điều tương tự trong Windows 7 thì bây giờ nó là bảng điều khiển tốt hơn nhiều như UI.

Cài đặt hộp thoại Phông chữ mới


+100 Tôi thực sự đã tìm thấy điều này một vài năm trước
Nicolai Reuschling

Đúng, đó là ... msoOldStyleDialog (?), Vẫn được hỗ trợ cho các chương trình cũ đã kết thúc và do đó đã duy trì ở mức 1.0.x. Giống như một bộ chọn tập tin đơn giản. Mặc dù trong trường hợp này, đó chỉ là vấn đề của một hộp thoại mà họ đã bỏ lỡ trong quá trình đại tu GUI.
Henrik Erlandsson

6

Tôi không thể biết mã tuổi ở nơi làm việc là bao nhiêu. Tôi chỉ có thể quay lại khi nó được đưa vào Subversion, và có rất nhiều thứ đã tồn tại từ đó đến nay.

Tuy nhiên, tôi có một người bạn đã làm việc với mã Microsoft Office. Vài năm trước, anh ấy nói với tôi rằng anh ấy đã xóa một số cuộc gọi SaveA5World khỏi nó. Cuộc gọi đó có mục đích trên các máy Macintosh cũ với bộ xử lý M680? 0 và không phục vụ mục đích nào kể từ khi Apple chuyển sang máy Mac PowerPC vào đầu những năm 90.

Theo quan sát của tôi, bất kỳ hệ thống phần mềm mạnh mẽ nào mà một công ty dựa vào đều được xây dựng với công nghệ không ai thực sự muốn sử dụng nữa.


2

"Nếu họ đã làm công việc của họ cực kỳ tốt ngay từ đầu, một phần lớn, nếu không là một phần nhỏ."

Ngôn ngữ nghiêm ngặt hiển thị đặc điểm này. Rất ít phải thay đổi ngôn ngữ của Nicklaus Wirth, vì chúng được lên kế hoạch với độ chính xác. (Điều này thực sự đã thay đổi gần đây đối với Delphi và sẽ thay đổi nhiều hơn với phiên bản triển khai toàn cầu sắp tới.)

Tất nhiên cũng có mặt trái của vấn đề này. Việc quyết định rằng mã gốc là đủ tốt, chẳng hạn như trong trường hợp của Microsoft Windows, hoặc các ứng dụng đáng yêu như ACDSee, trình soạn thảo văn bản hoặc các ứng dụng dòng lệnh "tinh thần của Linux" nổi tiếng.

Mặc dù những ứng dụng này có vẻ khó hiểu với những người có lẽ không yêu thích chúng ngay từ đầu, chúng vẫn hiển thị một đặc điểm được lên kế hoạch tốt cũng như một bộ tính năng được xác định rõ; ngay cả khi họ không có chuông và còi, điều đó có thể được ưa thích hơn; họ làm những gì trên hộp thiếc, khả năng tương thích ngược là rất tốt và có khả năng sẽ tiếp tục hoạt động tốt trong tương lai.

Photoshop sẽ có 90% mã giống nhau kể từ 5.0, nếu bạn đi theo bộ tính năng. ; P Có phải không? Không. Tại sao? Bán cập nhật. Bạn thực sự không thể làm nhiều hơn với nó ngày hôm nay.

Bộ tính năng của trình quản lý tệp, cho đến khi nó muốn làm FTP, web và đám mây phần lớn giống nhau cho bất kỳ nền tảng nào cho decennia. Lý do duy nhất khiến một ứng dụng như vậy vẫn không ở mức 1.0 là do lập kế hoạch xấu, vì ý muốn cập nhật - và ít nhất là trong một phạm vi nhỏ thế giới thay đổi xung quanh ứng dụng.

Câu trả lời là một số đá quý ở mức 1.0 hoặc 1.0.x vì nhà phát triển đã quyết định về bộ tính năng, đã hoàn thành chương trình không có lỗi và không thu được lợi nhuận từ việc thêm vô tận nội dung và sửa lỗi trong nội dung được thêm hoặc đã di chuyển trên để phát triển thêm đá quý.

Tất cả những thứ khác không có khả năng ở bất cứ đâu gần mã trong 1.0. Và tại sao bạn không nên viết lại ứng dụng nếu bạn có một ý tưởng tuyệt vời? Bạn nên, thật vui khi viết mã! :) Ngoại trừ đó không phải là những gì đã diễn ra trong nhiều sản phẩm phần mềm hiện đại. Thay đổi vì mục đích thay đổi (bán hàng) và không được thúc đẩy bởi tính năng, và ở mức độ nhỏ hơn để cập nhật để tuân thủ thay đổi nền tảng, là thứ tự trong ngày.

Và trong phần tương tác của các phần mềm cập nhật liên tục này, một vài bản sửa đổi mã thoát. Một số ít vẫn giữ giấc mơ thành lập và mô đun hóa (và không phát hành sớm), nhưng đại đa số bị mắc kẹt trong chu trình phát hành-sửa chữa-cập nhật.


-2

Ngay cả các hệ thống 'tiên tiến' được sử dụng cho các trò chơi, như iD Tech và Unreal, vẫn sẽ có một chút mã 1.0 trong đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.