`
senton
  • 浏览: 200548 次
  • 性别: Icon_minigender_1
  • 来自: 紫禁城
社区版块
存档分类
最新评论

Java已经过时了吗?(转贴)

    博客分类:
  • J2SE
阅读更多

在四年以前,当我开始鼓吹Hibernate,抨击EJB的时候,遭到的是群起而攻之的场面,但是不到一年之后,Hibernate已然得到了普及和大多数Java开发人员的认可。

在三年以前,当我开始赞誉spring的时候,spring还面临着EJB3的阴影,以及EJB2对其不登大雅之堂的指责,然而不到一年的时间,spring已经成为绝大多数Java开发人员的首选。

在两年以前,我极力希望宣传webwork,唱衰JSF,时至今日,webwork以Struts2.0的身份容登大雅之堂,而JSF还在靠厂商死挺着。

而当一年之前我开始采用RoR开发JavaEye的时候,RoR的置疑之声还甚嚣尘上,但当我在今年初预言07年下半年RoR在国内会被广泛接受的时候,很多人已经笑不出来了。

今年我预言些什么呢?我觉得会是AJAX技术走出PC的时代,证据就是iphone,与此相关联的事情就是REST架构的流行。

但是这篇文章里面我想谈的却不是我预言的水平准不准,而是想谈Java真的会因为RoR的流行而过时吗?目前在Web开发主要应用在两个大的领域,互联网和企业应用,我们分别来看一下:

一、互联网领域

互联网领域第一大动态语言是PHP,第二、第三分别是ASP和Java。在中小型互联网应用当中,PHP的王者地位不容动摇,但在大型应用当中, Java是目前主流的选择,特别是电子商务类型的应用,例如阿里巴巴就从早期的PHP转变到Java,从前的eachnet也是如此。造成这样局面不是没有原因的:

1、中小型互联网网站强调开发速度,维护成本,以及入门快速和部署成本,PHP是最合适的选择;用Java则显得过于笨拙,开发慢,维护成本高,入门周期长,部署麻烦;RoR开发速度最快,维护成本最低,但是RoR入门速度没有PHP快,部署成本比PHP高。因此中小型互联网网站主流还是PHP,但 RoR能够占据一定的份额。

2、大中型互联网站强调稳定性,性能,大规模代码的组织能力,而开发效率则退居次要地位,有些应用如电子商务对事务有很高的要求,显然Java是最合适的选择;PHP的代码组织能力最差,RoR次之。

在互联网领域,Java从来就不是主流,并且Java的适用领域和RoR不太重合。我们甚至可以这样说,RoR现在在互联网领域取代的是那些原本不适合用Java,但是被错误的选择了Java的项目。

二、企业应用领域

目前企业应用领域第一大语言是Java,dotnet其次。企业应用采用的技术和行业有很大关系:例如金融行业,电子政务行业一般只采用Java。dotnet发展了6年尚且没有进入企业高端的应用,RoR在短期之内也很难取代Java的地位。

在企业应用领域,Java是主流,并且Java的适用领域和RoR也不太重合。我们也可以这样说,RoR将来在企业应用领域要取代的是那些原本不适合用Java,但是被错误的选择了Java的项目。

至此,我想Java程序员大可以松一口气,RoR目前有哪些不适合的场合呢:

1、对事务要求非常高的场合

RoR还是很简单的单数据库事务控制,缺乏精细的事务控制功能,当然也不支持跨数据库的分布式事务。因此对于事务要求严格的大型电子商务网站,部署复杂的分布式数据库场景显得力不从心。当然也许有些plugin可以提供这些功能,但是从目前的功能完备性和成熟度来看,还不够。

2、处理大量遗留数据库的场合

ActiveRecord的威力很大程度上来自约定,大量命名糟糕的遗留数据库会对RoR造成比较大的障碍。

3、庞大的项目团队,对开发速度要求低的场合

例如日本外包项目,团队庞大,个体开发速度要求低。但是对于代码规范要求严格的项目。

虽然RoR不会取代Java,但不意味着作为程序员的你可以固步自封。即使在工作当中用不上RoR,多看一点新的技术,对于开阔个人视野也有很大的好处。

备注:RoR是Ruby on Rails的缩写。Ruby on Rails是一个用于编写网络应用程序的框架,它基于计算机软件语言Ruby,给程序开发人员提供强大的框架支持。Ruby on Rails包括两部分内容:Ruby语言和Rails框架。

作者简介:

范凯:JavaEye技术网站总经理,资深J2EE专家。

 
分享到:
评论

相关推荐

    01 开篇在Spring Boot,Spring Cloud大行其道的今天Spring 过时了吗?慕课专栏(1)1

    背景面试官:面试官: 能介绍一下 Spring Bean 的生命周期吗?面试者面试者: 你们还在使用 Spring 吗?面试官:面试官: 虽然我们也使用 Spr

    JAVA使用或覆盖了已过时的API对照表.pdf

    JAVA使用或覆盖了已过时的API对照表.pdf

    06丨理论三:面向对象相比面向过程有哪些优势?面向过程真的过时了吗?1

    所以,我打算详细对比一下面向过程和面向对象这两种编程范式,带你一块搞清楚下面这几个问题(前三个问题我今天讲解,后三个问题我放到下一节课中讲解):话不多说,带着这

    纸媒App盈利模式之辩:内容为王是否过时?.docx

    纸媒App盈利模式之辩:内容为王是否过时?.docx

    JBoss服务器

    JBoss压缩文件包括:jboss 4 2 2 GA zip JBoss5 0安装和JBoss5 0启动时遇到的问题以及解决办法 txt JBoss配置mysql数据库连接池和配置过程中的详细代码 txt和配置JBoss数据源 txt 欢迎下载

    startActivityForResult过时.md

    startActivityForResult过时.md

    java很老的学习资料,有些过时

    很老旧的学习资料有些过时了,看看吧 没多大帮助。。。。。。。。。。

    java中文版API1.6

    最新最全最好的java中文版API 1.6. 此 API 文档的组织方式 此 API(应用程序编程接口)文档包含对应于导航栏中的项目的页面,如下所述。 概述 概述 页面是此 API 文档的首页,提供了所有软件包的列表及其摘要。此...

    记事本 java源码 MyNotepad v1.0

    记事本 java源码 、记事本 java源码 记事本 java源码 记事本 java源码 记事本 java源码 记事本 java源码 能用的哦

    【java面试题】java面试宝典基础知识版

    【java面试题】java面试宝典基础知识版。是java语言最基础的知识,是java编程永不过时的的思想理论。适合初中级java工程师使用。

    疯狂JAVA讲义

    第1章 Java概述 1 1.1 Java语言的发展简史 2 1.2 Java的竞争对手及各自优势 4 1.2.1 C#简介和优势 4 1.2.2 Ruby简介和优势 4 1.2.3 Python的简介和优势 5 1.3 Java程序运行机制 5 1.3.1 高级语言的运行机制 6...

    细说51单片机种种特点,难道51单片机真的过时了吗?

    看到这个问题,相信大家很多人都在问,也有很多人想知道,还有很多人有自己的看法,今天我在这里发表一下自己的观点。现在在大学里,51单片机仍是电子类专业必修的课程,然而这几年随着ARM的火爆,很多51的学习者有...

    MicrosoftSignalrJavaSDK的Gradle兼容编译版本[过时]_Java_下载.zip

    MicrosoftSignalrJavaSDK的Gradle兼容编译版本[过时]_Java_下载.zip

    java卸载工具

    此应用程序将检查您计算机上的 Java 版本。 计算机上过时版本的 Java 会带来严重的安全风险。如果发现了过期版本,则此工具可帮助您删除它们。

    InstallCert.java

    使用DOS命令进入InstallCert.java 存放目录 运行 javac InstallCert.java 将InstallCert.java 编译成 .class文件 在运行 java InstallCert smtp.xyz.com:465【其中xyz是要使用的mail,例如:smtp.126.com】【465是...

    java面试大全-黑马

    去掉了EJB 2.x、JSF等无用内容或过时内容,补充了数据结构和算法、大型网站技术架构、设计模式、UML、Spring MVC等内容并对很多知识点进行了深入的剖析,例如hashCode方法的设计、垃圾收集、并发编程、数据库事务等...

    java API 1.7beta

    对java方法按包划分,并且列出已经过时的方法等,并且层次结构非常分明

    骆昊JAVA面试题全集

    2013年年底的时候,我看到了网上流传的一个叫做《Java面试题大全》的东西,认真的阅读了以后发现里面的很多题目是重复且没有价值的题目,还有不少的参考答案也是错误的,原创作者精心整理,在修订的过程中,参照了...

    Java 面试最新150题

    在修订的过程中,参照了当时JDK最新版本(Java 7)给出了题目的答案和相关代码,去掉了EJB 2.x、JSF等无用内容或过时内容,补充了数据结构和算法、大型网站技术架构、设计模式、UML、Spring MVC等内容并对很多知识点...

Global site tag (gtag.js) - Google Analytics