‘kan-java’ is ‘砍-java’, speak frankly & literally.
这是一个java代码动态编译工具,也就是能够把String形式的java代码实时地编译为字节码的工具;
“动态编译”工具,其实自jdk1.6发布以来,应该出现过很多,不过kan-java的特点在于 —— 就像它的名字一样 —— 可以选择性地砍掉任意语言特性;
也就是说 —— 这是一个可以在动态编译java代码的同时,对java语言语法做裁剪的动态编译工具。
拥有一个裁剪版本的java,这有怎样的应用场景?
目前最直接的答案是”高性能的内部DSL”
即当我需要一个语法上非常接近普通过程式编程语言的DSL,但却又不想或觉得没必要自己从头实现一个(外部DSL)的时候,就可以考虑以某种现成的过程式通用编程语言为蓝本,通过裁剪其语法达到目的; 而当这种“现成的过程式通用编程语言”被选择为java时,kan-java出场的时刻就到了。