`
javafenger
  • 浏览: 249553 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

专访:Ruby能否成为第二个Java

阅读更多

一直以来Ruby on Rails在中国及至世界开始火爆起来,无论在Java的站点里、搜索引擎中,还是火热的论坛里,你都会看到Ruby和Java叠对出现,而且它们两个好像一对水火不相容的冤家被人们相互地比来比去。甚至Oreilly这位多年来一直支持Java的大师级人物,也开始出版Ruby方面的书籍,带领人们从Java这儿离开。这场讨论的范围越来越大,参与者越来越多,甚至Java之父Gosling也卷入了争论当中。不过共同的认识是Ruby在开发中的高效性超越Java和C#,这个结果让许多开发者惊讶。甚至令他们提出这样的疑问:是否真的存在比Java和C#更好的语言?但是在众多的讨论中,国人的关注度似乎少很多。由于历史关系,很多国人都不想去讨论这个问题,也不相信Rudy会在中国成为第二个Java,那么Ruby on Rails在中国的发展如何呢?印客网的技术总监庄表伟接受了IT168记者的采访,为广大读者解答了心中的疑问。

Ruby在中国得到认可

你好!庄经理,我是IT168的记者,据我所知印客网10月10日就正式上线了,而且是从原JAVA程序改成现在的RoR,现在有几个问题向您请教一下:

IT168记者:Ruby在中国还不是很火,而且连Ruby开发的程序员都很少,无论从Ruby的安全性能、开发支持、性能效率以及集群支持方面在国内参照的相关资料还很少,我想知道当初印客网为什么打算用Ruby开发?从哪几个方面考虑的?

庄经理:公司的技术开发选型工作,最忌讳的就是跟风,什么热门就去用什么技术,那就算不得是理智的企业行为了。说到选择Rails On Ruby,我们也是经过慎重考虑的。

我们是一个规模不大,访问量也不大的网站,用户使用我们所提供的服务,主要是通过由我们自行开发的一个客户端软件。Web网站只是一个辅助交流的手段。

而另一方面,这样的网站又必须以非常迅捷的速度,来响应用户的各种需求。

因此,在较高的灵活性要求,与较低的负载能力/安全性要求的前提下,选择RoR,是一个非常自然的决定。

IT168记者:在中国有没有一些软件开发公司用Ruby做为主流开发平台,我想知道你对Ruby在中国的发展有哪些了解?

庄经理:Rails中文应用开发现状综述http://rorcast.blogger2blogger.com/public/files/statusRailscn.htm这是由王大力先生独立维护的一个重要的研究文献,目前国内外中文RoR应用的现状,介绍非常的详细,推荐一看。

IT168记者:您认为Ruby在中国未来的发展前途如何?他有哪些优势?他会成为未来中小企业的主流开发平台吗?

庄经理:Ruby与Rails需要分开来看,从语言来说,Ruby可以说非常的成熟与先进。而Rails却非常的年轻。目前的情形却是由于Rails的流行带动了Ruby的流行,不失为一件好事。但是,对于Ruby的理解,不应该仅仅停留于熟悉使用Rails的层次上。只有更进一步,才能说得上是Ruby在中国扎根发展。反过来也可以这么说,只有各位程序员,不仅仅停留在对于Rails开发效率的追捧上,才能够对于Ruby在中国的发展,做出自己的贡献。

Rails On Ruby的开发效率优势非常的明显,但是开发的成本优势却尚未体现。毕竟掌握熟练RoR开发的程序员还是太少了。从这个角度来看,未来中小企业要主力采用RoR开发,还有难度,RoR要想在中小企业占领更多的份额,需要挑战的并非Java,而是PHP的传统优势。

IT168记者:现在网上很多时候都在盛传Ruby将会垗战Java的主导地位,而且也出现一些Java程序员开始转向学习Ruby你怎么看待这种现象?

庄经理:Java作为一种语言的主导地位,应该受到挑战,尤其是在Web开发领域,传统的Java编程思路,总是或有意,或无意的将Web应用开发复杂化了。在需求快速变动的Web开发领域,应该有更加灵活的语言和框架,来占领和主导。不过可能的竞争对手,不只是Ruby,还应该包括PHP和Python,.Net。

IT168记者:您们公司Ruby程序员是从Java或是.Net开发转过来的吗?他们为什么会转到学习Ruby开发?

庄经理:我们公司的程序员,原来也是Java程序员。这样的转向其实相当的自然,一方面是开发复杂程度的强烈反差,一方面是尝试学习新技术的探索精神,再加上公司安排的进度计划相对合理,就能够为程序员创造转向Rails On Ruby的良好条件。

Ruby暗流涌动

自从Ruby出现以来,在业界便掀起了一场关于Java与动态语言之间的不休争论。虽然一直没有一个确定的答案,但围绕Java与动态语言之间的争论从来没有消失过。随着Java的日趋复杂,动态语言的优势——简化和易用就越加凸显出来。Ruby一出大凡就有一石激起千层浪的景象,伴随着Ruby的出现,业界也开始变得热闹起来,许多网站都大篇幅的介绍Ruby,有关Ruby评论的文章也是频频出现, Ruby的新闻事件都成为人们关注的热点。这些都使Ruby和Java的争论更加激烈,但是关于二者谁更具有优势,谁能战胜谁的问题还是没有最终的定论。

不过最近的几条新闻让本来就充满悬念的战争更是蒙上了一层薄雾,首先是It168 网站上的一条新闻“Sun 收购JRuby 向动态语言迈进”一文,这篇文章一出让支持Ruby的人兴奋不已,因为Ruby能够成为Sun公司在JVM上支持的一个非Java语言,足已看出Sun对Ruby语言的重视程度。从某种角度上讲,Ruby能得到Sun公司的支持,还是有其独特的优势。

然而,没过几天, 一项伯利兹媒体的研究(下表)出现了非常有意思的结果,该研究调查了在AJAX开发中人们都使用哪种语言。结果表明Java语言以超过一半(50.5%)的使用率位居第一位, 令人感到意外的是,Ruby占有最低的使用率仅10.4%,甚至比C和C++的使用率还要低。原文见:“ Ruby前途渺茫” ,对此有些人也开始对Ruby多多少少的产生了怀疑,一方面是对Ruby语言特点的高度评价与肯定,另一方面,Ruby的使用率又是如此之低,这两方面形成了鲜明的对比。的确,一项技术再怎么说它好,没有人用,没有得到市场的验证又怎么能说是真好呢!

然而笔者认为,对Ruby和Java谁更具有优势的讨论意义不大,首先从Java来讲,Java有其自己的优势,并且Java将会继续处于顶峰,并在企业应用上保持良好的表现,这一点,毋庸置疑,并且已经得到了市场的证明。另外,Ruby的文本处理能力极强,与Perl不分伯仲。同时,Ruby的语法简单,还有异常处理以及迭代器等构造,使编程变得简单明了。这也正是我们所期待的下一代编程语言,即语言简单。如果单从某一种语言的角度来看,我们似乎并不能看出什么,但是如果站在更高的位置,从不同的角度全面的看待问题,我们不难发现,二者将会求同存异,各自发挥自己的特长,从而使我们能构建出更加强大的应用程序。

Sun收购JRuby的同时,Charles Nutter,JRuby 的核心开发者之一,心开发者Thomas Enobo也都加入了Sun。这似乎能够让我们把Ruby和Java联系在一起,Sun公司如果能够在JVM上做充足的投入,更好地支持动态语言, 拥抱新的事物。依托Sun公司的强大实力和其自身独特的优点,Ruby必将会有巨大的市场,同时,Ruby也需要一个过渡期,在市场中得到验证,让更多的人去使用它。但就目前来讲,Ruby是暗流涌动,蓄势待发! 

 

黑马Ruby能否挑战Java

从上述的采访中我们不难看出Ruby正在得到中国及到全世界的认可,谁又能说他不会成为第二个Java呢!和Java的风光相比,Sun公司由于在一些决策上的失误,导致Sun公司没有像人们当初想象的那样,是微软强有力的竞争对手,反而一个不起眼的Ruby近来高频率的出现在我们的视野里,有人把它比喻成新兵中绝对的黑马。

可能我说这话会有很多的Java迷们要声讨我,但是这个争论是实实在在摆在我们面前的,而且这个争论也会继续的持续下去,会随着Java的日趋复杂,动态语言的优势——简化和易用就越加凸显出来。如果说Java是一列稳固的货运火车,那么Ruby on Rails就是一列时髦的特快列车。

Ruby on Rails创始人,David Heinemeier Hansson,认为Ruby等动态语言是Java在Web上最大的威胁者。

“Ruby on Rails展示了你所使用的动态语言比Java更加便于维护,以往所认为只有Java所具备的市场的影响力,现在轮到Rails开始流行了。”

Geir Magnusson,Apache Software Foundation成员,同时也是Intel's Middleware Products Division的工程师,曾经向听众调查多少人尝试过Ruby on Rails,结果是半数以上的人举手。不过当问到有多少人采用该产品框架时,几乎所有人都把手放下。

这个小调查表明了企业级Java开发人员还没有准备由Java转向Ruby on Rails开发。不过,Heinemeier Hansson说,“我看到许多Java开发人员都逃避Upstream,他们反而对Low End让步——对‘大部分人多数时候都需要’的另一种理解——表达了一种对‘真正需要的静态语言’的强烈渴望。”

其实Java开发工程人员也不必像如临大敌一样,认为Java已经走到了尽头,Java末日即将来临,每个语言都是在讨论中成长起来,据我在网上所调查结果,大多数网友观点任为Ruby没有Java强大,它只是局限网页方面的脚本语言而已,而且面对来自各方面的挑战,Sun公司也不是无动于衷,Java正通过改进和拓展虚拟机技术迎接挑战,在技术领域方面Java还是世界上最好的,而且有很多第三方控件的支持,这是Ruby无法相比的,在Web开发领域,Java也确实受到了Ruby的挑战,有的开发人员不能容忍学习Servlets,Spring,XML,Hibernate,Struts然后还要学习一些即将出现还待出现的粘合框架,而转向Ruby,最近在国内也出现一些中小公司开始涉足Ruby开始,我们今天采访的印客网就是很好证明,但是不会出现Ruby狂热者预言的那样,出现大批Java移民现象发生,它们相互之间只能是共存的状态,所以我坚信Java不会离我们而去。在大型工程开发中我们选择了Java作为新的体系架构,而不是Ruby,或者Python,就是因为它是一个成熟的拥有免费和商用的大量工具和API的生态系统。当使用Ruby或者Python编程的时候是有一些速度的提升,但是有了现代的像IntelliJ,Eclipse和NetBeans的Java IDE,你可以在Java里走的更快。

但是用Ruby编程是很惬意的,Ruby要想挑战Java还有一段很长的路要走,使用RoR在第三方的支持还稍显弱小,是否经得起考验,还看未来的发展趋势。

Java之父如何评价其它语言

对于现在种种传言,我们也很想听听,Sun公司是做如何反应的,最近在Sun的教育与研究国际会议最后的讨论上Java之父关于网上争论给予了解释。

记者:在世界上有许多不同的语言。有些人在说一些新语言的出现会对Java构成威胁,你认为呢?

James Gosling:不,我不这么认为。最近出现的大部分语言都是脚本型语言,例如:象PHP和Ruby,这些都是完美的系统。它们的强大是因为经过了特殊的处理化,因此所有这些人们谈论的令他们今天很兴奋的语言都仅仅是用来产生Web页面的。因此你们只是想生成一个网页,他们会做得很好。但是在应用领域别指望它们能有更大的做为,因为他们都有严重的性能问题。在所有这些动态语言中,如果你试着用它们编写一些对执行有严格要求的东西,那么它们都会可怕地失败。如果你写一个语句a=b+c,在性能差异上,Java与PHP相比可能完全一样。它们真正优良的地方在于它们都专注于一个领域,他们会使在那个领域的编程更加简单。我们一直在做的就是在工具之外获得更多的简化,我们做了大量的工作来达到简单性和功能强大性之间的一个平衡点。他们彼此之间是相互依存,相互排斥的。构建具有强大功能的系统,恰恰要有几分复杂性。正是因为这样,世界才相互联系,极大地帮助你运行的系统有了可以延续的框架。利用PHP,你能将Web表现层的内容做得很好。你不要用PHP去写一个星际导航的类库。这个它做不到。

另一个与之有关的就是Microsoft的C#。很难在一个水平上批评C#,因为他们就是拷贝了Java规范。那是我们担心他们会做出一些创新的东西的时刻,但他们没有,他们没有选择借鉴。很明显,他们只是集中于一个开发平台。

我们尝试和所有的这些语言一起工作。我们知道有许多人在谈论Java与X相比或Java与Y相比如何如何。我们在努力工作来保证Java与PHP或Java与Python相结合在一起。这样你能用PHP做Web的表现层。许多的人用PHP做Web的表现层,用Java来做分析部分的工作,因为Java在做高质量的分析工作方面真的是太棒了。

 



分享到:
评论

相关推荐

    疯狂Java讲义 java 辅导~~

    - 第一个Java程序的编写、编译与运行流程。 - 编辑源代码。 - 使用`javac`命令编译Java程序。 - 运行编译后的Java程序。 - 解释`CLASSPATH`环境变量的作用及其在类定位中的作用。 ### 知识点四:Java语言的...

    《架构师》12月份期刊

    - **JDK 7闭包功能**:Java开发工具包JDK 7计划添加闭包功能,但发布日期推迟至第二年年底。 - **Google Chrome OS细节披露**:Google披露了Chrome OS的部分技术细节。 - **HTTP新协议**:Google正在制定一种新的...

    漫画作品与时间旅行题材.doc

    漫画作品与时间旅行题材

    基于SpringBoot框架的的在线视频教育平台的设计与实现(含完整源码+完整毕设文档+PPT+数据库文件).zip

    Spring Boot特点: 1、创建一个单独的Spring应用程序; 2、嵌入式Tomcat,无需部署WAR文件; 3、简化Maven配置; 4、自动配置Spring; 5、提供生产就绪功能,如指标,健康检查和外部配置; 6、绝对没有代码生成和XML的配置要求;第一章 绪 论 1 1.1背景及意义 1 1.2国内外研究概况 2 1.3 研究的内容 2 第二章 关键技术的研究 3 2.1 相关技术 3 2.2 Java技术 3 2.3 ECLIPSE 开发环境 4 2.4 Tomcat介绍 4 2.5 Spring Boot框架 5 第三章 系统分析 5 3.1 系统设计目标 6 3.2 系统可行性分析 6 3.3 系统功能分析和描述 7 3.4系统UML用例分析 8 3.4.1管理员用例 9 3.4.2用户用例 9 3.5系统流程分析 10 3.5.1添加信息流程 11 3.5.2操作流程 12 3.5.3删除信息流程 13 第四章 系统设计 14 4.1 系统体系结构 15 4.2 数据库设计原则 16 4.3 数据表 17 第五章 系统实现 18 5.1用户功能模块 18 5.2

    PyTorch入门指南:从零开始掌握深度学习框架.pdf

    内容概要:本文作为PyTorch的入门指南,首先介绍了PyTorch相较于TensorFlow的优势——动态计算图、自动微分和丰富API。接着讲解了环境搭建、PyTorch核心组件如张量(Tensor)、autograd模块以及神经网络的定义方式(如nn.Module),并且给出了详细的神经网络训练流程,包括前向传播、计算损失值、进行反向传播以计算梯度,最终调整权重参数。此外还简要提及了一些拓展资源以便进一步探索这个深度学习工具。 适用人群:初次接触深度学习技术的新学者和技术爱好者,有一定程序基础并希望通过PyTorch深入理解机器学习算法实现的人。 使用场景及目标:该文档有助于建立使用者对于深度学习及其具体实践有更加直观的理解,在完成本教程之后,读者应当能够在个人设备上正确部署Python环境,并依据指示独立创建自己的简易深度学习项目。 其他说明:文中所提及的所有示例均可被完整重现,同时官方提供的资料链接也可以方便有兴趣的人士对感兴趣之处继续挖掘,这不仅加深了对PyTorch本身的熟悉程度,也为未来的研究或者工程项目打下了良好的理论基础和实践经验。

    古镇美食自驾游:舌尖上的历史韵味.doc

    古镇美食自驾游:舌尖上的历史韵味

    基于人工神经网络(ANN)的高斯白噪声的系统识别 附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    漫画作品与神话传说融合.doc

    漫画作品与神话传说融合

    实时电价机制下交直流混合微网优化运行方法 附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    ADC推理软件AI程序

    ADC推理软件AI程序

    漫画作品与科幻元素融合.doc

    漫画作品与科幻元素融合

    【电缆】中压电缆局部放电的传输模型研究 附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    基于人工神经网络的类噪声环境声音声学识别 附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    多约束、多车辆VRP问题 附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    基于麻雀搜索算法(SSA)优化长短期记忆神经网络参数SSA-LSTM冷、热、电负荷预测 附Python代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    java-springboot+vue景区民宿预约系统实现源码(完整前后端+mysql+说明文档+LunW+PPT).zip

    java-springboot+vue景区民宿预约系统实现源码(完整前后端+mysql+说明文档+LunW+PPT).zip

    56页-智慧园区解决方案(伟景行).pdf

    在智慧城市建设的大潮中,智慧园区作为其中的璀璨明珠,正以其独特的魅力引领着产业园区的新一轮变革。想象一下,一个集绿色、高端、智能、创新于一体的未来园区,它不仅融合了科技研发、商业居住、办公文创等多种功能,更通过深度应用信息技术,实现了从传统到智慧的华丽转身。 智慧园区通过“四化”建设——即园区运营精细化、园区体验智能化、园区服务专业化和园区设施信息化,彻底颠覆了传统园区的管理模式。在这里,基础设施的数据收集与分析让管理变得更加主动和高效,从温湿度监控到烟雾报警,从消防水箱液位监测到消防栓防盗水装置,每一处细节都彰显着智能的力量。而远程抄表、空调和变配电的智能化管控,更是在节能降耗的同时,极大地提升了园区的运维效率。更令人兴奋的是,通过智慧监控、人流统计和自动访客系统等高科技手段,园区的安全防范能力得到了质的飞跃,让每一位入驻企业和个人都能享受到“拎包入住”般的便捷与安心。 更令人瞩目的是,智慧园区还构建了集信息服务、企业服务、物业服务于一体的综合服务体系。无论是通过园区门户进行信息查询、投诉反馈,还是享受便捷的电商服务、法律咨询和融资支持,亦或是利用云ERP和云OA系统提升企业的管理水平和运营效率,智慧园区都以其全面、专业、高效的服务,为企业的发展插上了腾飞的翅膀。而这一切的背后,是大数据、云计算、人工智能等前沿技术的深度融合与应用,它们如同智慧的大脑,让园区的管理和服务变得更加聪明、更加贴心。走进智慧园区,就像踏入了一个充满无限可能的未来世界,这里不仅有科技的魅力,更有生活的温度,让人不禁对未来充满了无限的憧憬与期待。

    边境自驾游异国风情深度体验.doc

    边境自驾游异国风情深度体验

    武汉东湖高新集团智慧园区 22页PPT(21页).pptx

    在智慧城市建设的大潮中,智慧园区作为其中的璀璨明珠,正以其独特的魅力引领着产业园区的新一轮变革。想象一下,一个集绿色、高端、智能、创新于一体的未来园区,它不仅融合了科技研发、商业居住、办公文创等多种功能,更通过深度应用信息技术,实现了从传统到智慧的华丽转身。 智慧园区通过“四化”建设——即园区运营精细化、园区体验智能化、园区服务专业化和园区设施信息化,彻底颠覆了传统园区的管理模式。在这里,基础设施的数据收集与分析让管理变得更加主动和高效,从温湿度监控到烟雾报警,从消防水箱液位监测到消防栓防盗水装置,每一处细节都彰显着智能的力量。而远程抄表、空调和变配电的智能化管控,更是在节能降耗的同时,极大地提升了园区的运维效率。更令人兴奋的是,通过智慧监控、人流统计和自动访客系统等高科技手段,园区的安全防范能力得到了质的飞跃,让每一位入驻企业和个人都能享受到“拎包入住”般的便捷与安心。 更令人瞩目的是,智慧园区还构建了集信息服务、企业服务、物业服务于一体的综合服务体系。无论是通过园区门户进行信息查询、投诉反馈,还是享受便捷的电商服务、法律咨询和融资支持,亦或是利用云ERP和云OA系统提升企业的管理水平和运营效率,智慧园区都以其全面、专业、高效的服务,为企业的发展插上了腾飞的翅膀。而这一切的背后,是大数据、云计算、人工智能等前沿技术的深度融合与应用,它们如同智慧的大脑,让园区的管理和服务变得更加聪明、更加贴心。走进智慧园区,就像踏入了一个充满无限可能的未来世界,这里不仅有科技的魅力,更有生活的温度,让人不禁对未来充满了无限的憧憬与期待。

Global site tag (gtag.js) - Google Analytics