|
2008/04/16(Wed) 11:53:33 編集(投稿者) 2008/04/16(Wed) 11:52:16 編集(投稿者)
<pre><pre>■No17056 (中博俊 さん) に返信 > そもそもよねKENさんの言われている懸念が的を射たものでしょうか?
各人が想定する状況次第でしょうね。いくつか例示します。 言語は、スレ主が挙げられているVB.NET(以降VB)(及び、参考のためにC#も)。 #他の言語環境ではどうか?という話もどなたかから例示いただければなおよしですね。
> 表記文字が似ているというところだけを問題にして、 > > obj.データ > obj.デ−タ > > を間違えるというのであれば、それは的外れでしょう。
「データ」「デ−タ」の場合。ややこしいので前者を(1)、後者を(2)と呼びます。 ●VBで(1)の識別子でローカル変数を宣言する場合。 Dim データ As Object ' コンパイルエラーなし
●VBで(2)の識別子でローカル変数を宣言する場合。 Dim デ−タ As Object ' 以下のようなコンパイルエラー
vbJap.vb(4) : error BC30205: ステートメントの終わりを指定してください。
Dim デ−タ As Object ~~~~~~~~~~~~
エラー発生場所が4行目ということがわかりますが、 何のエラーが発生しているのかさっぱりわかりません。
ここでの例で言いたいのは先ほどの投稿での言及どおり、 タイプミス、誤変換等で嵌って無駄に時間を食いそうだという話です。 コンパイルエラーはでますが、非常にわかりにくいです。
●VBで(2)の識別子で中さんの例示されるようなパターンの場合 Obj.デ−タ ' コンパイルエラー
error BC30456: 'デ' は 'Obj' のメンバではありません。
Obj.デ−タ ~~~~~ error BC30800: メソッドの引数は、かっこで囲む必要があります。
Obj.デ−タ ~ error BC30451: 名前 'タ' は宣言されていません。
Obj.デ−タ ~
のようなコンパイルエラーがでます。 見慣れれば、長音記号が原因か?と勘が働くかもしれませんが、 一般的にはわかりずらいエラー内容だと思います。 #全角のマイナスなので、もっと別のコンパイルエラーになると予想したのですけどorz
このエラーがJittaさんの言うところの 「長音「ー」で不具合があるってフィードバックが上がっていたように思います。」 でしょうかね?
これは長音記号ならではの特殊な例ですが、既存の言語の多くが 記号に特別な意味を持たせているので、アルファベットではこの問題は起きません。
●C#で(2)の識別子でローカル変数を宣言する場合。
objec デ−タ;
csJap.cs(5,10): error CS1056: 文字 '−' は予期されていません。
こちらは、VBの場合とちがって、カラム位置と何が不明かが明らかにされているので、 問題はなさそうですね。
●C#で(2)の識別子で中さんの例示されるようなパターンの場合
Obj.デ−タ;
csJap.cs(5,8): error CS1056: 文字 '−' は予期されていません。
上と同様。
ここで挙げたのは一例ですので、他にもありそうというのが危惧するところです。 #実際の嵌りどころは日本語でプログラミングしている方の方がご存知ではないでしょうか。
> 同じクラスにそこまで似た命名をするなってのは規約の話で > > obj.Iis > obj.lis > > の違いとなにも変わらないです。 > > じゃ似た文字が原因でというのであれば、 > コンパイルエラーになるような問題は問題じゃないでしょう。
似た命名をした場合の話ではなく、見間違い、タイプミス等による間違いなので、 上記の例なら、「そんなメソッド(プロパティ)はない」 という趣旨でコンパイルエラーになるでしょうね。 ただ、日本語の誤変換よりは大文字「I」と小文字「l」をタイプミスすることは少なそうです。
コンパイルエラーになるから良いではなく、コンパイルエラー以前に気づけるかどうか、 仮にコンパイルエラーになるにしても、そのエラー内容で簡単に気づけるかが大事だと思います。
> 同型、またはそれに近い似た形はアルファベットの方にこそ多いです。
O(オー)と0(ゼロ)、I(アイ)とl(エル)以外で間違いそうなものってありますか? #ある程度はフォントにもよるでしょうけど
> 今はインテリセンスありきで言語設計する時代ですし。 > 前提を考えてもいいんじゃないですか?
私の前提は、既存の言語で、かつ、他の言語、ミドルウェア、ツールとの連携を考えるが前提です。 インテリセンスありきという話では、他の方がコメントされているように インテリセンスに表示される順番がわからないという点の指摘がありますね。
日本語(ひらがな、カタカナ、漢字、全角の記号、アルファベットなど 外来語を表現するときの外国語の文字)の柔軟さに対応できるように、 新しく言語仕様を決め、それ用の開発環境も開発するという前提なら話は違います。
例えば、開発環境が長音記号を誤入力してそうなところを指摘してくれるとか、 間違っている可能性のあるところを「もしかして・・・」と示唆してくれるなら、 問題を解決できる可能性はあると思います。 </pre></pre>
|