现在学java还有没有必要?

解决方案 »

  1.   

    前途无量。
    想想现在有多少企业运用是java编写的就知道啦
      

  2.   

    好象没什么前途啊,现在java已如日过中天的太阳了,虽然现在还很亮,但已日渐势微了
      

  3.   

    有,我也是搞JAVA的,很好很强大.
      

  4.   

    相比之下,java又大又笨,python的開發速度比java快了五倍,ruby的開發速度比java快了十倍
      

  5.   

    現在北大青鳥每年都批量制造java程序員,招java的人雖多,但java程序員的數量也是蠻恐怖的,相對而言,就業找工作是很困難的,我朋友公司甚至有不要工資來就業的
      

  6.   

    你真强,你听谁说的?在哪些方面,贴出数据来,著名出处,别从网个角落弄个信息,糊弄人心。
    java没有未来,这所以这样说,是因为我想听听你心里想的未来的语言是什么?说吧。
      

  7.   


    从Java到Ruby——我的最近一次技术转型  收藏
    这里所涉及到的都是与软件开发有关的技术,感觉很有必要总结一下我从业以来所使用过的开发技术以及所经历过的几次技术转型。1996年7月-1999年10月3年时间一直使用C语言编写电信协议软件,算作我的C语言时代。其中还使用过一段时间SDL语言和基于SDL的代码自动生成工具(瑞典Telelogic公司的SDT)。
    2000年3月-2000年10月7个多月时间使用Perl语言做网站开发,算作我的Perl语言时代。后来转向了使用Java和JSP,用了两个月。
    2001年2月-2001年8月6个月时间使用JavaScript做DHTML开发,还使用ColdFusion做网站开发。
    2001年12月-2001年6月7个月时间使用C语言做企业级邮件服务器开发。
    2002年8月之后做开发一直使用Java语言至今,算作我的Java语言时代,算算已经快5年了。在我使用过的这些语言中,有3种语言对我的影响最大,那就是C、Perl和Java。当然JavaScript对我的影响也很大,不过对于整体的应用软件开发来说,JavaScript并不是一个主角。现在我正在经历一次新的技术转型,从Java语言转向Ruby语言和Rails框架。如果说以前的几次技术转型都是因为工作的变动而导致的,那么这一次技术转型则是我自己主动发起的,因为我感觉Ruby代表着应用软件开发技术(注意限定词 “应用软件”)的未来。Ruby是一种比Java更加先进的应用软件开发语言,最重要的是它能够带来极高的开发效率,而且不会影响代码的可读性和可维护性。一年多以前我对Java还抱有一些幻想,认为Java社区如果有更好的框架,开发效率一定会追上Rails。今年5月我读了 Bruce A. Tate的《超越Java》这本书,希望从专家那里了解一下Java语言和Java社区到底出了什么问题。这本书打消了我的幻想,让我理解了Java最大的问题在于静态类型对开发效率造成的严重影响。联想到我去年下半年做的那个广告发布平台,我对此深有感触。我当时所采用的框架是Spring MVC+Spring IoC+Hibernate+FreeMarker+SiteMesh,按理说在Java开发领域,这套组合的开发效率应该算是比较高的了。然而实际的开发进度远远低于我的预期,我作出第一个版本的时间差不多是预计时间的两倍。当然因为资金的缺乏,大部分时间都只有我一个人在做开发,什么都要亲自动手,困难确实很多。不过我认为主要的问题还是在于Java语言做Web开发的笨拙。因为资金的缺乏,我今后要做一些自己感兴趣的东西,注定仍然只会有很少的人参与(2、3个人),Java这样笨拙的语言可能会使我付出双倍的代价。当然,Java语言仍然在发展和变化,但是它变的越来越复杂,越来越缺乏一致性,最终很可能会发展成为像C++那么复杂的一种语言。Java越来越不适合Web应用的开发了(我说的比较谨慎是因为这个领域是我最熟悉的),是到需要寻找一种新的开发语言的时候了。Rod Johnson确实很伟大,在参与翻译了《J2EE without EJB》之后,我至今仍然对Rod Johnson对于JavaEE的伟大贡献深感敬意。但是Spring是从企业应用环境成长起来的,它对于面向Internet的Web应用来说,仍然是太重了。而Web 应用的很多重要的需求(例如对Ajax的支持、对REST的支持等等),Spring并没有解决。做企业应用,Spring仍然是很好的选择,然而做 Web应用,Spring,甚至是Java语言本身,都不是很好的选择。为何在Web应用开发技术方面,PHP最终占据了第一的份额,这是很值得思考的。我们以前做网站开发从Perl语言转向了Java语言,主要的原因有以下这些:
    1. Perl开发的应用代码量大了之后很难维护。我自己写过一个4、500行的复杂Perl程序,过了两个月后再读居然都读不懂了。
    2. Perl这个工具最初是设计用来取代bash、awk、sed等工具的,因为Larry Wall觉得这些工具还不够强大灵活。Perl最初并不是设计用来作为一种全功能的应用软件编程语言的。
    3. Perl对面向对象编程支持的并不好。
    4. 对于Web开发来说,Perl的资源(开发框架、开发库)没有Java丰富,很多功能需要自己来开发。
    5. CGI开发与支持session的Servlet/JSP开发相比太原始,开发难度太大。所以我们有非常充足的理由转向Java语言。还有一个不大好开口的理由就是,做Java开发当时似乎是成为一个专业程序员的标志,纯粹的面子问题,当然Java程序员的就业前景也要好的多。但是转向Java之初最强烈的感觉就是Java做一些与文本处理相关的工作非常麻烦,没有Perl快捷,而这些工作对于开发Web应用来说是很常见的。当时 Java核心类库甚至还不支持正则表达式,需要下载学习其他的开发包,直到JDK1.4之后Java核心类库才开始支持正则表达式。不过JSP这样与 ASP、PHP类似的服务器页面技术是比CGI要先进一代的技术,所以开发效率还是比写Perl CGI有所提高。我做了一段时间JSP 开发,发现全部代码都混在页面中问题很多,于是开始学习Java Web开发的Model1和Model2,并且接触到了当时刚刚兴起的Struts。不过因为工作转换,并没有深入使用Struts。后来我用了半年 ColdFusion之后,就不爱使用JSP了。JSP的开发效率虽然比Perl CGI高一些,但是比起ColdFusion来说还是要低很多。JSP开发后来逐渐转向基于custom tag的开发方式,并且最终出现了JSTL,在我看来是一种对ColdFusion的模仿。Java社区后来出现了n多的MVC框架、n多的IoC框架、 n多的ORM框架。《J2EE核心模式》所提倡的标准的三层架构至今仍然被当作铁律来遵循,过多的层次带来了巨大的灵活性,同时也带来了巨大的复杂性。除了JavaEE之外,我还没有看到其他的服务器端开发技术如此强调三层架构或者多层架构。一般来说,分出MVC就足够了。而JavaEE开发不仅要在 Web表现层中分出MVC,还要在M中再分出业务层和持久层。这个分层的设计,是做JavaEE开发很难实现Martin Fowler在《企业应用架构模式》中提倡的充血的domain model的一个主要原因。另外Java语言本身的静态类型所造成的笨拙和无法避免的重复代码也是一个主要的原因,如果不强调分层,并且真的实现充血的 domain model,那么一个类中包含的代码量会显得太多太复杂了。Java社区中的一些厂商目前在大力追捧JSF和EJB3,但是我并不认为JSF和EJB3或者将两者集成在一起的JBoss Seam能够拯救JavaEE。复杂性才是JavaEE最大的问题,JBoss Seam成功的关键在于它能否成功地掩盖JSF和EJB3的复杂性,使得学习成本降低到与Rails相当的级别。不过即使它能够做到,将来开发者还是要面对Java语言本身的静态类型所造成的开发效率低下。我并不认为JBoss Seam有机会在开发效率上超越Rails。另外一个值得关注的框架是Grails,它是基于动态语言Groovy的,严格来说不能算是Java社区的框架。不过由于它基于Spring、Hibernate、SiteMesh,所以也可以看作是Java框架的进一步发展。在开发效率方面Grails也不大可能超越Rails。除了开发框架本身,还需要考虑众多外围工具的支持和社区的规模,在这些方面Grails不可能达到Rails的水平。还有一个 RIFE呢,虽然我完全不了解它,不过看来它受到的关注很少。一个几乎完全被忽视的框架,成功的前景估计很渺茫。Wicket我认为是不值得考虑的,现在我们应该把目光仅仅投向那些full stack框架上,建造一个更加精巧的Web MVC框架解决不了根本的问题,对开发效率的提升是有限的。Cetia4和Restlet也是两个很有趣的框架,特别是它们能够支持REST开发,代表了 Java Web开发框架的未来。Google的Guice是一个很有可能取代Spring的轻量级IoC框架,前景似乎不错。不过Cetia4、Restlet、 Guice这些框架和Wicket一样,并不是full stack框架,对开发效率的提升是有限的。根据上述分析,我现在对Java社区内部的创新能力已经感到很失望了(很明显我后知后觉了,感到失望的大有人在),这种持续了10年之久的创新能力似乎已经逐渐枯竭。由于动态类型的脚本语言(Python、Ruby、JavaScript等等)这些年来取得了长足的进步,而且在Web开发方面出现了一些killer级的框架,现在是将目光投向其他开发语言的时候了。我的决定就是在今年下半年完全转到Ruby和Rails这个平台上面。从Java转到 Ruby有几个强有力的理由:
    1. Rails可以让单个开发者在开发效率方面接近自己能力的极限。我并不是一个完美架构的fans,热衷于不写一行代码,巨细无靡地分析各种架构优劣直到脑神经瘫痪。我热衷的是解决用户真正关心的问题,用技术改善他们的生活,与用户建立起良好的人际关系。
    2. Rails框架对Ajax有更好的支持,通过使用RJS模板可以极大减轻一般情况下做Ajax开发的复杂性,提高开发的效率。
    3. Rails框架对REST开发提供了最好的支持。REST在Web开发方面会越来越重要,全面支持REST就是未来所有语言Web开发框架发展的方向。
    4. JRuby 1.0对Rails的支持已经很好,而且支持直接使用Java开发的资源,所以现在是从Java转到Ruby的一个适当的时机。我已经读完了《Ruby for Rails中文版》,并且出了一个个人的勘误。《应用Rails进行敏捷Web开发》第2版我已经读了1/3,在一周之内可以全部读完。这两本书读完之后,基本上已经入门了。在入门阶段我只准备读这两本书,然后我会通过开发来熟悉更多的技术。因为我对Perl、JavaScript和Java语言的熟悉,所以学习Ruby和Rails并没有感觉有什么难度。事实上阅读《应用Rails进行敏捷Web开发》第2版要比我阅读《Struts实战》之类的书容易理解的多(同时也更加有趣味,我第一次没有感觉犯困),到目前为止,一切都感觉很自然。Ruby在我看来就是Perl+JavaScript+Java,毫无疑问是一门伟大的语言。很可惜晚学习了整整一年多,否则去年见到Martin Fowler的时候本应该问他更多关于Ruby的问题的。
      

  8.   

    前途无量,学java的越来越多了。
      

  9.   

    wangwanttt 写道
    一种据说比JAVA开发速度快20倍的工具出现了,它就是RUBY,大家来谈谈吧,日本人的产品
    它能根据表自动生成字段的SET,GET属性,自动生成find ,delete 等方法.并通过业务逻辑直接返回到VIEW第一,那个咚咚是rails, rubyonrails
    第二,他只号称快10倍,没有好称快20倍
    第三,SET,GET属性那是java的说法,ruby属性不用javabean概念的至于自动生成find ,delete ,ruby是不写代码的,有点像hibernate那样,
    算是运行时反射,不过又不完全像,总之是不用写代码就是了。并通过业务逻辑直接返回到VIEW,
    看不懂这句话 
      

  10.   

    Java 太庞大了   学的东西很多  
      

  11.   

    [翻译]Ruby on Rails能否成为主流?
    背景资料:什么是RubyRuby是一种功能强大的面向对象的脚本语言,它能够提供方便快捷进行编程。Ruby成功的糅合了Smalltalk的简单,Pythpn的易学和Prel的可程序化。Ruby在上个世纪九十年代,最早发端于日本,而真正流行起来是在最近几你那许多关于它的英文书籍和文档出现之后。什么是Rails?Rails是一个Ruby框架用于开发相关应用程序的开放容器,它有什么特别之处呢?还有十多种比Rails应用更广泛的其他框架,为什么你不考虑使用其他框架呢?我告诉你使用Rails框架开发网络应用程序比Java的框架要快十倍,你会怎么想?以最小的代价换取最大的应用,这又是什么概念?以上是使用Ruby语言的原因之一。关键还是使用Ruby编程比其他语言要简单的多,另外两个使用Rails的原因就是,垃圾回收和动态载入。垃圾回收,就是说用最简单的几行代码就可以组建你的应用程序,让你的代码更快实现和更少错误发生,这也将使你的代码更加容易理解、实现和应用。非常短,你能看到Rails是如何删除你的代码冗余的。动态载入并不是说使用Xml配置文件,Rails根本就没有这些东西,取代配置文件的就是,一个Rails应用程序使用及格简单的程序允许把所有东西打包到平台中去。你的程序代码,你需要的数据库等等统统都已经包含到Rails知道该包含的内容中去了。 
      

  12.   


    你有用这三种语言做过开发吗?我现在在用python做开发...python由于没有java中的SSH这样的成熟框架, 导致开发效率其实并不高的...如果效率高, 那至少不是web方面, 不是数据库方面(数据库方面有框架, 没有了解, 但就目前使用的web.py比hibernate差太多了.).....
      

  13.   

    一门语言,不管是C,C++,还是.NET,不管你现在多红,它终究是会过时的。
    所以你这个问题明显是没有一点营养。
    如果你想要在高速发展的IT业找一门永远的语言(除了数据结构之类的),那还是不要浪费时间好了,早点转行。这个只是一个青春的行业。
      

  14.   

    建议楼主如果真有这样的疑问还是不要学java了  
      我怕你学了每天都会问自己这样的问题:我学java到底好不好,java没前途了?
    这样的话 你不是被开发搞累了  而是精神错乱了  已经崩溃了
      

  15.   

     额    没前途嘛?   java很好很牛很强大  就像长了翅膀的小母牛呀       其实没门语言都有用的地方  前途都一样   没有最好的语言  只有最吊的人
      

  16.   

    你懂不懂JAVA,你懂什么语言,你用什么开发?你是微软的托吧!