为什么要设计一个新的语言呢,因为我对现有的编程语言不满。当时web端和移动端兴起,我看到了多平台维护的艰辛,我想能否有一个语言能同时支持多个平台开发。
Fantom是最接近我理想的语言,而且内部源代码也很优雅。我在Fantom编译器基础不断地魔改,扩展了很多语法。并且重写了标准库。开发了C/LLVM编译后端和虚拟机。以至于不能和Fantom完全兼容,于是诞生了Fanx语言。和Fantom的不同点见这里。
Fanx和Fantom一样是一个注重实用的编程语言。它不是为了展示前沿理论的学术语言,而是为了解决我们在Java和C#实际编程中遇到的问题。
可移植性
Fanx可以编译为Java字节码、Javascript源码、C语言。还有一个解释型的虚拟机。之前的.Net编译目标已经不在维护。LLVM后端在开发中。未来可能会添加WebAssembly后端。
Fanx的编译过程:
Fanx code
|
|----> javascript code
|
v
fcode(byte code)|---> java byte code
|---> .Net CIL
|---> C code
|---> interpreter VM
|---> LLVM IR -> native
优雅的API
虽然Java语言语法本身有很多缺陷。但是Java最大的缺陷不是语言,而是API。例如:'http://java.io’包,即便有60多个类和接口,逐行读取一个文本文件你还是