开源的世界如此美好
【IT168 专稿】在Java Web Tier开发技术世界里,你选择的、或是你喜欢的技术有哪些呢?你一定可以说得头头是道,JSP、Struts、WebWork、Tapestry、Spring MVC、JSF等等,都会有一大批的拥趸,而且,在大大小小项目中,随处可见各种Java Web技术应用的影子。
当然,上述各种技术间的比较在Java开发社群里也是一个热议的话题,从开放性角度而言,正是有了这么多的选择,特别是在开源社区广泛参与的环境下,Java Web开发的世界才如此美好!
1. 我和Web开发不得不说的事
初识Web开发,还在1999年 C/S开发盛行, ASP一家独大的时代,但是ASP的风格没有引起我足够的兴趣,直到某一天,偶然看到了一篇介绍PHP的文章,PHP的许多编程方式和习惯(如函数式编程)和我熟悉的C是很相近,顿时引起了我莫大兴趣。也正是机缘巧合的这篇文章,引领了我步入了Web开发的殿堂。
于是我在书店买了第一本PHP3的书籍,这也是我用PHP学会开发的第一个Web程序,经典的Hello World,至今在想起来都让我兴奋不已,直到PHP发展版本5的今天,我依然对PHP有一种难以割舍的情结,这种情结,是时间留给我的记忆,就像从Turbo C++ 2、Borland C++ 3.1步入C/C++开发者行列,对旧时Borland的那种怀念大抵相同,但Borland的情况又是另外一种情形了(我把它归结为一种“Borland情结”。
兴趣使然,很短时间就学习完了这本PHP 3的书籍,也对Web开发有了认识和理解。过了一段时间,我买到了我的第一本JSP书籍-《网站JSP后台解决方案》,当时JSP在原生Java语言及丰富类库的直接支持下,提供了强大功能,这点和ASP、PHP的脚本编程有本质区别,更适合企业级应用,ASP要支持更复杂应用,往往要和COM技术结合,于是,我陆续学习了《Core Java 2》系列第四版的两本书,就这样,从Java语言、JSP开始,我进入了Java Web开发的世界。
2. Java Web开发技术的发展
在JSP盛行的头几年,业界对JSP的前景寄予厚望,这点很大方面是挟Java之威,并在Web应用开发领域体现出来一股霸气。而实际上,JSP在项目中大规模的成功应用,也接受住了考验。应该说,在JSP、ASP以及PHP的“三国争霸”较量中,JSP以强大原生语言以及丰富类库支持的优势,首先打败的是ASP,而非PHP,因为当时PHP走的是“草根”发展模式,避免了与JSP正面交峰。
JSP在大规模应用的同时,也遇到了些问题或局限,如:逻辑和页面代码容易混合在一起、调试不方便,工具支持困难等等。这些问题如何解决?
网络的发展,是当前软件领域快速发展的一个动力!“三十年河东、三十年河西”,在Web技术发展历程中,三年都很长了。随着ASP.NET的推出,其技术上的实现是先进的,并有.NET框架的强大支持,控件+事件的方式也让人觉得耳目一新。
同时,在MVC模式被业界普遍接受的形势下,JSP方面针对自身缺陷,也有所动作,如JSTL、EL等技术的引入,此外,Java Web开发技术方面的各种框架也在新形势下借助开源的力量发力,快速前进,并针对JSP所遇问题提供各种切实可行的解决方案,从而得到广泛应用。不管是对.NET阵营、还是对Java阵营而言,所有的这些发展,都提高了Web开发工作的效率和可复用性。
回首近几年来Web开发技术的发展历程,可以发现各种Web开发技术之间即是相互竞争,促进和借鉴的关系,适者生存、劣者淘汰。一个典型的例子就是曾经让很多为之倾倒的Struts,在为Java Web技术应用作出巨大贡献之后,为了进一步更好的发展,正在和WebWork走向相互的融合之路。
此外,在这竞争过程中,我们不得不提同样来自于开源社区的黑马Ruby on Rails, 在2006年,忽如一夜春风来,各种快速开发框架如千树万树梨花开。不用问,这都是被rails刺激。Groovy,Django,Able,Seam,Rife,Stripes,数不胜数。不过rails能够领先的秘诀其实是其设计思想的领先和敏捷的Web开发,一时间,到处都是新兵Ruby on Rails 挑战Web开发技术的内容,平心而论,在企业级应用方面,Ruby on Rails还有很长的路要走,在时间面前,谁又能保证永远独领风骚呢?毕竟,在开源的世界里永远不缺少奇迹!
3. 开源的世界如此美好
Java Web开发技术与Asp.net有显著的不同之处,那就是开源,这相对微软技术的专有性而言,是个得天独厚的优势,因此,Java Web框架有着强大的生命力,其生命力就来源于开源社区源源不断地贡献。应该深信,开源的力量如此强大,只要开源模式成熟到一定程度,开源应用必将遍布各个领域,在Java Web开发领域里,事实也正是如此!
王者般的Struts、轻快简洁的WebWork、功能强大而较难掌握的Tapestry、易于集成的Spring MVC,还有Java EE标准的JSF,各式各样的Java Web框架凝聚了开源社区的努力和心血,虽说都是“剑”,但此“剑”非彼“剑”,面对这么多令人眼花缭乱的“利剑”,你又如何选择?
如此多优秀的技术摆在面前,我更愿意理解成机会!也就是给我们更多的选择机会!选择一种好的Java Web实现技术,对构架设计非常重要,我的选择原则是:
和业务的匹配程度:选择复杂而功能强大的、还是选择简单而快速的?要根把业务的需求,进行适当选择。
熟悉程度。使用熟悉的技术,往往能把这种技术的潜力发挥到极致,即使是再新的技术,如果不熟悉,还是枉然。
技术成熟度:选择一种有口碑并经过实践验证的技术,系统的稳定型、可扩展性以及和其他技术的协作性,都很重要。
技术先进性:技术先进性是要考虑的,但技术先进性也是相对的,“老”技术也有其存在道理,甚至连Cobol都还没“绝迹”,所以只要在可接受范围,就不必太过计较是“老技术”还是“新技术”。
兴趣:这个因素应该服从上面所提到的其他因素,比如,我个人比较喜欢WebWork框架,我称之为一把好用的“妖刀”,但在实际中,我不会轻易就选择它,在大多数开发人员熟悉Struts的情况下,而Struts也适合,那就应该选择Struts。但你完全可以把你感兴趣的技术作为个人爱好来研究、学习。
把握以上原则,应该可以作出选择,一个技术是否会败落,取决的因素很多,但从另一方面来看,一种技术的生命力往往是很强的,如C,在金融、证券、电信等行业的关键业务处理中,占据了重要位置;再如Struts 1.X,虽然它的一些理念和当今新的一些框架相比,略显落后,但其已经得到相当规模的应用,就是在Struts 2面前,它在应用中的地位也不容忽略。
开源模式加速了技术发展,技术发展让我们不断进步,就Java Web开发技术来说,做好选择是必然,深入掌握好一种技术,再尝试其他类似技术,大多情况下,可以做到触类旁通。
可以说,随着SUN一系列Java开源策略的出台,开源社区在包括Java Web技术在内的Java诸多技术领域里的贡献将变得越来越多,影响力也会越来越大,Java也将在开源力量的帮助下,进一步巩固其在企业级应用开发领域的霸主地位。
4. Java Web开发趋势
未来Java Web开发技术的发展趋势仍然是多元化发展。其中的任何一种技术,都有其优、缺点,如Tapestry是一种组件式框架,功能强大,但学习曲线陡;JSF也是一种组件式框架,而且又是Java EE的标准之一,但仍不够成熟。在Java Web开发领域,“理性分析,合理运用” - 这是正道。
纵观2006,Java Web开发技术的发展脚步一刻也没减缓:Java EE 5正式发布(JSF版本为1.2,JSP版本为2.1);Tapestry 4.0正式发布;Spring 2正式发布;Struts 2正在努力打造中,并发布了2.0.1 BETA版。就我自己的看法,2006年Java界最重要的事件绝对是Java开源!其意义必重大、影响定深远!随着Java开源,开源社区已是“就等东风来”,有关Java的各种技术和应用,在增添了开源的魔棒的挥舞间,终会是精彩纷呈。
期待2007,Java Web开源世界美好依旧!并完全有理由相信会继续得以发展。作为Java Web开发者,以下几点是值得你注意的:
AJAX支持将更成熟:在Web 2.0浪潮里,谁也不能忽视AJAX技术,Windows Vista携带dotnet3.0 framework就要发布了,仿佛Microsoft要改变浏览器统治桌面历史的序幕就要拉开了。但是我的预测却是AJAX不但是一种过渡技术,也将成为长期存在的技术。XAML无法改变互联网HTML的实质-超联接,就无法改变浏览器统治桌面的局面。
EJB3.0规范正式推出:在五月的JavaOne,EJB3.0规范正式推出。到年底之前完整通过EJB3.0认证的Hibernate3.2已经推出,包括Spring2.0提供的标准JPA支持,EJB3.0已经不存在技术上的推广障碍。但是似乎姗姗来迟了些.
各种Java Web框架继续推陈出新:喜欢新鲜事物的开发者,特别是Struts开发者,好好留意下Struts 2。
SOA:在2006年有一个现象,“咸与SOA”,每个人都会去讨论一下SOA,搞构件的普元也开始SOA了,SOA是一个2006年彻底被用烂的词汇,而真正的SOA大家还都没有接触到。
Java开源后的影响:到底会有哪些影响和变化?现在还不得而知,只能让时间来告诉我们了。
Java SE 6:Java SE 6在2006年末正式发布,我始终觉得Java SE 5的发布比版本6来得更有意义,但不管怎样,好好研究Java SE 6的新特性,是应该的。
简化开发:Java Web开发技术的功能越来越强大,使用越来越复杂,学习曲线越来越陡,在2007年里,谁能在功能强大和简化开发两者间实现非常好的平衡方式?至少对于我来说,值得关注。
开源:总之,开源,还是开源!
“两岸猿声啼不住,轻舟已过万重山”,Java Web开发技术在开源动力的牵引下,过的“山”已是不计其数。
乘着开源轻舟,继续远航。
0
相关文章