최신 소프트웨어 제품에는 원래 코드가 얼마나 남아 있습니까? [닫은]


32

많은 사람들이 유명한 소프트웨어를 제공하는 대기업에서 일하고 있습니다. Firefox, Photoshop, Windows, Linux 등과 같은 현대적인 대규모 응용 프로그램에 원래 코드 (기본적으로 "v1.0"릴리스 인 코드)가 얼마나 남아 있는지 궁금합니다. 나는 직접 경험과 실제 전쟁 이야기를 선호합니다.

호기심을 만족시켜 주셔서 감사합니다.

편집하다

약간의 오해가 있음이 밝혀졌습니다. 내가 따르는 것은 기본적으로 다음과 같습니다. 소스 코드 를 비난 하거나 주석을 달 때 초기 1.0 릴리스 이후로 일부 또는 전체 파일을 건드리지 않습니다.


37
강이 산 아래로 흐릅니다. 물이 증발하여 땅에 흡수됩니다. 다른 물에서 새로운 물이옵니다. 강이 바다에 도달하면 같은 강입니까? 어떻게 알 수 있습니까? 단일 분자가 산 정상에서 바다까지 전체 여행을하지 않는다면 어떨까요? 같은 분자가 없다면, 같은 강이라고 어떻게 말할 수 있습니까? 그리고이 질문은 강에 관한 바보 같은 이야기보다 어떻게 더 의미가 있습니까?
S.Lott

4
문제는 괜찮아 시작하지만이 문구는 "실제 경험과 실제 전쟁 이야기를 선호합니다." X는 0에서 100까지 다양한 "원래 코드의 X %를 가지고 있습니다"라는 답변 목록을 초대합니다.
ChrisF

10
@Anton Gogolev : 요점은 이것입니다. 왜 물어? 내 실제 경험에는 1.0과 같은 80 %와 1.0과 같은 0 %의 두 제품이 포함됩니다. 그게 내 경험이야 이전에 몰랐다는 사실을 지금 알고 있습니까? 어떤 문제가 해결 되었습니까? 이것이 어떻게 도움이 되나요?
S.Lott

4
@ S.Lott 나는 여기에 손실에있어 ... 호기심? 우리 중 일부가 여전히 실행중인이 Windows 7 Ultimate에 여전히 Windows 3.1의 코드가 있다는 것을 아십니까?
Anton Gogolev

6
@Anton Gogolev : "Curiosity?" 미안합니다. 답이 17 %라면 무엇입니까? 그 관찰 결과는 무엇입니까?
S.Lott

답변:


36

당신이 기대했던 것보다 더 오래되고 기대했던 것보다 훨씬 오래되었습니다. "전체 다시 쓰기"및 큰 리 팩터에도 불구하고 많은 모듈이 그대로 남아 있습니다.

Péter는 예를 들어 Firefox에서 오래된 Netscape 코드를 찾지 못할 것을 제안합니다. 소스 코드를 통해 검색하면 다음과 같은 고지 사항이있는 파일이 많이 있습니다.

* 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는 10 년 전의 코드로 가득 차 있습니다.
kizzx2

1
이봐, 그것은 여전히 ​​작동합니다 (아마도)
Callum Rogers

1
@Callum Rogers : 잘 동작하지만 속도가 느립니다 ... Firefox가 이와 같이 떨어 졌다는 것은 부끄러운 일입니다.
Anto

2
MPL을 사용하려면 "초기 개발자"항목을 추가해야하지만 파일이 마지막으로 터치 된 시간을 의미하지는 않습니다. Firefox에는 오래된 코드가 많이 있지만 속도가 느린 경우는 아닙니다. 누구나 알아 채기에 충분히 느린 코드는 다시 작성됩니다.
Paul Biggar

3
@ kizzx2 코드는 .. 녹하지 않습니다

27

오래된 코드가 얼마나 있는지는 모르지만 천천히 제거됩니다. 예를 들어 Windows 2008 또는 Vista에서는 탐색기를 사용하여 c : \ windows \ fonts로 이동하여 왼쪽 창을 마우스 오른쪽 버튼으로 클릭하고 "새 글꼴 설치"를 선택하십시오. 표시되는 대화 상자는 Windows 3.1 일입니다 (스크린 샷 확인). Windows 7에서도 동일하게 표시되면 이제 UI와 같은 훨씬 나은 제어판입니다.

새 글꼴 설치 대화 상자


+100 몇 년 전에 실제로 이것을 발견했습니다.
Nicolai Reuschling

그렇습니다. msoOldStyleDialog (?) 괜찮습니다. 아직 완료되어 1.0.x에 머물렀던 레거시 프로그램을 계속 지원합니다. 간단한 파일 선택기와 같습니다. 이 경우 GUI 점검 중에 놓친 대화 상자의 문제 일뿐입니다.
Henrik Erlandsson '28

6

직장에서 코드가 몇 살인지 알 수 없습니다. Subversion에 넣었을 때만 돌아갈 수 있으며 그 이전까지 많은 것들이 있습니다.

그러나 Microsoft Office 코드 작업을 한 친구가 있습니다. 몇 년 전, 그는 SaveA5World 통화를 제거했다고 말했습니다. 그 전화는 M680? 0 프로세서가 장착 된 구 매킨토시에서 사용되었으며 90 년대 초 애플이 PowerPC Mac을 방문한 이후에는 아무런 도움이되지 않았습니다.

내 관찰에 따르면, 회사가 의존하는 강력한 소프트웨어 시스템은 더 이상 사용하기를 원하지 않는 기술로 만들어졌습니다.


2

"처음부터 일을 크게했다면 큰 부분, 그렇지 않으면 작은 부분"

엄격한 언어는이 특성을 나타냅니다. Nicklaus Wirth의 언어는 정밀하게 계획 되었기 때문에 거의 변경되지 않았습니다. (이것은 실제로 Delphi에서 최근에 변경되었으며, 다음 유니버설 배포 버전으로 더 많이 변경 될 것입니다.)

물론 이것에도 반대가 있습니다. Microsoft Windows의 경우 나 ACDSee와 같은 멋진 응용 프로그램, 텍스트 편집기 또는 잘 알려진 "리눅스의 정신"명령 줄 응용 프로그램과 같이 원본 코드가 충분하다고 결정합니다.

이러한 응용 프로그램은 처음에는 응용 프로그램을 좋아하지 않는 사람들에게는 어색한 것처럼 보일 수 있지만 잘 정의 된 기능 세트뿐만 아니라 잘 계획된 특성을 표시합니다. 그들이 종소리와 호루라기를 가지고 있지 않더라도 그것은 선호 될 수있다. 그들은 주석에있는 일을하고, 이전 버전과의 호환성이 뛰어나며 앞으로도 계속 잘 작동 할 것입니다.

기능 세트를 사용하는 경우 5.0 이후로 동일한 코드를 Photoshop에서 사용하게됩니다. ; P 그렇습니까? 이유없이? 업데이트 판매. 오늘은 더 이상 할 수 없습니다.

FTP, 웹 및 클라우드를 수행하려는 시점까지 파일 관리자의 기능 세트는 10 년 동안 모든 플랫폼에서 거의 동일합니다. 이러한 응용 프로그램이 여전히 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.