EVE Online、Python 3移行開始—20年以上のコードを段階的に更新
EVE Online moves to Python 3
EVE Onlineは、EVE Evolvedイニシアチブの一環として、Python 3への移行を開始した。2003年のローンチ以来、Stackless Python 2.7を使い続けてきたが、Python 2のサポート終了とパフォーマンス向上のため、移行を決断。まずはコードをPython 2.7と3の両方で動作するようにする段階で、95.9%のファイルがすでに両バージョンでコンパイル可能。移行は段階的に進められ、プレイヤーに影響が出ないように設計されている。
移行の成功の定義は単純だ:時々何かがスムーズに動く瞬間を除いて、完全に気づかれないことだ。
HNでの議論
218- ryukoposting
スタックレスPythonの基本的なサンプルコードを、私のように聞いたことがない人のために:https://github.com/stackless-dev/stacklessexamples/blob/main...
「スタックレスタスクレット」と5回早口で言ってみて。
- simonebrunozzi
経験豊富なプレイヤーに聞きたいのですが、最近のEVE Onlineコミュニティの「雰囲気」はどうですか?私は約15年前に軽く関わっていました。
- est
スタックレスPythonには大きな可能性があった。エージェント時代の、永続的な状態を持つ長時間実行タスクに非常に役立つ可能性があった。
現代のPythonはasyncioで別の方向に進んだが、taskletとcontinuationを組み合わせれば、もっと強力なコンボになったかもしれない。
- Cakez0r
> では、240万行のコードをどう移行するのか?
> 非常に慎重に、そして複数の段階で。
その答えは3ヶ月前のものだな。
- markkitti
もし私がFenris Creationsの立場なら、Allegianceのコピーを作るだろう。
- ufo
スタックレスPythonはどうなったのですか?スタックレス関連の機能はすべて廃止されたのですか?
- santiagobasulto
Pythonがasyncioを導入し始めたとき、私の最初の反応はかなり否定的でした。まるで不機嫌な老害プログラマーのように振る舞っていました(「最近の若者は、新しいランタイムを作る代わりに並行処理の使い方を学ぶべきだ!」[0])。
しかし、本番プロジェクトで使ってみて、その成熟度、APIの品質、そして全体的なパフォーマンスに深く満足し、驚かされました。
私は間違っていたと証明され、それを嬉しく思っています:)
[0] 老人が雲に向かって叫ぶタイプのミーム
- p1anecrazy
> 典型的な例は除算です:Python 2では、1 / 2は0ですが、Python 3では0.5です。
どなたか説明していただけませんか?
編集:「Python 2では2.1/2が0で、Python 3では0.5」と読み間違えていました。