私の会社では、メジャーなPythonパッケージがPython 2.で記述されています。現在、これをPython 3(私たちはそれを維持することを気にしませんPython 2互換)。
私はジュニアデベロッパーで、同僚はコンピューターサイエンスのバックグラウンドをあまり持っていない高齢者です。
計画プロセス中に、サポートしたい最小限のバージョンPython=バージョンの質問に答える必要がありました。選択された答えは、いくつかの内部的な理由により、Python 3.4でした。 。ただし、Python 3.4は5か月でサポートが終了します(おそらく、このパッケージがPython 3に移植される前であっても)
Python組織がサポートしていないバージョンPythonバージョンをサポートするという考えはもう好きではありませんが、それに対する具体的な議論を見つけることはできません。 「ただ気分が悪い」以外。
私が考えた議論は:
最初のバージョンについては、CIでサポートされている最小バージョンのみをテストし、このパッケージの開発者はローカルの開発環境として最新のものを使用すると述べています。テストの点では安全ではありませんが、Python 3.Xバージョン間の違いは、特にこのパッケージの機能を考えると、それほど多くのものを壊していないことを認めなければなりません。
2番目の引数について、人々はPython 3.5以降の新機能を実際には認識しておらず、「Python 2、私は新機能を追加する意味がわかりません。」また、このパッケージのコンテキストでは、本当に素晴らしいと宣伝できる新機能はありません(たとえば、async
ものなど)。 。
ソフトウェア開発のライフサイクルは開発以上のものであり、ソフトウェアの保守と廃止、または交換も含まれます。したがって、「X年後にはどうなのか」と尋ねることは、一般的に賢明な質問です。
サポートされているPythonバージョンを使用する大きな理由は、特にネットワーク接続ソフトウェアのセキュリティです。最新のPython=バージョンを使用すると、より長いサポートが得られます同じ理由で、(うまくいけば)Windows用の新しいシステムを設計しないでくださいXP or Android 4 or Ubuntu 16.04。Pythonの場合、EOLの日付は公式のCPython開発にのみ適用されます。これは、自分でコンパイルするか、公式のバイナリをダウンロードする場合に重要です。オペレーティングシステムに付属しているPythonを使用する場合、オペレーティングシステムのベンダーによって、サポート期間が異なる場合があります。
たとえば、ソフトウェアが個人データを処理し、GDPRの対象である場合( Art。32 を参照)、サポートされているソフトウェアバージョンの実行など、最新のセキュリティ慣行に従うことが法的に義務付けられる場合があることに注意してください。
開発の観点から、複数のPythonバージョンをサポートすることは簡単です(特にPython 3.4+のみの場合))。新しいバージョンへのアップグレードは、いくつかの小さなものを超えて簡単です修正(例Python 3.7がasync
を新しいキーワードに変更)。
したがって、古いバージョンのPython=を問題なく使用できますが、外部制約がある場合を除いて、そうする理由はありません。たとえば、「ソフトウェアはこれで実行する必要があります。サーバー、およびこのサーバーにはPython 3.4のみがインストールされています。別のPythonバージョンをインストールすることはできません。)これらの制約を削除する方が簡単な場合があります(OSアップデートのロビー活動など) 、またはコンテナを介してデプロイ)、ただし、非同期コードとPython 3.4のコンテキストでは、互換性のあるPythonコードを記述するだけで、通常、抵抗が最も少ないパスになります。 。