リスト革命。 1から始まる番号リスト? すでに完了したことを考慮してください! [UPD]

最近、インターネットで、Pythonコミュニティのメーリングリストからこのメッセージに出会いました。

クリストファー・キング:リストの最初の項目はインデックス0、2番目はインデックス1、3番目は2などです。 これは、Pythonの初心者や一般的なプログラミングを混乱させる場合があります。 このような番号付けシステムは、1ビットが依然として非常に重要であったときに採用されました。 アップグレードする時が来ました。 これは4番目のバージョンの提案であることに注意してください。これは、下位互換性がないためです。 最初の要素をインデックス1で、2番目の要素をインデックス2で、などを作成する必要があるという事実について話している。 他の言語が続きます。 Pythonを簡単で読みやすくしたいので、USBを介して1キロバイト未満のものを取得することが不可能な時代には、最初の1つ、2番目の2番目、3番目の3つをあるべき姿にしなければなりません。 これに+1を付けます。

Guido van Rossum:すでに終わっていると考えてください。

* Guido van Rossumは、Pythonプログラミング言語であるBDFLの著者です。

mail.python.orgでのオリジナルの ディスカッション



コミュニティは、予想どおり、「これまで考えたことがないとは信じられない」から「これは完全な狂気だ!」まで、これに曖昧に反応しました。 このアイデアの技術的な実装から深化が始まりました。 提案の著者は、彼のアイデアをより冗談として認識したため、Guidoの支持に本当に驚きました。 確かに、数日後、生涯にわたる独裁者は彼の感覚に来ました:



Guido van Rossum: ...いずれにせよ、このアイデアが新しい言語を設計するのに良いかどうかは言うまでもなく、あなたのアイデアはうまくいきません。 Pythonの存在から20年以上にわたって書かれたすべてのコードを変更する必要があります。もちろん、Pythonに関する数百万人のユーザーの脳や数百冊の本も変更する必要があります。

さらに、他のほとんどすべての広く使用されているプログラミング言語(C、C ++、Java、C#、JavaScript、Ruby、Objective-C)は、ゼロからインデックス作成を開始します。

これは長い間行われてきたイデオロギーの戦いであり(すべての古いプログラミング言語は1:Fortran、Algol、Pascalに基づいたインデックス付けをサポートしています)、インデックス化は0から勝ちました。これは実際にはそれほど重要ではないため、 。



それにもかかわらず、このアイデアの議論はまだ進行中であり、コミュニティには多くの影響力があり尊敬されている支持者がいます。



この提案により、私は嵐のような議論に突入しました。一方で、それは本当に「人間的」に思えますが、古いコードの後方互換性についてはどうでしょうか。 この機能がPython 4で実装されている場合、Pythonのハイライトであると同時に生き生きとしたものになります。 個人的には、2番目に傾いています。 habrasocietyはこれについて何と言いますか?



UPD。 すべてを真剣に受け止めた人たちのために:Pythonで誰からもインデックスを入力することはありませんが、かんしゃくはキャンセルされます。 Guidoの2番目の回答を読みます



All Articles