the Zimbu programming language実は、存在は出た当初から知ってはいたんだけど
Suppose you want to write a new program, something like a text editor. What language would you write it in?
- It has to be as fast as possible, so interpreted languages are out.
- You don't want to micro manage memory, so C is out.
- You don't want to require programmers to have a degree, so C++ is out.
- You want fast startup and not depend on a big runtime, so Java is out.
- It has to run on most systems, anything with a C compiler, so D is out.
- You want to have fun making something new.
No existing language really meets these demands, so let's create a new one that does!
Zimbu is an experimental programming language. It is a very practical, no-nonsense kind of language. It mixes the good things of many existing languages and avoids their deficiencies. And then throws in a few brand new ideas.
http://www.zimbu.org/
制御命令が全部大文字とか、流行らないよねとか
ソースコード中にタブがあるとビルド出来ないとか、どんだけ?とか
ブロックが「{」無しに始まるのに終わりに「}」が要るの気持ち悪いよねとか、おもいっきりkazuh●さんあたりにDISられそうだったので、触って無かった。
これではいかんな!と思ってFizzBuzz書いてみた。
FUNC int MAIN()
FOR i IN 1 TO 100
IF i % 15 == 0
IO.write("FizzBuzz\n")
ELSEIF i % 3 == 0
IO.write("Fizz\n")
ELSEIF i % 5 == 0
IO.write("Buzz\n")
ELSE
IO.write(i)
IO.write("\n")
}
}
RETURN 0
}
「}」だけとか、きもちわる!zimbuではzuファイルを一度Cのコードに変換し、コンパイラでビルドします。なので実行速度は結構速い(かもしれない)。ちなみにC言語に出力されたコードは、804行もあってブログに載せられないので、Gistに貼り付けておいた。
たかだか15行のソースなのに804行も出力するなんて凄い!
ただ思いとは裏腹に、実は結構色んな事が出来る予定の様で、GUIの設計なんかもやってるみたいです。ちなみにGTK/Qtのバインディングは構想中ですが、ブラウザを使ったGUIコードの生成はある程度動く様です。
なお、このサンプルで使われている部品の一つとしてGoogle Protocol Bufferを使っており、javaのソースを吐いてエンティティオブジェクトとして扱っている様です。
なんか凄いような、凄くないような...
明日にはきっと言語仕様忘れてると思います。