Scala、Java、Cを比較しました。実行したコードと、得られた結果は次のとおりです。
Java(プリミティブデータ型):
class test {
public static void main(String args[]) {
long t1=System.nanoTime();
for (int i=0; i<1000000000; i++) {
}
long t2 = System.nanoTime();
System.out.println((t2-t1));
}
}
出力: 1.2秒である1181601584
C:
#include <stdio.h>
#include <time.h>
int main() {
clock_t t1=clock();
for (int i=0; i<1000000000; i++) {
}
clock_t t2= clock();
printf("%u",(t2-t1)/(double)CLOCKS_PER_SEC);
return 0;
}
出力: 2.2秒である2233382994
Scala:
object test {
def main(args: Array[String]) {
val nos = 1 to 1000000000
val t1 = System.nanoTime
for (i<-nos) {
}
val t2 = System.nanoTime
println(t2-t1)
}
}
出力:
12.4秒である12392282270
Java(ボックス化):
class test {
public static void main(String args[]) {
Long t1=System.nanoTime();
for (Integer i=0; i<1000000000; i++) {
}
Long t2 = System.nanoTime();
System.out.println((t2-t1));
}
}
出力:
20.8秒である20756681957
さて、私の質問は、原始的なものが箱入りのカウンターパートよりも速い場合、なぜオブジェクト指向言語を使用することを選択する必要があるのかということです。大きなプロジェクトをオブジェクト指向で作成する方がはるかに簡単であることに同意しますが、効率と速度が私たちが求めていたものである場合(サーバーやスーパーコンピューターの場合と同様に、ホームユーザーにとってはより高速なソフトウェアの方が優れていると思います) 、なぜ世界中の誰もが彼のコードをScalaで書き込もうとするのでしょうか?より深い質問は、なぜこれらの遅い言語がこれまでに登場したのかということです。