Python 好きのコードの汚さは異常

Ruby や Rails が好きじゃないという人が、知らないなりに仕方なく書くことになった Ruby コードの汚さと、

Python 好きです Python 書けます、という人が喜んで書いてくれる Python コードの汚さには、どこか似たモノがあるように感じる。

多分その人の本質的に、コーディングそのモノへの才能がないところが同じなんだと思う。

具体的に要素を挙げるなら、他者目線がない、可読性を考慮できていない (本人はしているつもりかもしれないが他者目線になれてないので自分主観でしか判断できていない)、再現性を考慮していない、世間的なプラクティスに則っていない、というところだろうか。

JavaScript や PHP など他の言語にもあることだが、古い文献や「ダサい解法」をコピペして作っているケースが、Python では極めて高いように思える。公式が提供するドキュメンテーションをあたった形跡がなく、素人がブログで書いたモノを検証もせず受け売りで使い回している人が多い気がする。

Python でその雰囲気をよく感じる一端は、パッケージ管理ツールやエコシステムの統制のなさにあると思う。pip では不足している様々なモノを、pipenv で補うのか Poetry で補うのか、それらをせずに requirements.txt を雑に書き続けるのか、といったところでブレが大きすぎるのだ。そしてそれらがいずれも、環境構築に対する再現性のなさに繋がっており、目先のプログラムをとにかく動かし始めることにコストがかかっていてフォーマッタや Linter、テストツールなどに目が向かないのだろうと思われる。

Python しか書けない人間はそもそもそういう物事の比較と評価ができていないので、「自分が書いた Python コードが動いた = 自分は Python がデキる」の状態で思考が凝り固まっており、自分の至らぬ点があるかとか、改善点はあるかとか、そういう思想が一つもない。僕の環境で動いてるんだから良いでしょう、他の人のことはよく分かりません、そんな害悪と仕事したくないので、僕は Python を仕事で極力扱わないようにするし、自分が作る時はメチャクチャ綺麗に作って渡すようにしている。