在我看来,在某些方面,Java 是 C 很久以前的地方。两者在当时都是相当简约的语言,具有相对干净、简单的核心构建。(我指的是这里的核心语言,而不是库。)两者都非常流行。两者都是/曾经是通用语,具有大量遗留代码。两者都缺乏其他语言的程序员经常错过的几个现代生产力功能。两者似乎都非常惯性主导,并且适应不断变化的世界的速度很慢。
在我看来,创建一个大致是 Java 超集的 Java++ 是合理的,就像 C++ 之于 C 一样。这种语言会试图让 Java 摆脱它所经历的相对停滞,只在少数情况下破坏向后兼容性仅在绝对必要的情况下使用次要方法,添加许多普通旧 Java 所缺少的现代特性,并担心以后的标准化。可能是个好主意的功能包括:
- 一流的功能,代表。
- 关闭。
- 静态类型推断,类似于
var
C# 或auto
D 中的类型。 - 运算符重载。
- 结构体作为不同于类的值类型,如 C# 和 D。
- 特性。
- 忽略检查异常的选项。
- 在一个文件中声明多个顶级公共类的能力。
- 更强大的内置数组,允许追加之类的东西。
- 更好的泛型/真实模板。
- 类似于 C# 4.0 的动态关键字,它允许在必要时以一般静态语言进行鸭式输入。
- 由于 Java 主要是一种 VM 语言,因此可能有一些核心元编程功能,例如为某些事情动态生成代码。
你认为这种语言会有需求吗?你认为这样的事情会成功吗?
编辑:我不是在谈论运行时/字节码级别的兼容性,而是在源代码级别谈论与 Java 的兼容性。此外,是的,Java 7 可以添加其中的一些,但似乎为 Java 添加功能的“官方”过程非常保守。真正的重点是将Java分叉成一个分支的想法,重点是创新而不是稳定性/标准化。