Java も brainf*ck も大差無い件
Java で Hello world を書くとこうなる。
\u0070\u0075\u0062\u006C\u0069\u0063\u0020\u0020\u0020 \u0063\u006C\u0061\u0073\u0073\u0020\u0020\u0020\u0020 \u0053\u0061\u006D\u0070\u006C\u0065\u0020\u0020\u0020 \u0020\u007B\u0070\u0075\u0062\u006C\u0069\u0063\u0020 \u0073\u0074\u0061\u0074\u0069\u0063\u0020\u0020\u0020 \u0076\u006F\u0069\u0064\u0020\u006D\u0061\u0069\u006E \u0028\u0053\u0074\u0072\u0069\u006E\u0067\u005B\u005D \u0061\u0072\u0067\u0073\u0029\u007B\u0020\u0020\u0020 \u0053\u0079\u0073\u0074\u0065\u006D\u0020\u0020\u0020 \u002E\u006F\u0075\u0074\u002E\u0020\u0020\u0020\u0020 \u0070\u0072\u0069\u006E\u0074\u006C\u006E\u0028\u0020 \u0022\u0048\u0065\u006C\u006C\u006F\u0020\u0022\u002B \u0022\u0077\u006F\u0072\u006C\u0064\u0021\u0022\u0020 \u0029\u003B\u007D\u0020\u007D\u0020\u0020\u0020\u0020
え?もちろん上記コードは完全に正しい Java コードです。
上記コードを Sample.java に保存して、コンパイルして、実行。
$ vim Sample.java (上記コードを保存)
$ javac Sample.java
$ java Sample
Hello world!
ほら、ちゃんと Hello world! が表示される。
ちなみに
brainf*ck の Hello world。
+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-. ------------.<++++++++.--------.+++.------.--------.>+.
おやまぁなんと読みやすいこと。
このことからわかるように、もう Java の時代は終わり。これからは brainf*ck の時代。
ネタばらし
Java はコンパイル前に \u0020 のようなユニコード表記の文字を通常の文字に変換してからコンパイルする。
冒頭のコードをユニコード表記ではなく通常文字で表記すると下記のようになり、正しくインデントすれば通常の Hello world プログラムが現れる。
冒頭のコードのユニコード表記を展開
public class Sample {public static void main (String[] args){ System .out. println( "Hello "+ "world!" );} }
インデントすると普通の Hello world に。
public class Sample { public static void main(String[] args) { System.out.println("Hello " + "world!"); } }