BrUCe Tate:一石激起千层浪
Bruce Tate并不是作为一个局外者写就《超越Java》这边书的。他的顾问公司专注于Java 持久化框架和轻量级开发方法,同时他也是这些流行的Java图书的作者, Spring: A Developer's Notebook, Better, Faster, Lighter Java, 以及 Bitter Java.
1,在《超越Java》中你花费了大量的时间在Ruby上面,看起来是它像在你说那些将超越Java竞争者中出类拔萃。你觉得是什么使Ruby比 PHP,Python这类语言优越?
这些都是好语言,但是都有一些缺点。对大型应用,PHP和Perl不能连续地产生可读的代码。Lisp,Python和Smalltalk这些就缺少了伟大语言似乎应该拥有的催化剂。Ruby是一种好语言,和催化剂(Rails)提供了引人注目得新价值(以效率的角度)以及还在飞速地增长。Ruby不一定是最好的语言,但是它将是我所见过最有可能的。Ruby不大可能在委员会那里超过Java.它很有可能首先在一个更小但是却重要的环境中取得好成绩。这个环境也就是一个有web UI大的胖关系数据库。
2,是否Rails就意味着Ruby?其他语言包括Java难道就不能实现同样的思想?
如今,Rails就是超过象Netscape之类语言的催化剂,具有Java一样的功能,可通过网络实现应用的传送。但是我认为Rails很有可能仅仅是Ruby元编程框架浪潮的第一波。
3,你的书中很多都基于典型的“将一个web接口连接到数据库”场景,Ruby的成功案例看上去也仅仅是一两个开发人员的小项目。但是你也承认了Java的重量级企业框架对一些项目的价值(即大型系统上的大型应用)。什么情况下一个项目对于RoR来说过于大的呢?假如一个RoR在那方面的特性发展缓慢呢?
有Ruby和小团队你可以做很多事情。基础代码几乎都是一个人写就的,但却关乎整个公司的生计。在一些主要的公司开始进行认真的尝试之前,我们不知道你可以利用ruby或者rails到什么程度。其中一个最吸引我的事情是经济的规模,更小的规模。万一生产力的数字是真实的呢?万一确实可以得到5X的增长?那么你可以在一个部门内划分工作,将工作划分给团队中的一个。交流将很少会成为问题。治理和疏忽也很少会成为问题了。我们都知道对于一间公司增长, tipping points意味着什么。因为增加沟通和治理的级别会产生很多的障碍, 所以一间公司增长要超过1,5,10,40,甚至100倍是很困难的。但是,在这一点上, Ruby on Rails的可扩展性是非常的好。
4,你是否看到Java开发人员转向Ruby吗,还是Ruby将会给新一代的开发人员采用?
我觉得两者都有可能。有开发人员不能容忍学习servlets, Spring, XML, Hibernate, Struts 然后还要学习一些 UI 粘合的框架。在Rails中,他们将会完全给释放出来。同时也有Java开发人员已经在寻找更加优势的方法,他们发现了Ruby on Rails.接受了Rails的Java梦想家们的数目是令人惊愕的,他们有Thought Works,James Duncan Davidson,Stuart Halloway 更有 David Geary.
5,难道Java本身就不能做一些事情来维持它的杰出地位?假如过于复杂和膨胀,什么可以阻止开发人员倒退到jdk 1.4?
Java将会继续处于顶峰,并在企业应用上保持良好的表现,但是时间不会停滞不前。在某种意味上它终将会给替代。我们将需要一个更高级别的抽象。我认为我们最好的希望就是在JVM上做充足的投入,更好地支持动态语言, 拥抱新的事物,对于旧有的java代码,则最好是保留保守的态度。
6,我们应该期望Ruby在其他领域引起轰动?假如对于开发web应用它是如此不错,假如Ruby有的可以使用的合适的UI框架,会不会在桌面应用也实用呢?
现在说什么还为时过早。如今,尽管Ruby是有催化作用(Rails)的语言,但是它仅仅是一个候选。以后将会发生什么?我想谁也不知道。
James Duncan Davidson:尝试新事务
假如你使用Tomcat或者Ant(认真地说,什么Java开发人员什么使用过?)那么你就熟悉了James Duncan Davidson的工作了。在Sun,他致力把这些项目开源并且把他们捐献给Apache基金会。并且他也编写了Servlet API的最初两个版本,还有处理XML的Java API.离开Sun之后,他做起了Mac OS 的X开发。编写《Running Mac OS X Panther》和参与编写了《Running Mac OS X Tiger》,《 Mac OS X Panther Hacks》,《 Cocoa in a Nutshell》和《Learning Cocoa with Objective-C, 2nd Edition》