【发布时间】:2011-03-04 12:59:49
【问题描述】:
可能重复:
Is there any advantage of being a case-sensitive programming language?
我第一次使用 Basic 系列(MSX Basix、Q-basic、VB)进行编程。 这些都不区分大小写。现在,这可能是因为这些初体验,但我从未领会语言区分大小写的好处。相反,我认为这是不必要的开销和错误的来源,当我使用例如它时它仍然让我烦恼。 Java 或 C。
现在,我刚刚阅读了 Clojure(一种 Lisp 方言)并注意到 - 令我惊讶的是 - 与 Lisp 的区别之一是 case-sensitivity。
那么:使用区分大小写的语言(对程序员)实际上有什么好处?
我能想到的只有:
- 符号数量翻倍
- 使用像 CamelCase 等技术的复杂变量的视觉反馈和更容易阅读,例如
HopCount
但是,第一个参数不成立,因为它是错误的主要来源(在一个方法中使用 hopcount 和 HopCount 是一种不好的做法)。
第二个参数也不成立,因为一个不错的 IDE 也可以通过其他方式提供这一点。一个很好的例子是 VBA IDE,它有一个非常好的方法:语言不区分大小写,但只要你输入一个变量,它就会将其更改为定义中使用的大小写。例如,如果您定义了Dim thisIsMyVariable as string,它会将任何出现的thisismyvariable 更改为thisIsMyVariable)。这为程序员提供了一个直接的线索,即变量实际上是正确输入的(因为它改变了外观)。
编辑:添加 ... 对程序员的好处 ...
【问题讨论】:
-
从技术上讲,它不是符号数量的两倍。假设最大符号长度为 32 个字符,不区分大小写可能类似于 38 个字符 (
a-z0-9_$),具有38 ^ 32 = 3.57e+50排列。在区分大小写时再添加 26 个字符,我们有64 ^ 32 = 6.28e+57排列,这大约是1.76e+7倍的符号,而不仅仅是符号的两倍。并不重要。 -
我认为可读性是主要的。也使编译器做的工作略少。考虑
String string = new String(); -
是的,就其价值而言,我完全同意区分大小写是为了计算机而不是程序员的利益。不幸的是,这似乎是一个主观/争论的问题,没有明确的答案。因此,我认为它不适合 Stack Overflow。我真的不知道programmers.stackexchange.com 的政策结束了,但我认为在那里进行讨论会很有趣。
-
语言是区分大小写的,因为现在它们可以了。 VT50 终端只有大写字母。旧的 printronix 打印机只能打印大写字母。但任何比这更近的东西都允许同时使用这两种情况。
标签: language-design language-features case-sensitive case-insensitive