5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

case-sensitive vs. case-insensitive論争

1 :ジャジメン:02/05/26 03:40
多いに語ってくれ

分岐元スレ「プログラミング言語 開発スレ( ´D`)」
http://pc.2ch.net/test/read.cgi/tech/1020711295/

2 :デフォルトの名無しさん:02/05/26 03:40
まずcase-sensitive、case-insensitiveそれぞれのメリットを述べよ

3 :ジャジメン:02/05/26 03:43
いざスレ立てすると、誰も書きこまないという罠。

4 :デフォルトの名無しさん:02/05/26 03:47
XML、C++、C#、Java、UNIXのファイル名(←?)。
時代の流れは(以下略

5 :デフォルトの名無しさん:02/05/26 03:50
get_home 派の俺は時代遅れですか?

6 :デフォルトの名無しさん:02/05/26 03:51
>>5
ふつーget_home。
GetHome/getHomeキショイ




と煽ったら、盛りあがるだろうか。

7 :デフォルトの名無しさん:02/05/26 03:52
ci派の主張:
 ライブラリでどのような規則を使っていても
 GetHoge getHoge gethoge 利用者側で好きなスタイルを選べる


8 :デフォルトの名無しさん:02/05/26 03:52
>>6
このスレは case-sensitive vs. case-insensitive だろ。
get_homeとGetHomeを争わせてどうするよ。

9 :7:02/05/26 03:53
俺の主張
 なんか曖昧で薄気味悪い

10 :デフォルトの名無しさん:02/05/26 03:54
ちなみにget_homeの人って
case-sensitive、case-insensitiveどっち派なの?
case-sensitiveかな?やっぱり。

11 :デフォルトの名無しさん:02/05/26 03:55
>>9
同意しておく

12 :デフォルトの名無しさん:02/05/26 03:57
>>1が一瞬ジャージマンに見えたので逝ってきます。

13 :デフォルトの名無しさん:02/05/26 03:58
むかーしOS-9というOSを使ってたんだけど(MacじゃないYO!) ファイル名は大
文字小文字を区別して記録するが、検索の時は区別しなかった。(ReadMeとい
ファイルは作れたが、同じディレクトリに他のREADMEやreadmeは作れなかった。)
WinのLFNもそうだね。

DOSで全部大文字にされたのも萎えたが、UnixでMakefileがあるのに気づかず
makefileを編集してて悩んだときもケ゛ソーリしたよ。


14 :デフォルトの名無しさん:02/05/26 04:03
ドメイン名はcase-insensitiveですた

15 :デフォルトの名無しさん:02/05/26 04:03
>>13
ファイルシステムについてはOS9のが良さげだな。
記録はcs, アクセスはciか。

16 :デフォルトの名無しさん:02/05/26 04:04
>>14
メアド茂名〜

17 :デフォルトの名無しさん:02/05/26 04:04
>>13
>DOSで全部大文字にされたのも萎えたが、UnixでMakefileがあるのに気づかず

そのへんはコンパイルするなら問題起きないんじゃない?
インタプリタ言語でcase-sensitiveだとよく引っかかるかもね。

18 :デフォルトの名無しさん:02/05/26 04:07
フレームワークはcase-insensitiveであるべき、
case-insensitiveな言語(BASICとか)からも使用される可能性があるから。
言語はcase-sensitiveであるべき、
使用するフレームワークがcase-sensitiveな可能性があるから。

19 :13:02/05/26 04:07
>>17
うん。言語だとまた別だろうね。
ファイル名だと、だれが見ても同じcaseで見えるのが良いところ。


20 :デフォルトの名無しさん:02/05/26 04:08
Netscape ⇒ case-sensitive
IE ⇒ case-insensitive

21 :デフォルトの名無しさん:02/05/26 04:08
SQLの構文やフィールド名はcase-insensitiveだな。


22 :デフォルトの名無しさん:02/05/26 04:08
>>18
良くわからんがCORBAとかDCOMとかの話?

23 :デフォルトの名無しさん:02/05/26 04:10
>>20
×NETSCAPE
○Ie
○iE
○ie
ってこと?

24 :デフォルトの名無しさん:02/05/26 04:10
今のところ、
書きこみはcase-sensitive だけど
読みこみ(検索)はcase-insensitiveが優れている、
でよろしいでしょうか。

自分で書いてて意味わからんが。

25 :デフォルトの名無しさん:02/05/26 04:10
>>20
よく分からん

26 :デフォルトの名無しさん:02/05/26 04:10
>>7
> ci派の主張:
>  ライブラリでどのような規則を使っていても
>  GetHoge getHoge gethoge 利用者側で好きなスタイルを選べる
ちがうっつーに。

「GetHoge getHoge gethogeを区別したいんかい。
ということは、同時に使いたいんかいと小一時間(略」


27 :デフォルトの名無しさん:02/05/26 04:11
>>26
使いたい
フィールドのlineとプロパティのLine

28 :デフォルトの名無しさん:02/05/26 04:12
>>23
ごめん、JavaScript の事

# 今のネスケがどうかは知らんが

29 :デフォルトの名無しさん:02/05/26 04:13
>>28
え( ゜Д゜;)IEもcase区別しなかったっけ

30 :デフォルトの名無しさん:02/05/26 04:13
>>17
>インタプリタ言語でcase-sensitiveだとよく引っかかるかもね
これスペルミスのレベルと同義な気も。
しかし徹夜デバッグとかでの混乱は減るかもしれん(w

31 :デフォルトの名無しさん:02/05/26 04:13
>>26
じゃあ
「GetHoge getHoge gethogeは同時に定義できない。
ただしGetHogeと定義されたものをgethogeでアクセスすることもできない。」
でどうよ。

「二重定義チェックはci、アクセスはcs」


32 :デフォルトの名無しさん:02/05/26 04:15
>>31
いや、それはダメすぎる
>>27をみれ。

33 :デフォルトの名無しさん:02/05/26 04:15
>>31

gethogeを定義しようとすると「二重定義です」と怒るくせに
gethogeを参照しようとすると「そんな名前はありません」と怒るのか?

イジワルな処理系だな(w

34 :デフォルトの名無しさん:02/05/26 04:16
>>27はわがままだと思う
(というか良くないスタイルだと思う。)

35 :デフォルトの名無しさん:02/05/26 04:16
>>27エラーでいいじゃん、そんなの。

36 :デフォルトの名無しさん:02/05/26 04:17
>>29
あれ? ALERT() と alert() 区別したぞ?
ごめん、IE3 の頃の偏った知識かも…

37 :ジャジメン:02/05/26 04:17
やっぱスレ立てして良かった。

38 :デフォルトの名無しさん:02/05/26 04:18
>>34
C#では推奨されているのれす・・・

でも結局好みかと。
m_lineやline_でいい人はcase-insensitiveでいいだろうし、
lineがいい人はcase-sensitiveがいい。

39 :31:02/05/26 04:18
>>33
gethogeを定義しようとすると
「すでにGetHogeが定義されています」
といえば良いじゃん。

40 :デフォルトの名無しさん:02/05/26 04:21
UnixのファイルシステムやCがcsなのは、「小文字も使える」ことを
自慢したかっただけらしい。Ken Tompsonがどっかで自慢してた。

つまりCは「大文字しか使えないシステムでは使えない(非常に使い
にくい)仕様」にしたかっただけだろう。

少なくともファイルシステムに関していえば、迷惑な決定だったと
思う。

41 :デフォルトの名無しさん:02/05/26 04:22
BOOLとbool
TRUE/FALSEとtrue/false

WSASelectやSQLConnectとかは勘弁して欲しいな。
wsa_select/sql_connectがいい。

42 :デフォルトの名無しさん:02/05/26 04:22
top.htmlとTop.htmlが区別されるのは確かに不便
Win上で作業してUNIXにアップロードしたりするとさぁ大変

43 :デフォルトの名無しさん:02/05/26 04:27
>>41
そんなことを言われましてもWinsockAPIで規定されちゃってる物は勝手にリネームできないっす

44 :デフォルトの名無しさん:02/05/26 04:28
Cがcase-insensitiveだったらどうなってただろう
printfの書き方で大論争が起きてたりして

45 :デフォルトの名無しさん:02/05/26 04:29
printf
Printf
printF
PrintF
4通りしか無いじゃねーか

46 :デフォルトの名無しさん:02/05/26 04:29
ま、言語は>>31みたいな好みの人もいるが
ファイルシステムについてはWinのLFN風で問題ないよね。


47 :デフォルトの名無しさん:02/05/26 04:30
Cがciだったら世の中はけっこう違ってただろうな。
当時の言語はAlgol、Pascal、Fortran、Lisp等、ほとんど全部
csで平和だったんだから(COBOLはしらん)。

C(C++, Java, C#, Perl, ...)あたりとリンクする必要がなけりゃ
csでも別に困らないね。


48 :デフォルトの名無しさん:02/05/26 04:30
でも、ここで話をするのは言語の話なのであった

49 :デフォルトの名無しさん:02/05/26 04:32
つまりCが諸悪の根源ってことか?

50 :デフォルトの名無しさん:02/05/26 04:33
>>45
4通りもあれば十分じゃねぇか
てかCはprintfとかgetsとか、最後に1文字だけくっつけるの多いな。
GetS( str );
ならいいが
Gets( str );
とかされたらおまえそのS意味わかってるんかと小一時間(略

51 :デフォルトの名無しさん:02/05/26 04:33
>>41
いや、「どうあるべきだったか」という話をすれば良いだろう。


52 :デフォルトの名無しさん:02/05/26 04:35
>>50
だいたい初期のCは小文字しか使ってないくせに
なんでciにしたんだろ。やはり自慢したかった
だけなのか? K&Rとかにもcapitalizeした名前
なんて出てこねーじゃねーか。


53 :デフォルトの名無しさん:02/05/26 04:37
>>52
たしかに。
なんでわざわざciにしといてstrcmp, strcpyなんだろ。

54 :ジャジメン:02/05/26 04:39
そうそう、単語の最初の文字を大文字化する事を、
「キャピタライズ」と言う。

それはさておき、case-sensitiveとcase-insensitiveの問題と、
getHoge/GetHoge/gethoge/get_hogeを同列の問題として考えるのは
どうかと問いたい。

55 :デフォルトの名無しさん:02/05/26 04:40
>>53
アクセントつけて
strIcmpとかダメだったのかな・・・

56 :デフォルトの名無しさん:02/05/26 04:43
C の頃はマクロと明確に区別したかったから小文字 only にしたんじゃねーの?

57 :デフォルトの名無しさん:02/05/26 04:45
もしかしてC言語の正式名称は小文字のcだったりする・・・?

58 :デフォルトの名無しさん:02/05/26 04:46
>>56
プリプロセッサマクロは大文字、
その他下流工程は小文字
に分けちゃってもよかったかもな。

59 :デフォルトの名無しさん:02/05/26 04:47
>>56
えー、でもK&Rの初版にはputcharやgetcharはマクロと堂々と
書いてあったと思うんだが。

60 :_:02/05/26 04:50
定義する時はcs
検索する時は一回目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() # == ???
}
うーん。駄目か。

61 :デフォルトの名無しさん:02/05/26 04:51
このスレはCの関数がみんな小文字の謎に迫るスレになりました

62 :デフォルトの名無しさん:02/05/26 04:54
>>61

単語をフルに2つ書くほど長い名前は贅沢すぎてつけられなかったから、
という説を唱えてみる。

63 :デフォルトの名無しさん:02/05/26 04:55
>>61
分岐源スレの住人の立場としてはそれは微妙に困る

64 :デフォルトの名無しさん:02/05/26 04:55
>>62
そういえば、16だか32文字制限だったよな昔は

65 :デフォルトの名無しさん:02/05/26 04:56
タイトル見て糞スレかと思いきやなかなかマトモな話
case-sensitive が意味の分からない厨の進入を防いだか

66 :デフォルトの名無しさん:02/05/26 04:56
しかしcsの根源のCがcsを活用していないなら、csはやっぱり
意味無かったんじゃないかという疑問がふつふつと。

67 :デフォルトの名無しさん:02/05/26 04:58
ANSI 的に 32 文字だか 36 文字だったような (今は知らんが)。
昔は「短いことは良いことだ」的に分けわからん略語つけてたような。
今でも「区分」は kbn だが (藁

68 :デフォルトの名無しさん:02/05/26 05:01

Cがもたらしたcsの呪縛をふりはらって1からやり直せるとした
ら、>>31の案が良いのではないかと主張してみる。

69 :デフォルトの名無しさん:02/05/26 05:07
>>67
C90だと確か「外部名の最初の6文字は区別すること」が要求されてたような。
(6文字ってのは一部のOSのリンカの制限。)

C99だと「外部名の最初の31文字。ただしISO10646の\unnnnとか\Unnnnnnnnは、
1文字で6文字分〜10文字分と数える。」
「内部とマクロ名は63文字(\unnnnとかも1文字と数える)」

70 :デフォルトの名無しさん:02/05/26 05:15
'_'を無視する仕様は、zshのオプションしか知らないが、
割と便利。


71 :デフォルトの名無しさん:02/05/26 05:18
Emacs使ってると_で切った方が単語単位の移動が使えて便利なんだが。

72 :デフォルトの名無しさん:02/05/26 05:55
漏れ的には、Smalltalkの「大文字ではじまる名前はグローバル」ってのが好きなんだが、
メリットは、あんまり無さそうだなぁ・・・

73 :デフォルトの名無しさん:02/05/26 07:17
OCaml風?

74 :デフォルトの名無しさん:02/05/26 11:53
>>70
昔なんかの言語で、数値中の '_' は無視するってのを見た記憶がかすかにある。
123_456_789 とか、0x0123_4567_89AB_CDEF とか書けていいじゃんて思った。
(0x は、便宜上ね。多分違う Prefix だったと思う。)

個人的には、二重定義や未定義のエラーチェックがちゃんとしてれば cs で良い
と思う。>>31 みたいな考え方もあると思うが、やっぱり違和感あるよ。

75 :デフォルトの名無しさん:02/05/26 13:40
>>72
それは慣習で良いんじゃないの? Smalltalkもそうでしょ。
変数は大文字で始めなければいけないPrologとか
コンストラクタは大文字で始めなければいけないHaskellなんてのもあるけど。

個人的にはciの方が害が少なそうで良いと思う。
caseは人間が慣習を決めれば良い。

76 :デフォルトの名無しさん:02/05/26 15:20
case-sensitive -> 大文字小文字区別する
case-insensitive -> 区別しない

77 :デフォルトの名無しさん:02/05/26 17:17
>>76
うん。みんな知ってる。ときどきまちがえるけど。

78 :デフォルトの名無しさん:02/05/27 02:56
>>8 これはどうですか?

・先頭が小文字だった場合大文字に
・アンダーラインの直後を大文字に
・小文字と大文字が並んでいたらアンダーラインを挿入
( 全部小文字で予約語が書かれていた場合、それは変換しない )

内部的にこういう変換をかけてくれたら内部でWord_Word形式となり
wordWord, word_word, WordWord などと書いてもいいことになり
命名規則でイライラすることが無くなる

79 :デフォルトの名無しさん:02/05/27 04:25
>>78
名前を勝手にいじくるのはやっぱり良くないと思うよ

class Hoge
{
 int m_hoge;
 Hoge()
 {
  int mHoge = 10;
  m_Hoge = 20; // 恐ろしいことにローカル変数mHogeに代入してしまう
 }
}

80 :デフォルトの名無しさん:02/05/27 22:52
m_についての話題もこのスレでいいですか?

81 :デフォルトの名無しさん:02/05/27 22:54
どう考えてもすれ違い

82 :デフォルトの名無しさん:02/05/27 23:03
>m_についての話題
これだけでどんな話題か想像できてしまうのが悲しいよ、オレは。

83 :デフォルトの名無しさん:02/05/27 23:05
>>79
それ、同じ変数名を宣言できない様にすれば解決するよ。
開発スレで話題になってたけど。

84 :デフォルトの名無しさん:02/05/27 23:17
たとえどんなにciが優れていたとしても、
無類の普及率を誇るc/c++ファミリ・及びそれと互換のAPIを持つOSの所為で
csに対応した方が使い勝手が良いんだよな。

85 :デフォルトの名無しさん:02/05/27 23:39
>>84
内部的にcsで保存しておいて、
ciで新しく宣言したらエラー、
cs/ciでの参照は許可する。
DLLのAPI等はcsで呼び出す。
ってのはどうよ?

86 :85:02/05/27 23:43
ちょっとニュアンスが伝わりきれてない感じなので補足。
>DLLのAPI等はcsで呼び出す。
ciで呼び出そうとしたときは、自動で内部のcs形式に直して呼び出す。

Windowsのファイル名形式っぽいけど、
これがいまのところ一番良さそうだと思う。

87 :デフォルトの名無しさん:02/05/28 00:43
>>83
クラスメンバと、ローカル変数で同じ名前が使えないってのは厳しいな・・・
Pointクラスのコンストラクタとか、仮引数の名前考えなきゃならんな・・・

88 :デフォルトの名無しさん:02/05/28 00:59
>>87
x_とy_。
(と、ここで_の話題につながる。)

89 :デフォルトの名無しさん:02/05/28 01:03
c/c++じゃ予約されてるから出来なかったけど、
前置_とかも使える(開発スレより)なら問題なさそう
_x _yとかね。

90 :デフォルトの名無しさん:02/05/28 10:52
>>74 遅レス気味&スレ違い気味なのでsage。
Metaware の High C ていうコンパイラがそうでした。
あと現在のメジャーどころでは Perl もー。

91 :デフォルトの名無しさん:02/05/28 20:43
結局、環境さえ許せばcase insensitiveが優れていると言うことで
ファイナルアンサー?

92 :デフォルトの名無しさん:02/05/28 22:40
>>91
そういう言い方されるとムカツクので却下。

93 :デフォルトの名無しさん:02/05/29 00:29
case-insensitiveはインテリセンスとの相性が悪くないですか?

94 :デフォルトの名無しさん:02/05/29 20:59
私は、ci が嫌い。

勝手に変更されたり、見た目が違うのに同じと判断されるのは気持ち悪い。
Hoge と書くつもりで hoge とか HOGE と間違えて書いて、システム側に
「そんなもん宣言されてねーよ」と、言われたら、「ハイすみません」と素直に謝ります。

大文字と小文字をきちんと区別できないプログラマを、
これ以上増やして欲しくない、って気持ちもある。

一度、キッチキチに区別されて、コンパイラにいろいろ文句言われて、
「大文字と小文字は区別されることがあるのだ」という経験をつまないと、
ci だの cs だのという議論にさえ入ることさえ出来ないんじゃないかな。

ま、世の中に ci なものが存在するのは我慢するが、私は出来る限り
その波から遠ざかっていたいです。

ci にしたい特別な時かどうかは、私が自分で判断するのだ。

95 :デフォルトの名無しさん:02/05/29 23:11
型付けの弱いスクリプトとかだとincaseのほうがいいな。

96 :デフォルトの名無しさん:02/05/30 05:57
>>95
Line -> どっかで文字列として使用されている

line -> 新しく数値として使用した

問題なくコンパイル通る

(゚д゚)マズ-

97 :デフォルトの名無しさん:02/05/30 06:01
>>93 別にVBやDelphiの補完機能が変とは思わないし…
>>96 Line -> どっかで文字列… Line -> 新しく数値… でも同じだし…

98 :デフォルトの名無しさん:02/06/02 11:21
XMLはcsにするべきだったのかなー?
HTMLはciなのに。

99 :デフォルトの名無しさん:02/06/02 14:02
xmlはタグにASCII以外の文字も許しているからいろいろめんどくさいんでしょう

100 :デフォルトの名無しさん:02/06/02 16:32
ciの場合はイとィも区別しないのか?

101 :デフォルトの名無しさん:02/06/02 17:32
>>100
100おめ。

Javaやってる人どうなんですか?「イ」と「ィ」。

前にJavaで遊んだとき、変数名とか日本語でもOKなので、
「int 俺 = 101;」とかってやってて、「int 俺1 = 101;」はOKだけど
「int 1俺 = 101;」は駄目だといわれた。(コンパイラに)
全角の「1」も、ちゃんと数字として認識してた。。


102 :デフォルトの名無しさん:02/06/08 13:50
>>101
ナニソレ
もしかして全部全角になおしても良い?

103 :デフォルトの名無しさん:02/07/04 01:12
>>101
ほんとかよ。それはそれで問題があると思うが。
int abc=100;は、int abc=100;と等価なのか?

104 :デフォルトの名無しさん:02/07/04 01:40
>>101
それは、数字として認識してるというより、
全角を認識できていないといえる。

22 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)