3

我想知道为什么具有许多安全特性和约束的 Java 允许开发人员以小写字母开头类名,即使这样做是一个非常愚蠢的想法。

还是我忽略了一个可能有用的案例?或者这只是一个不给程序员发号施令的情况?

4

5 回答 5

2

很多事情都是愚蠢的想法——而且大部分都不是由编译器强制执行的。

最后——类、方法和变量名的大小写是一个约定问题,在大多数语言中都是如此。

于 2009-07-24T11:41:00.120 回答
2

这是因为人们认为编程语言不应该在前几年强制约定。但是现在情况发生了一些变化,并且像 Ruby on rails 中的“约定优于配置”方法存在良好的氛围。

因此,在未来,我们可能会看到更多基于约定的编程语言/框架,它们将随着时代的发展而产生于编程模式和最佳实践。

于 2009-07-24T11:44:28.647 回答
0

可能其中的一个重要因素是,如果您在语言历史的任何时候都允许这样的事情,您不想更改它以破坏现有代码。

于 2009-07-24T12:05:42.533 回答
0

JLS 允许马虎的方式有很多种。例如,修饰符的顺序。可能最严重的冒犯是缩进,尽管语法无法合理处理缩进。

类名的一个特殊问题是,IIRC 在语法中不清楚哪些标识符是类/接口名称,哪些不是。声明点的严格性是可能的,但它会使语法的其余部分更加复杂。

可能归结为时间压力。甚至在那时,Java 也被认为是专横的。人们忙于使用各种约定(通常与库不同)编写 C 和 C++,导致各种混乱,但他们似乎并不在意。

于 2009-07-24T13:25:24.190 回答
0

Perl 有一个“use strict”指令,它强制执行一些(但不是这个特定的)最佳实践。为什么不在 javac 上添加一个 -strict 选项,对正在编译的代码强制执行此类最佳实践约定?这仍然可以允许使用不遵循标准的 .jar 或 .class 库,但对正在编译的任何新内容(.java)强制执行它......或者更好的是,默认打开它并提供 -relaxed 指令关闭执法,从而鼓励每个人更严格地遵循标准,而不是惩罚那些无论出于何种原因不能这样做的人。

于 2009-07-24T15:08:15.010 回答