在Ruby 王国呆久了, 小张慢慢的也发觉了诸多不爽之处, 比如这里没有像Eclipse这样强大的IDE, 小张只能用普通的文本编辑器写程序。
最不爽的就是没有静态类型检查,这让小张很不习惯, 由于没有编译的阶段, 代码若有错误, 即便是语法错误, 也只能运行起来以后才知道。
比如说大兵写的那个FileIO.save 方法, 如果不看源码或者文档, 根本就不知道这个方法还可以接受一个代码块当参数, 也不会知道那个callback 会传出一个result 参数给调用者。
这让小张再次念叨起Java 帝国静态类型的好处, 那强大的IDE、各种智能提示、自动补全,安全重构,实在是太爽了
小张向大兵诉苦, 大兵说: “有得必有失啊, 这确实是动态语言的一个缺点, 所以我们会写很多测试用例来保证代码的正确性啊, 既来之则安之吧”
小张又待了一段时间, 越来越想念家乡, 还是回家吧。
回到张家村, 小张去看望村长,说了自己的经历,尤其是Duck Typing。
村长说: “你走之前我忘了告诉你了, 其实Java也可以通过反射的机制实现Duck Typing 啊, 比如说最早那个Java 例子, 不是要接受一个IFileIOCallBack的接口吗, 我们也可以这么写:”