dポイントプレゼントキャンペーン実施中!

はじめまして

私達がその昔プログラムを勉強した50年近く前のとき(FORTRAN、COBOL、BASIC)は、プログラムは大文字のみで書かれていました。ところが現在ではCをはじめVB、Javaなど、大文字と小文字が普通に混在しています。ですので私なんかの感覚で言えば非常にわかりにくく感じます。

昔はメモリの問題があったので少しでも節約しようということで大文字だけだったと思うのですが、でもなぜわざわざ混在させるのか理解に苦しみます。先頭だけではなく単語の中に普通に大文字がはいったりしています。

なぜこのように大文字、小文字を混在させるのでしょう?
お暇なときにご回答いただければ幸いです。

質問者からの補足コメント

  • つまらない質問であったのに、短時間にもかかわらず、多くのご回答ありがとうございます。大文字小文字を混在させている理由がすこしわかったような気がします。ご回答いただいたみなさん、ありがとうございました。

      補足日時:2017/11/17 17:52

A 回答 (6件)

> 昔はメモリの問題があったので少しでも節約しようということで大文字だけだったと思う



それだけではなく、モニタの解像度が飛躍的に上がった、ってのが大きいでしょうね。
例えばApple IIの高解像度モードでさえ280ドット×192ドットです。こんな状態では「視認性が良い」フォントをでっち上げると大文字しかあり得ないんですよ。
日本の昔のNEC PC-6001なんかでも「カタカナが主流だった」ってのと理由は似ています。少ないドット数で「視認性が良い」文字をでっち上げるとしたらカタカナの方が有利だった、ってのと似ていますね。
今や1920ドット × 1080ドット辺りが出てきて、かつての40倍くらいの解像度ですし、今後もっと解像度が増えるでしょう。
それだけ「(色々と表現上)便利になってる」って事なんですよ。

> プログラムは大文字のみで書かれていました

うーん、FORTRAN、COBOL、BASIC等の言語の詳細仕様は分からないんですが、現行のプログラミング言語だと大体仕様上、

・CASE SENSITIVE
・CASE INSENSITIVE

の二種類があると思います。
CASE SENSITIVEってのは「大文字・小文字を区別する」、CASE INSENSITIVEってのは「大文字・小文字を区別しない」プログラミング言語の事ですね。
つまり、例えば関数名として

GOO、Goo、gOO

と三種類定義しようとした場合、これらは全部「別の関数である」って認識してくれるのがCASE SENSITIVEな言語、3つとも「同じ」だとして名前空間上で衝突するのが「CASE INSENSITIVE」な言語です。
つまり、実は(現行の)殆どのプログラミング言語だと、内部的には「大文字だけで書かなければならない」とか「小文字だけで書かなければならない」と言うよりも、Aとaを同じとみなすか、あるいは別として扱うか、で分かれてるんです。
従って、「大文字だけ」「小文字だけ」等と言う区別は無意味ですね。
CASE SENSITIVEな言語の代表格がC言語やJavaになります。一方、CASE INSENSITIVEな言語だと代表的なのがPascal、Common Lispで恐らく現代のFortranも「CASE INSENSITIVE」なだけで、言い換えると「小文字だけでプログラムを書く」のは大丈夫、って仕様になってるんじゃないでしょうか(知らんですが・笑)。
そしてISOのFullBasicも「恐らく」ですが、CASE INSENSITIVEなプログラミング言語なだけであって、別に「大文字だけでプログラムを書かないと認識出来ない」と言ったような仕様ではないのではないか、と思います。

まとめると、「大文字だけでプログラムを書きたいんじゃぁ!」とか言うのは現行のプログラミング言語でも全然不可能ではありませんので、仕様上CASE INSENSITIVEな言語ないしは言語処理系を選んで、大文字だけでプログラム書いても誰も文句は言わないでしょう(仕事じゃなければ)。
結局この手の言語(さきほど挙げたPascalなんかでも)でも大文字小文字混在でプログラムは書けますが、コンパイラの動作としては大文字のAと小文字のaを「全く同じとしてみなす」ので、まあ、自分のやりやすいようになったらイイのでは、とは思います。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

そうなんでしょうね、全部大文字で書いても良いのでしょうが、あとからいっぱい文句をいわれそうで…
解像度の問題は気がつかなかったです。
そういえば、ディスプレイに漢字が表示されたのをみて感激したことを思い出しました。

お礼日時:2017/11/17 17:46

うんと昔になると、変数名の長さ制限も厳しかったんじゃないですか?その頃の変数名って1文字とか略語だから、小文字を使えることが嬉しくはないはず。

それに端末にテレタイプを使う神代の時代からある言語だと、文字コードが5bitだから小文字を使いたくてもなかったという事情があり、それに合わせて言語系を設計する必要がありますよね。

でも短文をそのまま使ったような長い変数名でも受け入れ可能になった昨今、全部大文字だったら暗号になっちゃうじゃないですか。なので複数の単語をつなげたような変数名では、単語の切れ目を大文字にすることで読みやすくなりますよね。また定数は全部大文字で書くなどし、大文字小文字に意味を持たせることもできます。

なのでその問いには、

「自然言語に大文字小文字があって使い分けており、プログラミング言語も命令語は自然言語から取り入れているのに、大文字しか使っちゃいけないというのはおかしいと思いませんか?」

と返しておきます。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

私達の時代の感覚でいえば、「小文字を使えることが嬉しくないはず」なことはないんですね。
また、全部大文字でも暗号にもならないのです。このあたりは時代の差でしょうか。
ご教示ありがとうございました。

お礼日時:2017/11/17 17:48

視認性を上げるためです。



また、変数定義をより多くできます。
    • good
    • 1

>先頭だけではなく単語の中に普通に大文字がはいったりしています。


1)FileNotFoundException、FileReader
2)filenotfoundexception、filereader
上記で、どちらが読み易いでしょうか?
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
別に大文字だけであってもそんなに違和感はないのです。
もしわかりにくいのであれば
FILE_NOT_FOUND_EXCEPTION のように書いていました。

私の感覚が古いのでしょうね。

お礼日時:2017/11/17 17:51

中学の時にNHK教育のFORTRAN講座でソフトウェア開発言語というものを始めて学び、大学ではCOBOL、FORTRAN、BASICを使って課題(数値解析とか習熟とかABC分析とかいったことをし)を解き、就職後はシステム開発のお仕事で汎用機のアセンブラー、C言語。

UNIX系になってC言語の他にPrologやLISP系の言語、C++。パソコンが主流になってVB、Excelをフロントエンドに置くためVBA。C#もちょっと。。。 90年代にインターネットが民用に開放されるとHTML、Perl、Ruby、PHP、Javascript、最後の方ではJavaもかなり使いました。

小文字を使うようになったのはC言語あたりからでしょうか。個人的にC言語を使い始めたのは1980年代の中ごろ、汎用機(IBM互換機)からですが、C言語の登場は1970年代前半ですね。ただ、ASCIIコードの成立は1960年代前半だったように思いますので、そのころから対応した言語はあったのかもしれません。
あ! 確かB言語が小文字ですね。ということはDECのPDP-7でのUNIX開発あたりからですか。つまり1970年代初頭か1960年代の終わりくらいなのかな?

小文字が使える事で自然言語に近い感覚で読め、また、途中に大文字が入る場合はその前を前置詞的に読むことが出来きたり、「○○の××」といった説明的な意味あいを持った命名が出来てわかりやすく、個人的にはとてもよいと感じています。

参考まで。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
アセンブラーまでやってられたのですね、
たしかにC言語あたりから小文字が当り前になってきたようです。

お礼日時:2017/11/17 17:41

エディターにもよりますが例えばエクセルのVBAの場合ですと「Dim Adcb As Long」のように定義した場合、変数を間違えて「abcd = 1 + 2」ように使ってしまった場合、頭の「a」が小文字のままなのでミススペルしたことがすぐに判ったりします。

    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
そうなんですか…、よくわかりません。私の感覚が古いんでしょうね。

お礼日時:2017/11/17 17:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!