HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0702
マムラスクリプトに全角文字を使わない理由9解決


マムラ

リンク

2010/7/2(Fri) 19:45:05|NO.33524

プログラミングにおいて、全角文字が推奨されない理由を、
どなたか教えていただけないでしょうか。

いろいろ調べたのですが、知りたい事が載っているページが見つかりませんでした。
ほとんどのプログラミング言語は、変数名や関数名に全角文字(2バイト文字?)を使えますが、
推奨されていないのはなぜですか?
以前どこかで、コンパイラがエラーを吐く理由になる。などと聞いたことがあった気もするのですが、
逆を言えば、エラーを吐かれなければ何も問題はないはずです。
実際、変数名や関数名を全て日本語で記述したことがありますが、一度もエラーは起きませんでした。



この記事に返信する


Ve

リンク

2010/7/2(Fri) 20:09:16|NO.33525

私はHSPに限って言えば、ラベル名などでの使用をお薦めしています。


ほとんどのプログラミング言語は、変数名や関数名に全角文字(2バイト文字?)を使えますが、 推奨されていないのはなぜですか?

他の文字コードでは文字が別の文字に化けてしまい正常に動かなかったりするからではないかと。

それぐらいしかわかんないです。



info

リンク

2010/7/2(Fri) 21:22:37|NO.33526

 おそらく
- + * = 等の記号や予約語を打ち間違えやすくなる原因になるからではないでしょうか?
 たとえば、

 全角で変数名を打ち込んで
 半角英数に切り替えたあと
 記号を打ち込んでまた
 全角に切り替えて
 
 等とやっていると、すごい手間だと思います。

 自分は、それが面倒なので、必要な部分以外は半角のままで済ましています。

 一番恐ろしいのは スペースの打ち間違いですね。
 



テック

リンク

2010/7/2(Fri) 21:35:18|NO.33527

>プログラミングにおいて、全角文字が推奨されない理由を、
>どなたか教えていただけないでしょうか。
HSPではなく、VB.NETで日本語を使うことについて
のサイトがありました↓。
(http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=8288&forum=7)
で結論から言うと、
マムラさん個人だけで開発するなら、
全角文字を使用しても問題はないかと思います。

問題は、複数人数で開発する場合です。
・慣れていない人にとっては見難い。
・コーディング規約が作り難い(複数人数での開発時)
・違うOSや開発言語に移植する際、手間がかかる場合がある。
  (SJIS→EUC、拡張漢字の扱い、英語版OS環境での動作等)
・基本的に外国製の開発ツールであれば、思わぬ不具合が発生する可能性が
 ある。(推奨しない=動作するとは限らない)
・データベース等のテーブル名、フィールド名は対応していないものもあり、
 データベースが変わると使えなくなる可能性がある。
↑上記参照スレのBeatle氏の記事をそのまま抜粋
というようにデメリットがあります。

>全角で変数名を打ち込んで
>半角英数に切り替えたあと
>記号を打ち込んでまた
>全角に切り替えて
>一番恐ろしいのは スペースの打ち間違いですね。
私もinfoさんの意見と同じなのですが、
HSPの予約語が、半角英数の時点で
全部を全角でコーティングすることは不可能です。
また、HSPでは全角スペースをエラーとしているので
注意が必要だと思います。

あとはマムラさんが、全角文字を使用することの
メリットとデメリットを天秤にかけて
どちらを選択するかだと思います。

補足として
日本語でプログラミングできる言語「なでしこ」というのがあるみたいです。
(日本語プログラミング言語「なでしこ」公式ページ http://nadesi.com/)



KA

リンク

2010/7/2(Fri) 21:57:58|NO.33528

色々出ていますが、個人的に使う分には問題ないでしょう。



通りすがり

リンク

2010/7/2(Fri) 23:56:30|NO.33529

逆にスクリプト内でマルチバイト文字が使われていた場合に
インタプリタなりコンパイラがどう解釈するか知ってますか?
普通はよほど調べないと分からないこと、=挙動が不確定な行為と言えます。
仮にあるコンパイラで問題ないと確認し成功しても、
配布用などで同じ言語系の別のコンパイラ(が存在する場合に)使用する場合は
また一から再確認する必要も生じます。
外国人が英語しか使えないエディタでそのソースを開いた時も困るかも知れません。
というわけで一般的には、この不確定性や移植困難性のデメリットが、
可読性のメリットを上回ると判断すると思います。

中には100%安全だと保証されてる言語もあるかもしれませんが、多くの言語では未検証でしょう。
そして複数の言語を使っている場合、コーディングの作法が近いに越したことはありません。
ある言語で独特な作法が可能でも、他の言語を使う時にうっかりその習慣でミスする可能性が出てくるので
性能比なども考えて可能ならできるだけ「独特な作法」を敬遠したいと思うはずです。
実際、C++などではそういうミスを防ぐため、逆に/**/と//のどちらでもコメントアウトできたりしますよね。

ついでにテキトーな例えですが、「挙動が不確定」というのは
もしコンパイラがマルチバイト文字を何らかのエンコードしてるとして
その中で\や%などの記号が含まれてたら、それをエスケープや剰余と判断して誤作動してしまわないか、
とかそんなような危惧です。

結局、杞憂だとしても面倒だから誰も検証しないし、
英数字だけで大した問題があるわけでもないのでそちらで統一するんです。
それに個人では何をしようが構い・・・と言うのは事実であるものの、
もしいつか共同作業をする場合に変な癖はチームに迷惑をかけるので、
はっきり言えば、やっぱり誰であろうとイレギュラーは避けて欲しい所だと思います。



GENKI

リンク

2010/7/3(Sat) 01:26:09|NO.33530

HSPに限って言えば、個人の範囲で、変数やラベルに全角文字を使うことは悪くはないと思います。

私の場合は、次の理由などがあるので全角文字を使わないように気をつけています。
・変数名の命名規則を考えて使う習慣をつける。
・他の言語を使うときに変なクセを持ち込まないようにするための習慣づけ。(これは他の人も見ることがあるので。)
・スクリプトを公開したときに見やすくするため。(全角を見慣れない人のため。)
・半角英数文字のほうがなんとなくかっこいい気がする。


> また、HSPでは全角スペースをエラーとしているので

変数の1文字目が全角スペースだとエラーになるようですね。
それさえ回避すれば変数名の一部としては使えるようです。

あ  = 123456 mes "" + あ 


> 一番恐ろしいのは スペースの打ち間違いですね。

HSPスクリプトエディタから、
メニュー:ツール>オプション>エディタ>表示
全角スペースにチェックを入れる。
これで全角スペースが強調表示されます。目立つので打ち間違っても気づくことが出来ます。


> ほとんどのプログラミング言語は、変数名や関数名に全角文字(2バイト文字?)を使えますが、
> 推奨されていないのはなぜですか?

ざっと検索してみたら、文字コードの問題。外国の方の環境で正常に表示できない。というのを見かけました。



マムラ

リンク

2010/7/4(Sun) 13:15:53|NO.33539

みなさん、多様な意見ありがとうございます。
えーと、私が解釈したのは、
「HSPの場合はそんなに問題はない(コンパイラも1つしかないし)」
「全角を想定していない言語やコンパイラでは、どうなるかわからない」
「一般的に半角が使われているので、グループ作業に支障をきたす場合がある」
という具合でしょうか。

他にも「#defineなどの定数は全角で定義する」などの、
必ずしなければいけないわけではないが、常識としてそうしているようなこと
が載っているサイトがあれば、どなたか教えていただけませんか。



u

リンク

2010/7/4(Sun) 17:04:16|NO.33540

変数だとハンガリアン記法などですね。
定数や変数・命名で検索すると良いと思います。



テック

リンク

2010/7/4(Sun) 17:21:05|NO.33541

>定数や変数・命名で検索すると良いと思います。
uさんの言うとおり、「定数や変数・命名」や
「コーディング規約」などでググるといろいろでてくると思います。

↓コーディング規約が記載されているサイト
http://www.geocities.jp/bleis_tift/cpp/codingrule.html
http://www.objectclub.jp/community/codingstandard/JavaCodingStandard2004.pdf
http://www.coding-standard.com/

>他にも「#defineなどの定数は全角で定義する」などの、
イージーミスだと思いますが、
定数は、全角ではなく半角大文字で定義するのが一般的です。
また、#defineよりも#constで定義したほうがいいと思います。



ONION software Copyright 1997-2021(c) All rights reserved.