読者です 読者をやめる 読者になる 読者になる

Java も brainf*ck も大差無い件

Java

JavaHello 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!");
    }
}