web-dev-qa-db-ja.com

プログラミング言語の設計POVからキャメルケースよりもPascalCasingを選択する理由、またはその逆を選択する理由は何ですか?

私は両方が好きですが、メンバーにキャメルケースを使用する言語では、コードを編集するときにさらに調整が必要になる場合があります。例(Pythonの場合):

node.customData()

vs

node.setCustomData()

カスタムはケーシングを変更します。次の場合は回避できます。

node.getCustomData()

C#では、たとえばPascalCasingを使用します。

私はいくつかがケーシングを使用しないことさえ知っているので:

node.getcustomdata()

スクリプト言語は、一般的に、PascalCasingよりもcamelCasingの方がリラックスすることを好むようです。

プログラミング言語の設計POVからどちらかを選択する理由はありますか?

1
Joan Venge

パスカルケースよりもキャメルケースを好むという確かな証拠はありません。それは人々がそれについて多くの議論をするのを止めませんが。一貫している場合は、どちらの方法でも大きな違いはありません。

大文字と小文字を区別しないと、どの単語がどこから始まるかについてのヒントが提供されないという欠点があります。これにより、精神的な解析がより困難になり、不幸なあいまいさが生じる可能性があります。

最後に、これは実際にはプログラミング言語の観点からの設計上の選択ではなく、標準ライブラリの観点からの選択です。これはばかげた区別のように思えるかもしれませんが、新しい標準ライブラリを構築してインポートすることを妨げるものは何もありません。実際、Haskellではこれを頻繁に行っています。すべての一貫性を保つことができるので、新しい標準ライブラリで規則を変更することを妨げるものは何もありません。

5
Daniel Gratzer

多くの言語では、型にPascalCasingを使用するのが慣例です(私が考えることができる唯一の例外は、lispとSTLです)。 camelCasingまたはsnake_casingを使用すると、変数のタイプにちなんで簡単に名前を付けることができます(void foo(Bar bar)など)。

snake_casingもそれを可能にします。より多くの文字を変更する必要があります(アンダースコアを削除し、文字の大文字を削除します)が、そのままのプロパティ名の前にget_set_を付けることができます。これを使用する言語もあれば、それを使用する言語もあります。

C#はプロパティ名(public CustomData customData{get; set;})などにcamelCasingを使用することでメリットが得られるように思われますが、.NETフレームワークの他の主要言語であるVisualBasic.NETを考慮する必要があります。 VB.NETは大文字と小文字を区別せず、CustomDatacustomData、およびcUstOMdAtaを区別できません。 everything PascalCased C#を作成することにより、VB.NETでC#クラスを使用するときに名前の競合が発生しないようにします。

2
Idan Arye