誰もがソフトウェア開発のレガシーコードについて語っていますが、過去10年間に、コードベースを悪いものとして表現するために使用される用語を聞いたことがあります。
プログラマにも同様に強力な意味合いを持つこの用語はどこから生まれたのでしょうか?
この用語を開拓したソフトウェア開発に関する本が必ずあるはずです。「レガシーコード」という用語の起源を特定したいと思います。
誰もがソフトウェア開発のレガシーコードについて語っていますが、過去10年間に、コードベースを悪いものとして表現するために使用される用語を聞いたことがあります。
プログラマにも同様に強力な意味合いを持つこの用語はどこから生まれたのでしょうか?
この用語を開拓したソフトウェア開発に関する本が必ずあるはずです。「レガシーコード」という用語の起源を特定したいと思います。
回答:
レガシーコードは、特にコードに適用されるレガシーシステムのフレーズに基づいています。ウィキペディアによると、おそらく1970年代に遡り、1980年代に一般的に使用されていました。それは1990年代の技術爆発で始まりました。
これは、Googleのngramビューアで確認できます:レガシーシステム、レガシーコード
これをさらに掘り下げると、1970年代の「レガシーシステム」という用語の使用が文書化されています。
グーグルが持っている「レガシーシステム」の最初の例は、1978年からの軍隊数値解析とコンピューター会議の議事録に関する本にあります。
...明確に定義された問題に対する十分に構成され、文書化されたソリューションは、レガシーシステムの動作を理解し、既存のシステムを自信を持って変更する必要があることです。
Cloutのテクノロジー業界以外で使用されている「レガシーシステム」の例もあります:Womanpower and Politics grin 1976:
...さらに、彼女は強力な銀行および通貨委員会の第3位の民主党員としての地位を保持しています。彼女は、レガシーシステムを介さずに自分で築いた権力の地位を築いています。
これらの例は、その使用が純粋なソフトウェアの世界を超えて広がっていることを示しており、用語の正確な起源の詳細はおそらく時間の経過とともに失われます。軍事的および政治的な言及を考えると、それは彼らと一緒に始まった可能性があります(主に軍隊とその専門用語の移住(「 TMRCを収容したMITの由緒ある建物20 ...」))
レガシーコードベースは通常、POSシステムではなく、コードベースに存在するシステムまたは新しい開発に使用されなくなったシステムを指します。たとえば、私のチームは現在、レガシーコードと見なされているいくつかの.net 1.1および2.0アプリケーションをサポートしています。変更が必要な場合は、最新のフレームワークと標準を使用するように変更または更新されます。それまでは、機能し続ける必要があるレガシーアプリケーションとしてそれらを管理しますが、拡張機能やコード修正は実装されていません。
また、VB6およびClassic ASPで作成されたいくつかのレガシーシステムもサポートしていません。これらのシステムをサポートまたは変更するための能力や指示はありませんが、システムが実行を継続し、拡張の必要がない限り、更新される可能性はありません。これらのシステムのいずれにも特に問題はありません。90年代半ばから後半にかけてアプリのように見えることを除けば、彼らは本来の方法で仕事を行い、大きな問題はありません。
したがって、レガシーとは、POSが、現在の標準に達していない以前のテクノロジーまたは言語で作成されたシステムを意味するものではありません。一部のレガシーシステムは、マネージドコードとベテランWebコーダーの15年以上の経験を可能にする、今日存在する開発方法論に欠けているため、ほとんどがPOSとして認定されます。
「レガシーコード」とは、マーケティング担当者が、コードが古い(ただしおそらく正常に動作する)人に、最新の(そしておそらくバグが多い)ソフトウェア言語と技術に更新するよう圧力をかけるために使用する用語です。「レガシーシステム」と密接にリンクしています。「レガシーシステム」とは、正常に機能するが、現在は「政治的に正しい」もの(たとえば、OpenVMS、IBMシステム)に準拠しない古いハードウェアとオペレーティングシステムを指します。
レガシーコードという用語は、comp.sys.amigaで Glenn Everhartが使用した少なくとも1989年のものです。
(...ちなみに、はい、私は時々Cでもプログラムします...しかし、言語を変更せずにレガシーコードを変換する方が簡単だと思います...)
Googleブックスでは、以前に検証可能なものは何も見つかりませんでした。