デファクトスタンダードとなっている IDE の有無

TL 眺めていて命名について思ったコトなど。 - 偏見プログラマの語り! 辺りに関連して.名前関連(名前が長すぎる)が最も多いような気がしますが,それ以外でも,Java に対する批判への反論として最もよく見かけるものに下記のようなものがあります.

だって,それ,Eclipse たんが何とかしてくれるし.

言語間での宗教論争は数多くありますが,この宗教論争が発生する要因の一つにデファクトスタンダードとなっている IDE が存在するかどうかと言うものがあるような気がします.

私自身を振り返ってみても,C# では GUI コンポーネントのメンバ変数を作成する際には,「変数名のサフィックスにクラス名を付ける」と言う命名規則を使用します (例:FooButton, BarTextBox, BasContextMenuStrip).何故,この命名規則を許容できるかと言うと Visual Studio による各種補助があるためです.そう言った補助があまり期待できないような環境だと,恐らくサフィックス部分は「そんなの型を見ろよ」と思って書かないだろうと思います.

Java においても,2000年時点(恐らく,Eclipseデファクトスタンダードになる前)では,以下のように「長い名前は良くない」とする記述があったりします.

長い名前は避けます (15 文字以内にするのをお勧めします)

PhysicalOrVirtualProductOrService というクラス名は、作ったときはぴったりのクラス名のように思えたかもしれませんが (もちろん、この例では、わざと長くしています)、この名前では長すぎるので、Offering のようなもっと短い名前への変更を検討する必要があります。

Java 命名規則 - IBM

私自身は,原則としては,特定のエディタや IDE に依存しすぎる開発の仕方は好きではありません.これは,これまでのバイト先や勤務先などで普段,自分がコーディングを行っている環境とは異なる所で共同で開発する際に,「この環境ではまともに開発できない」と愚痴を言ったりしている現場に何度か遭遇して辟易した影響が大きいです.私が,オレポータビリティ教に入信した理由の一つでもあります.

しかし,一方で,私自身を見ても C# で何かを開発する際には Visual Stduio 抜きでは考えられないほど依存しています.Eclipse は様々な環境で利用できるようになっていますし,「Eclipse なしの Java」と言う状況はほとんど考慮しなくても良いのだろうと思います.

こう言った事情があるので,デファクトスタンダードとなっている IDE が存在するプログラミング言語に関しては,その言語のみに着目するのではなく IDE 事情も考慮しないと実際に使用している人達の実感との間にギャップが存在してしまうのだろうと考えられます.逆に,特定の IDE を前提に開発している人達から見て,そう言った IDE による補助が見込めない環境でのコーディングスタイルに違和感があって批判したとしても,恐らくは受け入れられないだろうと思います.

慣れの問題

蛇足として.よく「可読性」の観点から名前の長さに関して宗教論争が行われますが,可読性に関しては「慣れ」の部分にも大きく依存します.

識別子の長さ

命名規則の最も基本的な規則は識別子の長さに関するものである(長さの限度および識別子に使える文字の種類)。数値を挙げて上限を設定する場合もあれば、もっと緩やかなガイドラインを設定する場合もある。

識別子長の規則は議論の的になりやすく、学術的な議論にもなっている。

考慮すべき点:

  • タイピングしやすいため、短い識別子が好まれる傾向がある。
  • あまりにも短い識別子('i' とか 'j')は、識別が困難である。
  • 短い識別子では暗号的な名前になるなど意味情報が込められないとして、長い識別子を好む場合もある。
  • 長い識別子は見た目にも判別しづらいため、敬遠される場合がある。

これらの要素がどのように絡み合ってプログラマの好みが形成されるのかは明らかではなく、今後の研究が待たれる。

命名規則(プログラミング)- Wikipedia

私自身は,この項目に挙がっているように「長い識別子は見た目にも判別しづらいソースコードが読みにくい)」と感じる事が多いのですが,Java のように長い識別子が当たり前の文化となっている開発者からはこの不満はあまり聞かれません.これは,普段から長い名前に触れているために慣れてしまっていると言う事が大きいのだろうと予想しています.

感想としては,プログラミング言語と言う括りで見ても言語毎に異なる発展をしてるのだから,事情を知らずに他言語の批判をしても的外れになる事が多いのだろうなぁと言うものでした.