case-sensitive vs. case-insensitive論争
■ このスレッドは過去ログ倉庫に格納されています
0001ジャジメン
NGNG分岐元スレ「プログラミング言語 開発スレ( ´�D`)」
http://pc.2ch.net/test/read.cgi/tech/1020711295/
0002デフォルトの名無しさん
NGNG0003ジャジメン
NGNG0004デフォルトの名無しさん
NGNG時代の流れは(以下略
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGふつーget_home。
GetHome/getHomeキショイ
と煽ったら、盛りあがるだろうか。
0007デフォルトの名無しさん
NGNGライブラリでどのような規則を使っていても
GetHoge getHoge gethoge 利用者側で好きなスタイルを選べる
0008デフォルトの名無しさん
NGNGこのスレは case-sensitive vs. case-insensitive だろ。
get_homeとGetHomeを争わせてどうするよ。
00097
NGNGなんか曖昧で薄気味悪い
0010デフォルトの名無しさん
NGNGcase-sensitive、case-insensitiveどっち派なの?
case-sensitiveかな?やっぱり。
0011デフォルトの名無しさん
NGNG同意しておく
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG文字小文字を区別して記録するが、検索の時は区別しなかった。(ReadMeとい
ファイルは作れたが、同じディレクトリに他のREADMEやreadmeは作れなかった。)
WinのLFNもそうだね。
DOSで全部大文字にされたのも萎えたが、UnixでMakefileがあるのに気づかず
makefileを編集してて悩んだときもケ゛ソーリしたよ。
0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNGファイルシステムについてはOS9のが良さげだな。
記録はcs, アクセスはciか。
0016デフォルトの名無しさん
NGNGメアド茂名〜
0017デフォルトの名無しさん
NGNG>DOSで全部大文字にされたのも萎えたが、UnixでMakefileがあるのに気づかず
そのへんはコンパイルするなら問題起きないんじゃない?
インタプリタ言語でcase-sensitiveだとよく引っかかるかもね。
0018デフォルトの名無しさん
NGNGcase-insensitiveな言語(BASICとか)からも使用される可能性があるから。
言語はcase-sensitiveであるべき、
使用するフレームワークがcase-sensitiveな可能性があるから。
0020デフォルトの名無しさん
NGNGIE ⇒ case-insensitive
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNG良くわからんがCORBAとかDCOMとかの話?
0023デフォルトの名無しさん
NGNG×NETSCAPE
○Ie
○iE
○ie
ってこと?
0024デフォルトの名無しさん
NGNG書きこみはcase-sensitive だけど
読みこみ(検索)はcase-insensitiveが優れている、
でよろしいでしょうか。
自分で書いてて意味わからんが。
0025デフォルトの名無しさん
NGNGよく分からん
0026デフォルトの名無しさん
NGNG> ci派の主張:
> ライブラリでどのような規則を使っていても
> GetHoge getHoge gethoge 利用者側で好きなスタイルを選べる
ちがうっつーに。
「GetHoge getHoge gethogeを区別したいんかい。
ということは、同時に使いたいんかいと小一時間(略」
0027デフォルトの名無しさん
NGNG使いたい
フィールドのlineとプロパティのLine
0028デフォルトの名無しさん
NGNGごめん、JavaScript の事
# 今のネスケがどうかは知らんが
0029デフォルトの名無しさん
NGNGえ( ゜Д゜;)IEもcase区別しなかったっけ
0030デフォルトの名無しさん
NGNG>インタプリタ言語でcase-sensitiveだとよく引っかかるかもね
これスペルミスのレベルと同義な気も。
しかし徹夜デバッグとかでの混乱は減るかもしれん(w
0031デフォルトの名無しさん
NGNGじゃあ
「GetHoge getHoge gethogeは同時に定義できない。
ただしGetHogeと定義されたものをgethogeでアクセスすることもできない。」
でどうよ。
「二重定義チェックはci、アクセスはcs」
0032デフォルトの名無しさん
NGNGいや、それはダメすぎる
>>27をみれ。
0033デフォルトの名無しさん
NGNGgethogeを定義しようとすると「二重定義です」と怒るくせに
gethogeを参照しようとすると「そんな名前はありません」と怒るのか?
イジワルな処理系だな(w
0034デフォルトの名無しさん
NGNG(というか良くないスタイルだと思う。)
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNGあれ? ALERT() と alert() 区別したぞ?
ごめん、IE3 の頃の偏った知識かも…
0037ジャジメン
NGNG0038デフォルトの名無しさん
NGNGC#では推奨されているのれす・・・
でも結局好みかと。
m_lineやline_でいい人はcase-insensitiveでいいだろうし、
lineがいい人はcase-sensitiveがいい。
0040デフォルトの名無しさん
NGNG自慢したかっただけらしい。Ken Tompsonがどっかで自慢してた。
つまりCは「大文字しか使えないシステムでは使えない(非常に使い
にくい)仕様」にしたかっただけだろう。
少なくともファイルシステムに関していえば、迷惑な決定だったと
思う。
0041デフォルトの名無しさん
NGNGTRUE/FALSEとtrue/false
WSASelectやSQLConnectとかは勘弁して欲しいな。
wsa_select/sql_connectがいい。
0042デフォルトの名無しさん
NGNGWin上で作業してUNIXにアップロードしたりするとさぁ大変
0043デフォルトの名無しさん
NGNGそんなことを言われましてもWinsockAPIで規定されちゃってる物は勝手にリネームできないっす
0044デフォルトの名無しさん
NGNGprintfの書き方で大論争が起きてたりして
0045デフォルトの名無しさん
NGNGPrintf
printF
PrintF
4通りしか無いじゃねーか
0046デフォルトの名無しさん
NGNGファイルシステムについてはWinのLFN風で問題ないよね。
0047デフォルトの名無しさん
NGNG当時の言語はAlgol、Pascal、Fortran、Lisp等、ほとんど全部
csで平和だったんだから(COBOLはしらん)。
C(C++, Java, C#, Perl, ...)あたりとリンクする必要がなけりゃ
csでも別に困らないね。
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG4通りもあれば十分じゃねぇか
てかCはprintfとかgetsとか、最後に1文字だけくっつけるの多いな。
GetS( str );
ならいいが
Gets( str );
とかされたらおまえそのS意味わかってるんかと小一時間(略
0051デフォルトの名無しさん
NGNGいや、「どうあるべきだったか」という話をすれば良いだろう。
0052デフォルトの名無しさん
NGNGだいたい初期のCは小文字しか使ってないくせに
なんでciにしたんだろ。やはり自慢したかった
だけなのか? K&Rとかにもcapitalizeした名前
なんて出てこねーじゃねーか。
0053デフォルトの名無しさん
NGNGたしかに。
なんでわざわざciにしといてstrcmp, strcpyなんだろ。
0054ジャジメン
NGNG「キャピタライズ」と言う。
それはさておき、case-sensitiveとcase-insensitiveの問題と、
getHoge/GetHoge/gethoge/get_hogeを同列の問題として考えるのは
どうかと問いたい。
0055デフォルトの名無しさん
NGNGアクセントつけて
strIcmpとかダメだったのかな・・・
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNGプリプロセッサマクロは大文字、
その他下流工程は小文字
に分けちゃってもよかったかもな。
0059デフォルトの名無しさん
NGNGえー、でもK&Rの初版にはputcharやgetcharはマクロと堂々と
書いてあったと思うんだが。
0060_
NGNG検索する時は一回目cs→見つからなかったらscっていうのはどうだろう?
class A {
void getHome();
}
void main() {
getHome(); # == A.getHome()
GetHome(); # == A.getHome()
}
いい感じ。しかし
class A {
void getHome();
void GetHome();
}
void main() {
getHome() # == A.getHome()
GetHome() # == A.GetHome()
gethome() # == ???
}
うーん。駄目か。
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG単語をフルに2つ書くほど長い名前は贅沢すぎてつけられなかったから、
という説を唱えてみる。
0063デフォルトの名無しさん
NGNG分岐源スレの住人の立場としてはそれは微妙に困る
0064デフォルトの名無しさん
NGNGそういえば、16だか32文字制限だったよな昔は
0065デフォルトの名無しさん
NGNGcase-sensitive が意味の分からない厨の進入を防いだか
0066デフォルトの名無しさん
NGNG意味無かったんじゃないかという疑問がふつふつと。
0067デフォルトの名無しさん
NGNG昔は「短いことは良いことだ」的に分けわからん略語つけてたような。
今でも「区分」は kbn だが (藁
0068デフォルトの名無しさん
NGNGCがもたらしたcsの呪縛をふりはらって1からやり直せるとした
ら、>>31の案が良いのではないかと主張してみる。
0069デフォルトの名無しさん
NGNGC90だと確か「外部名の最初の6文字は区別すること」が要求されてたような。
(6文字ってのは一部のOSのリンカの制限。)
C99だと「外部名の最初の31文字。ただしISO10646の\unnnnとか\Unnnnnnnnは、
1文字で6文字分〜10文字分と数える。」
「内部とマクロ名は63文字(\unnnnとかも1文字と数える)」
0070デフォルトの名無しさん
NGNG割と便利。
0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNGメリットは、あんまり無さそうだなぁ・・・
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG昔なんかの言語で、数値中の '_' は無視するってのを見た記憶がかすかにある。
123_456_789 とか、0x0123_4567_89AB_CDEF とか書けていいじゃんて思った。
(0x は、便宜上ね。多分違う Prefix だったと思う。)
個人的には、二重定義や未定義のエラーチェックがちゃんとしてれば cs で良い
と思う。>>31 みたいな考え方もあると思うが、やっぱり違和感あるよ。
0075デフォルトの名無しさん
NGNGそれは慣習で良いんじゃないの? Smalltalkもそうでしょ。
変数は大文字で始めなければいけないPrologとか
コンストラクタは大文字で始めなければいけないHaskellなんてのもあるけど。
個人的にはciの方が害が少なそうで良いと思う。
caseは人間が慣習を決めれば良い。
0076デフォルトの名無しさん
NGNGcase-insensitive -> 区別しない
0077デフォルトの名無しさん
NGNGうん。みんな知ってる。ときどきまちがえるけど。
0078デフォルトの名無しさん
NGNG・先頭が小文字だった場合大文字に
・アンダーラインの直後を大文字に
・小文字と大文字が並んでいたらアンダーラインを挿入
( 全部小文字で予約語が書かれていた場合、それは変換しない )
内部的にこういう変換をかけてくれたら内部でWord_Word形式となり
wordWord, word_word, WordWord などと書いてもいいことになり
命名規則でイライラすることが無くなる
0079デフォルトの名無しさん
NGNG名前を勝手にいじくるのはやっぱり良くないと思うよ
class Hoge
{
int m_hoge;
Hoge()
{
int mHoge = 10;
m_Hoge = 20; // 恐ろしいことにローカル変数mHogeに代入してしまう
}
}
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNGこれだけでどんな話題か想像できてしまうのが悲しいよ、オレは。
0083デフォルトの名無しさん
NGNGそれ、同じ変数名を宣言できない様にすれば解決するよ。
開発スレで話題になってたけど。
0084デフォルトの名無しさん
NGNG無類の普及率を誇るc/c++ファミリ・及びそれと互換のAPIを持つOSの所為で
csに対応した方が使い勝手が良いんだよな。
0085デフォルトの名無しさん
NGNG内部的にcsで保存しておいて、
ciで新しく宣言したらエラー、
cs/ciでの参照は許可する。
DLLのAPI等はcsで呼び出す。
ってのはどうよ?
008685
NGNG>DLLのAPI等はcsで呼び出す。
ciで呼び出そうとしたときは、自動で内部のcs形式に直して呼び出す。
Windowsのファイル名形式っぽいけど、
これがいまのところ一番良さそうだと思う。
0087デフォルトの名無しさん
NGNGクラスメンバと、ローカル変数で同じ名前が使えないってのは厳しいな・・・
Pointクラスのコンストラクタとか、仮引数の名前考えなきゃならんな・・・
0088デフォルトの名無しさん
NGNGx_とy_。
(と、ここで_の話題につながる。)
0089デフォルトの名無しさん
NGNG前置_とかも使える(開発スレより)なら問題なさそう
_x _yとかね。
0090デフォルトの名無しさん
NGNGMetaware の High C ていうコンパイラがそうでした。
あと現在のメジャーどころでは Perl もー。
0091デフォルトの名無しさん
NGNGファイナルアンサー?
0092デフォルトの名無しさん
NGNGそういう言い方されるとムカツクので却下。
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNG勝手に変更されたり、見た目が違うのに同じと判断されるのは気持ち悪い。
Hoge と書くつもりで hoge とか HOGE と間違えて書いて、システム側に
「そんなもん宣言されてねーよ」と、言われたら、「ハイすみません」と素直に謝ります。
大文字と小文字をきちんと区別できないプログラマを、
これ以上増やして欲しくない、って気持ちもある。
一度、キッチキチに区別されて、コンパイラにいろいろ文句言われて、
「大文字と小文字は区別されることがあるのだ」という経験をつまないと、
ci だの cs だのという議論にさえ入ることさえ出来ないんじゃないかな。
ま、世の中に ci なものが存在するのは我慢するが、私は出来る限り
その波から遠ざかっていたいです。
ci にしたい特別な時かどうかは、私が自分で判断するのだ。
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNGLine -> どっかで文字列として使用されている
↓
line -> 新しく数値として使用した
↓
問題なくコンパイル通る
↓
(゚д゚)マズ-
0097デフォルトの名無しさん
NGNG>>96 Line -> どっかで文字列… Line -> 新しく数値… でも同じだし…
0098デフォルトの名無しさん
NGNGHTMLはciなのに。
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG0101デフォルトの名無しさん
NGNG100おめ。
Javaやってる人どうなんですか?「イ」と「ィ」。
前にJavaで遊んだとき、変数名とか日本語でもOKなので、
「int 俺 = 101;」とかってやってて、「int 俺1 = 101;」はOKだけど
「int 1俺 = 101;」は駄目だといわれた。(コンパイラに)
全角の「1」も、ちゃんと数字として認識してた。。
0102デフォルトの名無しさん
NGNGナニソレ
もしかして全部全角になおしても良い?
0103デフォルトの名無しさん
NGNGほんとかよ。それはそれで問題があると思うが。
int abc=100;は、int abc=100;と等価なのか?
0104デフォルトの名無しさん
NGNGそれは、数字として認識してるというより、
全角を認識できていないといえる。
0105デフォルトの名無しさん
NGNG0106デフォルトの名無しさん
NGNG0107名無しさん@カラアゲうまうま
NGNGUnicode的には全角英数字なんてものは本来存在しないから、問題じゃないのでは。
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNG0110名無しさん@カラアゲうまうま
NGNG0111デフォルトの名無しさん
NGNGコードは違うけど同じ扱いしないとだめだったはず。
ば(1文字)=は゛(は+濁点の2文字)みたいなもんか。
あとこのスレ的には考えるべきなのは「イ」と「ィ」じゃなく
「い」と「イ」のcaseの扱いだろう。
0112デフォルトの名無しさん
NGNG識別子のフォント・ファミリーやポイントサイズ、フォント・スタイルも判別してるので、
MS明朝で書いた bar と
MS UI ゴシックで書いた bat は
別の変数ですが、何か?
0113デフォルトの名無しさん
NGNGbarとbatはたいていの言語で別だわな…
0114デフォルトの名無しさん
NGNG気がしたのだが漏れの気の迷いだったのかな
0115デフォルトの名無しさん
NGNG別じゃないのは8ビット時代のBASICくらいかな
0116デフォルトの名無しさん
NGNG全角数字でInteger.parseInt("0")とやってもintの0になるね
0117デフォルトの名無しさん
NGNG変数名を1文字しか認識しないのは卑しいポケコンだけです。
我が偉大な8001様は8文字までだってOKです。
0118デフォルトの名無しさん
NGNG2文字しか認識しない機種もあったような
記憶違いかな
0119デフォルトの名無しさん
NGNG理解できん!a と A は同じなのか?違うだろうが、眼鏡屋呼んでこい!
といいつつPascal使い。
0120デフォルトの名無しさん
NGNG使い分けるね…。PascalでもisEnableとかgetHogeとか使ってしまうな。
■ このスレッドは過去ログ倉庫に格納されています