非推奨
「非推奨」は、段階的に廃止され、置き換えられる機能を指すソフトウェア開発用語です。プログラミング言語やソフトウェアアプリケーションの非推奨機能は、引き続き動作する場合がありますが、サポートや改善は行われなくなります。非推奨機能のほとんどは、最終的に完全に削除されます。通常、プログラムやプログラミング言語の開発者は、ソフトウェア開発者が置き換え機能を実装する時間を確保できるよう、機能の非推奨化を数か月または数年前に告知します。
開発が続いているプログラミング言語やソフトウェアアプリケーションでは、古い関数やその他の機能が、まったく新しい置き換え機能に置き換えられることがあります。たとえばPHPでは、数値を通貨形式の文字列に変換するmoney_format()関数が、より堅牢なNumberFormatterクラスを優先して非推奨になりました。このクラスは、通貨形式を含むさまざまな方法で数値を整形できます。古いmoney_format()関数は、PHP 7.4で非推奨化が告知された後も引き続き動作したため、PHP開発者はPHP 8で完全に削除される前にソースコードを更新できました。
非推奨になったからといって、必ずしも機能が削除されるとは限りません。特に、長期間使われてきたプログラムや言語ではその傾向があります。より優れた実装が利用できる場合や、元の方法がシステムを不安定にする場合でも、古いソフトウェアを大幅な変更なしで動作させ続けるため、後方互換性を保つ目的で非推奨の関数が残されることがあります。たとえば、JavaScriptのescape()関数は、Unicode文字のサポートが不十分だったため非推奨になりましたが、古いJavaScriptコードを実行できるよう、現在もほとんどのWebブラウザーで利用できます。
ソフトウェアやプログラミング言語の機能が非推奨になる理由はいくつかあります。
- 同じ機能をより高い性能またはより少ない複雑さで実行する置き換え機能が導入され、非推奨の機能が不要になることがあります。
- プログラムや言語の現在の状態と一致しない古い機能は、再設計されたバージョンを優先して非推奨になることがあります。こうした機能では、時代遅れの構文や命名規則が使われているため、新しいプログラマーを混乱させる可能性があります。そのため非推奨にされ、現代の標準により適合したバージョンに置き換えられます。
- 設計上の欠陥セキュリティの脆弱性や(メモリリークなど)がある機能は、使用を控えさせるために非推奨になることがあります。
- 重複した機能は、システムの複雑さを減らすために非推奨にされ、削除されることがあります。
- プログラムや言語に予定されている変更によって既存の機能が動作しなくなる場合、その影響を受けない代替機能を開発者が使うよう促すため、事前に非推奨として示されます。
NOTE: プログラムやプログラミング言語の開発者は、ドキュメントやリリースノートで機能の非推奨化を告知します。プログラミング言語の非推奨機能は、ソフトウェア開発者がその機能を使おうとしたとき、その言語の統合開発環境(IDE)に警告メッセージを表示させることもあります。[/n]
知識をテストする