Comparing Compiled Languages

/* hello.c */
int main() {
    printf("hello world\n");
    return 0;
}

that was c. and here's cpp.

/* hello.cpp */
#include <iostream>
using namespace std;
int main() {
  cout << "hello world\n";
  return 0;
}

And here's java:

/* hello.java */
public class hello {
    public static void main(String[] args) {
        System.out.println("hello world");
    }
}

And compile, run, list, and time:

[hal@ups(pts/3) ~/code/c]$ PS1OLD=$PS1;PS1="\$ "
$ gcc -o hello.c.out hello.c
$ g++ -o hello.cpp.out hello.cpp
$ gcj --main=hello -o hello.java.out hello.java
$ ./hello.c.out
hello world
$ ./hello.cpp.out
hello world
$ ./hello.java.out
hello world
$ ls *.out
-rwxrwxr-x  1 hal hal 4631 Apr 12 14:19 hello.c.out
-rwxrwxr-x  1 hal hal 6382 Apr 12 14:20 hello.cpp.out
-rwxrwxr-x  1 hal hal 9093 Apr 12 14:19 hello.java.out
$ time ./hello.c.out
hello world
 
real    0m0.014s
user    0m0.000s
sys     0m0.000s
$ time ./hello.cpp.out
hello world
 
real    0m0.034s
user    0m0.010s
sys     0m0.000s
$ time ./hello.java.out
hello world
 
real    0m0.153s
user    0m0.090s
sys     0m0.010s

$ cat > hello.sh
#!/bin/sh
echo "hello world"
$ chmod +x ./hello.sh
$ time ./hello.sh
hello world
 
real    0m0.023s
user    0m0.000s
sys     0m0.010s

$ PS1=$PS1OLD
[hal@ups(pts/3) ~/code/c]$

file modification time: 2006-09-14 18:50:27