因此,我最近回归Java编写代码的经历非常有趣。我的大部分Java编程经验都在网络应用程序中,那里有很多UI/声明性代码,以及持状态的类,或者在框架开发中,我需要很多拦截和反射代码,在这些领域中,我常常发现Java会阻碍我。但现在我正在编写一个编译器(确切地说,是一个类型检查器/分析器),我并不需要很多声明性代码,拦截或反射。而且有很多代码做的是“事情”,而不是表示状态或数据。在这个领域,Java确实是一个相当不同的体验。我的总体反应是,Java对于这类工作来说非常合理且不烦人。它几乎没有阻碍我。在Eclipse这样的IDE中,Java的静态类型帮我节省了大量时间。
然而,确实有一些时刻,我觉得自己很希望已经有了Ceylon。以下是我真正怀念的东西
- 类型安全null。编译器的一个特点是它需要能够接受部分垃圾和部分有意义的输入,并继续前进,尽力做好它能做的。这意味着我的代码中有很多null检查,坦白说,捕捉所有可能发生NPE的地方是非常困难的。我希望编译器能在这里帮帮我。
- 代数类型。我的代码中有很多instanceof。事实上,整个东西都是一些树Visitor以下是三个非常有助于理解Ceylon特性的概念:代数类型,类型安全的缩窄,以及内置的访问者模式支持。
- 混入继承。如果我在接口上使用具体方法,那么代表Ceylon类型的元模型类将会变得更加简洁。目前,我遇到了一些代码重复的问题。
这些是我真正怀念的三个功能。当然,Java中还有其他我不太喜欢的部分,但目前它们并没有给我带来太多困扰。