最新のソフトウェア製品には元のコードがどれだけ残っていますか?[閉まっている]


32

あなたの多くは、有名なソフトウェアを出荷する大企業で働いています。Firefox、Photoshop、Windows、Linuxなどの最新の大規模アプリケーションには、元のコード(基本的には「v1.0」リリースだったコード)がどれだけ残っているのだろうかと思いました。私は実際の体験と現実世界の戦争物語を本当に好むでしょう。

好奇心を満たしてくれてありがとう。

編集

ある程度の誤解があることがわかりました。私は後だとして、基本的なことは、次のとおりです。あなたがたときに責め / 注釈のソースコードは、最初の1.0のリリース以来、手付かずの任意の部分、あるいは全部のファイルがあります。


37
川が山を流れています。水が蒸発して地面に染み込みます。新しい水は他の小川から到着します。川が海に達すると、それは同じ川ですか?どうすればわかりますか?単一の分子が山頂から海までのすべての旅をすることがない場合はどうなりますか?同じ分子がない場合、同じ川であると言うにはどうすればよいですか?そして、この質問は、川についての馬鹿げた話以上に意味があるのでしょうか?
-S.ロット

4
質問は最初は問題ありませんが、このフレーズは「実際の体験と現実世界の戦争物語を好む」と述べています。ちょうどXは0から100まで変化する「我々はまだ元のコードのXの%を持っている」と言って回答のリストを招いている
ChrisF

10
@Anton Gogolev:ポイントはこれです。何で質問する?私の実際の経験には、1.0と同じ80%と1.0と同じ0%の2つの製品が含まれています。それが私の経験です。あなたは今まで知らなかった今、あなたは何を知っていますか?どのような問題が解決されましたか?これはどのように役立ちますか?
S.Lott

4
@ S.Lott私はここで迷っています...好奇心?一部の私たちが実行しているこのWindows 7 UltimateのコードがWindows 3.1にまでさかのぼるコードを持っていることを知るのは魅力的ではありませんか?
アントンゴゴレフ

6
@アントン・ゴゴレフ:「好奇心?」申し訳ありませんが、それは私にはほとんど意味がありません。答えが17%だった場合、それではどうしますか?その観察から何が続きますか?
S.Lott

回答:


36

あなたが期待するよりも多く、あなたが期待するよりもずっと古い。「完全な書き換え」や大きなリファクタリングを行っても、多くのモジュールがそのまま残ります。

たとえば、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
ねえ、それはまだ(おそらく)動作します
カラムロジャース

1
@Callum Rogers:動作しますが、うまくいきませんでしたし、遅いです... Firefoxがこのように落ちたのは残念です。
アント

2
MPLでは、「初期開発者」を追加する必要がありますが、ファイルが最後に変更されたわけではありません。Firefoxにはたくさんの古いコードがありますが、遅い場合はそうではありません-誰でも気付くほど遅いコードは書き直されます。
ポールビガー

3
@ kizzx2コードは錆びません

27

どれくらいかはわかりませんが、古いコードは間違いなくありますが、徐々に削除されます。たとえば、Windows 2008またはVistaでは、エクスプローラーを使用してc:\ windows \ fontsに移動し、左ペインを右クリックして[新しいフォントのインストール]を選択します。表示されるダイアログボックスは、3.1日前のウィンドウのものです(スクリーンショットを確認してください)。Windows 7でも同じように見える場合は、UIのようなはるかに優れたコントロールパネルです。

新しいフォントのインストールダイアログ


+100私は実際にこれを数年前に見つけました
ニコライ・ロイシュリング

うん、それは... msoOldStyleDialog(?)大丈夫、まだ終了しているため、1.0.xにとどまっているレガシープログラムでサポートされています。シンプルなファイルセレクターのように。この場合、GUIのオーバーホール中に見逃したダイアログの問題にすぎません。
ヘンリックアー

6

作業中のコードがどれほど古いかはわかりません。それはSubversionに置かれたときにしか戻れませんが、そこまでさかのぼることはたくさんあります。

ただし、Microsoft Officeコードに取り組んでいる友人がいます。数年前、彼はSaveA5Worldの呼び出しをいくつか削除したと言っていました。この呼び出しは、M680?0プロセッサを搭載した古いMacintoshで目的があり、Appleが90年代前半にPowerPC Macに移行して以来、何の目的もありませんでした。

私の観察では、企業が依存している強力なソフトウェアシステムは、誰ももう使いたくない技術で構築されました。


2

「彼らが最初から非常にうまく仕事をした場合、大きな部分、そうでなければ小さな部分。」

厳密な言語はこの特徴を示します。Nicklaus Wirthの言語は正確に計画されていたため、変更する必要はほとんどありませんでした。(これは実際にDelphiで最近変更されており、今後のユニバーサルデプロイバージョンでさらに変更されます。)

もちろん、これには裏返しもあります。Microsoft Windowsの場合や、ACDSeeのような素敵なアプリケーション、テキストエディター、または有名な「Linuxの精神」コマンドラインアプリケーションなど、元のコードで十分であると判断する。

これらのアプリケーションは、そもそもそれらを愛していない人にとっては不格好に思えるかもしれませんが、よく計画された特性と明確に定義された機能セットを表示します。たとえ彼らがベルやホイッスルを持っていなくても、それは好ましいかもしれません。彼らは錫の上にあることをします、後方互換性は素晴らしいですし、将来もうまく機能し続ける可能性があります。

機能セットを使用する場合、Photoshopの5.0以降のコードは90%になります。; Pそうですか?いいえ、なぜですか?更新の販売。今日はそれ以上のことはできません。

FTP、Web、およびクラウドを実行したいところまでのファイルマネージャーの機能セットは、10世紀のどのプラットフォームでもほぼ同じです。そのようなアプリケーションがまだ1.0になっていない唯一の理由は、計画の悪さ、気まぐれ、更新の衝動、そして少なくともアプリケーションの周りの世界の変化によるものです。

答えは、開発者が機能セットを決定し、バグのないプログラムを完成させ、追加したもののバグを際限なく追加したり修正したりして利益を得ないため、一部のgemは1.0または1.0.xのままです。さらに宝石を開発します。

他のすべてが1.0のコードの近くに留まる可能性は低いです。そして、あなたが素晴らしいアイデアを持っているなら、なぜあなたはアプリケーションを書き直すべきではありませんか?コーディングするのは楽しいはずです!:)それは、多くの現代のソフトウェア製品で起こったことではないことを除いて。変更(販売)のための変更であり、機能セットによる動機付けではなく、プラットフォームの変更に対応するために更新することは、ごくわずかです。

そして、絶えず更新するソフトウェアの相互作用部分のこのスープでは、リビジョンをエスケープするコードベースはほとんどありません。いくつかはまだ基礎とモジュール化の夢を守ります(そして時期尚早にリリースしません)が、大多数はリリース-修正-更新サイクルにとどまっています。


-2

iD TechやUnrealのように、ゲームに使用されている表面上は「最先端」のシステムでさえ、かなりの1.0コードが残っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.