Python の括弧無し構文が vi 使いには厳しい2021年04月09日 12時40分48秒

Python は、今までで使った言語の中で一番 vi と相性が悪い。一番の大きな理由は括弧無しで、段落に範囲を指定する形。

vi は % で括弧の相方に移動できる。

C 言語、C++、Java 等の言語は括弧を多用する。スクリプト系言語の JavaScript、Typescript、awk、perl 等もかなり括弧を使う。sh 系のスクリプトは if や while/for 構文などに代表される様に、括弧の数はかなり減るが関数は括弧で閉じている。

Python の関数の開始と終りを移動。ループや条件式の始まりと終りを探すのに目視が必要で面倒臭い。% を使って、ブロック単位のコピー・ペーストが出来ないのがとても手間なのだ。数行の慣用句を複製するのに、行数を数えるか、わざわざ別途マーキングが必要。

sh 系は % の移動の能力は落ちるが、大体 % を使うときは関数の頭と尻尾の間を移動したいときが多いので、とても不便といった感想は持ったことがなかった。

Python と sh 系の大きな使い勝手の違いはクラスの存在の有無だろう。関数だけが羅列してあるだけならば、複数の関数を飛び越えてクラスの終端を探す必要が無い。Python で複数のクラスが一つのファイルに書かれていて、それぞれ沢山のメンバ関数があると、何処から何処までがどのクラスに属するのかが見づらい。

そう言えば Fortran も括弧が無いだか、とても少なくて四苦八苦したが、こちらはほとんど読み専門で変更を加えることは少なかった。

機能的にはライブラリなども充実していて、使い勝手も悪くは無いが、この点だけが馴染めない。