0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IDE前提ならインデント記法の言語が効率的では?

Last updated at Posted at 2019-09-23

Pythonのようなインデント記法はコード量が減る

 Pythonのようなブロックの終端(閉じ記号)がないインデント記法は、終端を記載しないので、その分だけコード量が少なくて済む。
 最近は、IDEやエディタのプラグインでコードの補完をしてくれるのでそこまで入力については手間はないかもしれない。けれど、読むときは文字数が少ないに越したことはない。

インデント記法への抵抗

 
 インデント記法については、好みもあるだろうが、好き・嫌いではなく、論理的な根拠によって利用しない人もいるかもしれない。私は、論理的な根拠への批判については、IDEを使うことでその多くの問題点は解消できると思う。

 問題点は、見えない文字による定義、また、タブや空白の設定が個人やプロジェクトによって異なるので固定化されないことなどではないだろうか。
 
 見えない文字による定義については以下のIDEやエディタの機能で十分対応できる。ただし、タブや空白の設定の差異については、指摘の通り問題点だと思う。これを重視する場合は、インデント記法の採用は難しいかもしれない。
 
 個人的には、プロジェクトごとに言語の設定はいつも変えるので、特に問題はないと思っているが、それは個人個人の状況により異なるだろう。

IDEの機能でインデント記法を効率的に使いこなす

 メモ帳や拡張なしのエディタを使ってコーディングしている人にとっては、インデント記法はブロックの区切りをつけるのがとても大変だし、調整が難しいかもしれない。

 けれど、最近はIDEやVimなどのエディタもプラグインをいれて開発するのが一般的である。その場合、インデント記法の大変さは軽減される。

不可視文字の表示

 インデント記法は、空白やタブによってブロックを分ける。この空白やタブが見えないからわかりにくいというのがあるかもしれない。けれど、最近は、どんなエディタでも不可視文字を表示できる。

 もちろん、空白やタブの感覚もエディタで設定ができる。スペースの数や\tにするかも設定できる。

行頭を表すルーラー

 インデント記法は、行頭がブロックの階層を表す。なのでそれがずれるとエラーになる。けれど、最近のエディタは、行頭がわかるルーラーが表示される。それによって、ブロックの行頭のズレもわかる。

自動のフォーマッター

 最近、有名なプログラム言語については、オートフォーマッターがあるので、それでインデントもすべてそろえてくれる。オートでできない場合がかりにあっても、上記の不可視文字やルーラーを頼りにそろえればいい。

昔の言語批判は、IDEの進歩によって解消されているかも?

 IDE前提であればPythonのようなインデント記法の方がコーディング量は減るのでその分、何かと作業が速い。コードも文字数がない分見やすい。

 最近は、昔されていたプログラム言語への批判は、IDEやエディタのプラグインの貢献で、だいぶ解消されてきていると思う。
 例えば、ビルドについても、IDEをインターフェースとして、さまざまなライブラリを統合すれば、自動でできてしまう。
 VSCodeのように、プラグインのマーケットプレースから、自動インストールの機能がそろっているものならなおのこと、プラグインの利用はしやすい。

 プログラム言語の批判についても、IDEを前提に、今一度考えてみると、意外と問題は少ないのかもしれない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?