微信号:infoqchina

介绍:有内容的技术社区媒体

Ruby on Rails与Java,哪一个才适合你呢?

2013-11-08 18:08 InfoQ

假如你要从头开始开发一个Web应用项目,当然了,这是个很复杂的项目,拥有大量的功能特性,并且要能做到可伸缩以及可维护。基于这些核心需求,对于一个团队来说,很难一下子就选择好最适合于这些需求的编程语言或是Web框架。基于这个假定,国外媒体cygnet-infotech进行了相应的讨论与分析。


现在有大量的技术与编程语言可供我们使用。对于这些技术来说,很多企业都选择了拥抱开源的面向对象编程语言,如Java、Python或是Ruby等等。对于这个Web开发需求来说,考虑到编码便利性以及语言结构,人们可能首先会想到的是Ruby on Rails与Java,因为其他语言可能由于结构等原因会导致开发时间变长。


现在的问题就变成了该使用Ruby on Rails还是Java来实现方才所提到的Web应用开发需求,下面我们从如下几个方面近距离来审视一下这两个技术,从而做出客观的决定。


工具、库与APIs

由于Java由来已久,现在有不少工具、APIs与库,这使得它的底层基础设施要比Ruby强大得多。当公司变得成熟并且客户需要高质量的服务与特性扩展时,这种基础设施就会变得非常重要。相对于Java来说,Ruby缺乏这些工具、库与APIs。这使得Ruby在这方面略逊于Java一筹。


学习曲线

在使用Java编码时,由于Java周边存在大量的库与技术组合,这使得开发者需要花费大量的时间来学习不同的架构,还要搞清楚具体细节。与之相反,Ruby却可以让你快速上手,因为它的开发架构非常简单,容易学习和使用。因此,从学习曲线这个角度来看,Ruby要胜于Java。


代码的可管理性

对于Java来说,管理代码与定义类是非常简单的事情,这是因为它是一门静态类型语言。在Java中,特别是在使用Eclipse的情况下,你可以轻松搜索定义好的方法与类;而对于Ruby来说,处理代码和命名类都不是一件容易的事情,因为它是一门动态类型语言。对于动态类型来说,你可能经常会出现混乱的情况,因为它缺乏静态编译器的警告信息。这样,Ruby在管理代码方面可能要花费更多的时间。


可伸缩性与稳定性

对于可伸缩性与稳定性来说,Java要胜于Ruby,因为Java的所有框架都提供了可伸缩的架构。在断电、特殊情况或是大量用户访问的情况下,Java框架要比Ruby更加安全且可靠。不少公司在其关键应用上都会选择Java而非Ruby。


招聘

在之前对SHARE用户组、IBM以及伊利诺伊大学的376名雇员的一次调查中我们发现,Java是企业招聘需求最为广泛的一门语言。Java占据了56%,而Ruby则只有5%。


根据上面的一些分析,你会发现如果你希望后端应用更加具有可伸缩性和可管理性,那么Java是更好的选择,如果希望进行快速开发,那么Ruby则是个不错的选择。下面我们再来看看社交网络巨人Twitter的一些情况供大家参考。


***********************************

本文来自InfoQ微信公众账号:infoqchina

1、回复“今日新闻”,查看今天更新的新闻;

2、回复“今日英文”,查看今天英文站的更新;

3、回复“文章 +关键词”,搜索关键词相关内容;

4、回复“QCon”,了解QCon大会相关信息;

5、回复“活动”,了解最近InfoQ组织的线下沙龙;

6、回复“架构师”,获取《架构师》下载地址;

7、回复“投稿”,了解投稿和加入编辑团队的流程。

***********************************

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 Openstack 云计算平台中的网络性能优化 远程移动测试平台对比分析 iOS 10测试版漏洞 不需要密码直接回信息 IOS教程入门:Objective-C 常量介绍 OpenStack Summit 2015 Tokyo 有感