
Java
命名约定缺乏统一性。在简单单词的分隔方面,有的人会使用下划线_,有的人采用连字符 - ,还有的人运用大小写的方式。而在其他语言中,像
Java、Kotlin、
Swift、Dart等有着小写驼峰这种命名约定。源代码的后缀名也不统一。
C++源代码常见的后缀有.cpp、.cc、.cxx、.c、.C、.
C++、.CPP、.cp等,而其他语言如
Java、
Swift、Dart、Go等各自有着不同的源码后缀。编译器前端也不统一。
C++目前使用的编译器前端有Clang、MSV
C++、GCC,其他语言如
Java有
Javac、
Swift有
Swiftc、Kotlin有Kotlinc、Scala有Scalac、Groovy有Groovyc等。不同的编译器之间互不兼容(ABI兼容方面),每个编译器甚至每个类库都存在自己特有的内容。
C++内部之间的差异,甚至比
C++和
Java之间的差异还要大,
C++至少应该细分为MSV
C++、Clang下的
C++以及GCC下的
C++。其他语言如
Java,
Google安卓上所谓的
Java只是用了个叫做
Java的API,叫
Java却又不兼容
Java,这有点说不过去。标准库命名混乱,每个字母和单词单独看都认识,组合在一起却让人不知所云,例如在
Java等其他语言中也存在这种情况。符号混乱,并且操作符可以重载。这是
C++版本的Hello World,而这是其他语言(如
Java)的Hello World。再比如,下面是完全合法且能通过编译的
C++(20)代码。对于
C++,直观的类比就像是老外编程界的谭浩强所著的C语言程序设计。