轻量级开发的成功秘诀,第 7 部分: Java 替代方案
2009-11-11 00:00:00 来源:WEB开发网可以使用相同的技术来插入新方法或改变旧方法的行为。AOP 和依赖注入在像 Ruby 这样的动态语言中未受到关注,主要因为它们是不必要的。
其他因素
除了反射和透明性之外,Java 语言还有一些其他的限制因素。单独来看,这些局限性没有一个是重要的。但合到一起,就不是这样了:
静态类型
如果您希望自动化的单元测试捕获许多差错,就必须声明每一个变量和每一个参数,这要求更多的时间,但得到的好处比您想像的要少得多。
不完全的面向对象
编写反射代码的时候,必须处理所有的异常,比如原语和数组。
较长的反馈周期
许多其他的 Web 框架允许改动代码并保存,然后在您的浏览器中单击 重新装入 来立即查看改变。
字面结构化数据
Java 语言不能很好地表示结构化的数据,因此到处都可以看到 XML —— 甚至是在没有附加值的地方。
简而言之,Java 语言不是一种生产效率非常高的程序语言。创建者做了一些聪明的妥协来从 C++ 夺取控制权,但我们开始为那些妥协付出代价了。在 Beyond Java 一书中,我详细讨论了这些问题。我仍然为大多数的项目使用 Java 语言。很容易找到适合我需要的框架。我能很快地找到程序员和工具。它是一种经过验证的编程语言。我的许多客户有太多的遗留代码,修改起来工作量太大。
但是,我已经开始为某些已付项目使用不同的语言。对于大型关系数据库上的基于 Web 的用户界面,Ruby on Rails 是有效的。对于要求有限的可伸缩性和可用性但要求复杂导航的应用程序,Seaside 是有效的。许多语言处理丰富的客户端开发要比 Java 语言好。
我还发现,如果赢利较大,处于创业阶段的公司愿意承担更多的风险。如果生产效率是首要关心的问题,团队很小,并且您正在解决一个很适合于动态语言的问题,那么使用动态语言是很有意义的。通过迁移到一种更加动态的语言和一个更加适合项目的框架,我为一个客户节省了 60%的项目预算。通过迁移到一种技能要求没有 Java 语言那么严格的语言,我让另一个客户减少了 30% 多的职员。
底线?有时,当考虑轻量级开发时,值得脱离 Java 语言看一看。在接下来的几篇文章中,我将离开 Java 语言来探索一种新的语言和几个轻量级框架。
更多精彩
赞助商链接